@@ -0,0 +1,53 @@
|
||||
package dev.bigduckie.simpleexcavators;
|
||||
|
||||
import dev.bigduckie.simpleexcavators.config.SimpleExcavatorsConfig;
|
||||
import dev.bigduckie.simpleexcavators.data.ExcavatorData;
|
||||
import dev.bigduckie.simpleexcavators.item.ExtendedExcavatorItem;
|
||||
import dev.bigduckie.staticcontent.StaticContent;
|
||||
import dev.draylar.magna.api.optional.MagnaOptionals;
|
||||
import draylar.omegaconfig.OmegaConfig;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
|
||||
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
|
||||
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class SimpleExcavators implements ModInitializer {
|
||||
public static final String MOD_ID = "simple-excavators";
|
||||
public static SimpleExcavatorsConfig CONFIG = OmegaConfig.register(SimpleExcavatorsConfig.class);
|
||||
private static final RegistryKey<ItemGroup> ITEM_GROUP = RegistryKey.of(RegistryKeys.ITEM_GROUP, id("group"));
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
MagnaOptionals.optInForCurse();
|
||||
StaticContent.load(id("excavators"), ExcavatorData.class);
|
||||
Registry.register(Registries.ITEM_GROUP, ITEM_GROUP, FabricItemGroup.builder().displayName(Text.translatable("itemGroup.simple-excavators.group")).icon(() -> new ItemStack(Registries.ITEM.get(id("diamond_excavator")))).entries((context, entries) -> entries.addAll(ExcavatorData.ENTRY_SET)).build());
|
||||
registerCallbackHandlers();
|
||||
}
|
||||
|
||||
private void registerCallbackHandlers() {
|
||||
AttackEntityCallback.EVENT.register((playerEntity, world, hand, entity, entityHitResult) -> {
|
||||
ItemStack handStack = playerEntity.getMainHandStack();
|
||||
if (handStack.getItem() instanceof ExtendedExcavatorItem extendedExcavatorItem) {
|
||||
// set entity on fire if this excavator smelts blocks
|
||||
if (extendedExcavatorItem.getData().canSmelt()) {
|
||||
entity.setOnFireFor(4);
|
||||
}
|
||||
}
|
||||
|
||||
return ActionResult.PASS;
|
||||
});
|
||||
}
|
||||
|
||||
public static Identifier id(String name) {
|
||||
return new Identifier(MOD_ID, name);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.bigduckie.simpleexcavators.config;
|
||||
|
||||
import draylar.omegaconfig.api.Config;
|
||||
|
||||
public class SimpleExcavatorsConfig implements Config {
|
||||
|
||||
public boolean enableExtraMaterials = true;
|
||||
public int durabilityModifier = 5;
|
||||
public double breakSpeedMultiplier = 1.0;
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "simple-excavators";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package dev.bigduckie.simpleexcavators.data;
|
||||
|
||||
import dev.bigduckie.simpleexcavators.item.ExtendedExcavatorItem;
|
||||
import dev.bigduckie.simpleexcavators.material.CustomToolMaterial;
|
||||
import dev.bigduckie.staticcontent.api.ContentData;
|
||||
import net.fabricmc.fabric.api.registry.FuelRegistry;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemStackSet;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class ExcavatorData implements ContentData {
|
||||
|
||||
private final String id;
|
||||
private final int miningLevel;
|
||||
private final int durability;
|
||||
private final float blockBreakSpeed;
|
||||
private final float attackDamage;
|
||||
private final float attackSpeed;
|
||||
private final int enchantability;
|
||||
private final Identifier repairIngredient;
|
||||
private final boolean isFireImmune;
|
||||
private final boolean smelts;
|
||||
private final int breakRadius;
|
||||
private final boolean isExtra;
|
||||
private final int burnTime;
|
||||
private final boolean hasExtraKnockback;
|
||||
|
||||
public static final Set<ItemStack> ENTRY_SET = ItemStackSet.create();
|
||||
|
||||
public ExcavatorData(String id, int miningLevel, int durability, float blockBreakSpeed, float attackDamage, float attackSpeed, int enchantability, Identifier repairIngredient, boolean isFireImmune, boolean smelts, int breakRadius, boolean isExtra, int burnTime, boolean hasExtraKnockback, String group) {
|
||||
this.id = id;
|
||||
this.miningLevel = miningLevel;
|
||||
this.durability = durability;
|
||||
this.blockBreakSpeed = blockBreakSpeed;
|
||||
this.attackDamage = attackDamage;
|
||||
this.attackSpeed = attackSpeed;
|
||||
this.enchantability = enchantability;
|
||||
this.repairIngredient = repairIngredient;
|
||||
this.isFireImmune = isFireImmune;
|
||||
this.smelts = smelts;
|
||||
this.breakRadius = breakRadius;
|
||||
this.isExtra = isExtra;
|
||||
this.burnTime = burnTime;
|
||||
this.hasExtraKnockback = hasExtraKnockback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(Identifier identifier) {
|
||||
// only register if the excavator is not extra (wood -> diamond), or if it is extra (lapis, emerald, ...) and the option is enabled
|
||||
if (!isExtra() || isExtra() && dev.bigduckie.simpleexcavators.SimpleExcavators.CONFIG.enableExtraMaterials) {
|
||||
|
||||
// setup settings
|
||||
Item.Settings settings = new Item.Settings();
|
||||
if (isFireImmune()) {
|
||||
settings.fireproof();
|
||||
}
|
||||
|
||||
// check for excavator autosmelt
|
||||
// create excavator with settings
|
||||
ExtendedExcavatorItem excavatorItem = new ExtendedExcavatorItem(
|
||||
CustomToolMaterial.from(this),
|
||||
0,
|
||||
getAttackSpeed() == 0 ? -2.4f : getAttackSpeed(),
|
||||
settings,
|
||||
getBreakRadius() == 0 ? 1 : getBreakRadius(),
|
||||
this
|
||||
);
|
||||
|
||||
// burn time for furnace fuel
|
||||
if (getBurnTime() > 0) {
|
||||
FuelRegistry.INSTANCE.add(excavatorItem, getBurnTime());
|
||||
}
|
||||
|
||||
// add excavator to tag
|
||||
String path = getId() + "_excavator";
|
||||
Identifier registryID = path.contains(":") ? new Identifier(path) : dev.bigduckie.simpleexcavators.SimpleExcavators.id(path);
|
||||
Registry.register(Registries.ITEM, registryID, excavatorItem);
|
||||
|
||||
// add excavator to item group
|
||||
ENTRY_SET.add(excavatorItem.getDefaultStack());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasExtraKnockback() {
|
||||
return hasExtraKnockback;
|
||||
}
|
||||
|
||||
public boolean canSmelt() {
|
||||
return smelts;
|
||||
}
|
||||
|
||||
public int getBurnTime() {
|
||||
return burnTime;
|
||||
}
|
||||
|
||||
public boolean isExtra() {
|
||||
return isExtra;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getBreakRadius() {
|
||||
return breakRadius;
|
||||
}
|
||||
|
||||
public float getAttackSpeed() {
|
||||
return attackSpeed;
|
||||
}
|
||||
|
||||
public int getMiningLevel() {
|
||||
return miningLevel;
|
||||
}
|
||||
|
||||
public int getDurability() {
|
||||
return durability;
|
||||
}
|
||||
|
||||
public float getBlockBreakSpeed() {
|
||||
return blockBreakSpeed * (float) dev.bigduckie.simpleexcavators.SimpleExcavators.CONFIG.breakSpeedMultiplier;
|
||||
}
|
||||
|
||||
public float getAttackDamage() {
|
||||
return attackDamage;
|
||||
}
|
||||
|
||||
public int getEnchantability() {
|
||||
return enchantability;
|
||||
}
|
||||
|
||||
public Identifier getRepairIngredient() {
|
||||
return repairIngredient;
|
||||
}
|
||||
|
||||
public boolean isFireImmune() {
|
||||
return isFireImmune;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package dev.bigduckie.simpleexcavators.item;
|
||||
|
||||
import dev.bigduckie.simpleexcavators.data.ExcavatorData;
|
||||
import dev.draylar.magna.api.BlockProcessor;
|
||||
import dev.draylar.magna.item.ExcavatorItem;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.inventory.SimpleInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ToolMaterial;
|
||||
import net.minecraft.recipe.RecipeType;
|
||||
import net.minecraft.recipe.SmeltingRecipe;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class ExtendedExcavatorItem extends ExcavatorItem {
|
||||
|
||||
private final ExcavatorData data;
|
||||
|
||||
public ExtendedExcavatorItem(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings, int breakRadius, ExcavatorData data) {
|
||||
super(toolMaterial, attackDamage, attackSpeed, settings, breakRadius);
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public ExcavatorData getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockProcessor getProcessor(World world, PlayerEntity player, BlockPos pos, ItemStack heldStack) {
|
||||
if (data.canSmelt()) {
|
||||
return (tool, input) -> {
|
||||
Optional<SmeltingRecipe> cooked = world.getRecipeManager().getFirstMatch(
|
||||
RecipeType.SMELTING,
|
||||
new SimpleInventory(input),
|
||||
world
|
||||
);
|
||||
|
||||
if (cooked.isPresent()) {
|
||||
return cooked.get().getOutput(world.getRegistryManager()).copy();
|
||||
}
|
||||
|
||||
return input;
|
||||
};
|
||||
} else {
|
||||
return super.getProcessor(world, player, pos, heldStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package dev.bigduckie.simpleexcavators.material;
|
||||
|
||||
import dev.bigduckie.simpleexcavators.data.ExcavatorData;
|
||||
import net.minecraft.item.ToolMaterial;
|
||||
import net.minecraft.recipe.Ingredient;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class CustomToolMaterial implements ToolMaterial {
|
||||
|
||||
private final int enchantability;
|
||||
private final float miningSpeedMultiplier;
|
||||
private final int durability;
|
||||
private final float attackDamage;
|
||||
private final int miningLevel;
|
||||
private final Ingredient ingredient;
|
||||
|
||||
public CustomToolMaterial(int enchantability, float miningSpeedMultiplier, int durability, float attackDamage, int miningLevel, Ingredient ingredient) {
|
||||
this.enchantability = enchantability;
|
||||
this.miningSpeedMultiplier = miningSpeedMultiplier;
|
||||
this.durability = durability;
|
||||
this.attackDamage = attackDamage;
|
||||
this.miningLevel = miningLevel;
|
||||
this.ingredient = ingredient;
|
||||
}
|
||||
|
||||
public static CustomToolMaterial from(ExcavatorData data) {
|
||||
return new CustomToolMaterial(
|
||||
data.getEnchantability() == 0 ? 15 : data.getEnchantability(),
|
||||
data.getBlockBreakSpeed() == 0 ? 1 : data.getBlockBreakSpeed(),
|
||||
(data.getDurability() == 0 ? 500 : data.getDurability()) * dev.bigduckie.simpleexcavators.SimpleExcavators.CONFIG.durabilityModifier,
|
||||
data.getAttackDamage() == 0 ? 4 : data.getAttackDamage(),
|
||||
data.getMiningLevel(),
|
||||
Ingredient.ofItems(Registries.ITEM.get(data.getRepairIngredient() == null ? new Identifier("iron_ingot") : data.getRepairIngredient()))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDurability() {
|
||||
return durability;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getMiningSpeedMultiplier() {
|
||||
return miningSpeedMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getAttackDamage() {
|
||||
return attackDamage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMiningLevel() {
|
||||
return miningLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnchantability() {
|
||||
return enchantability;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Ingredient getRepairIngredient() {
|
||||
return ingredient;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package dev.bigduckie.simpleexcavators.mixin;
|
||||
|
||||
import dev.bigduckie.simpleexcavators.item.ExtendedExcavatorItem;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(EnchantmentHelper.class)
|
||||
public class ExcavatorKnockbackMixin {
|
||||
|
||||
private static final int SLIME_KNOCKBACK_MODIFIER = 3;
|
||||
|
||||
@Inject(at = @At("HEAD"), method = "getKnockback", cancellable = true)
|
||||
private static void getKnockback(LivingEntity livingEntity, CallbackInfoReturnable<Integer> info) {
|
||||
ItemStack heldStack = livingEntity.getMainHandStack();
|
||||
if(heldStack.getItem() instanceof ExtendedExcavatorItem excavatorItem) {
|
||||
// check data associated with excavator item for extra kb
|
||||
if(excavatorItem.getData().hasExtraKnockback()) {
|
||||
info.setReturnValue(SLIME_KNOCKBACK_MODIFIER);
|
||||
info.cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package dev.bigduckie.simpleexcavators.mixin;
|
||||
|
||||
import dev.bigduckie.simpleexcavators.item.ExtendedExcavatorItem;
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.EnchantmentTarget;
|
||||
import net.minecraft.enchantment.SilkTouchEnchantment;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
||||
@Mixin(SilkTouchEnchantment.class)
|
||||
public class SilkTouchEnchantmentMixin extends Enchantment {
|
||||
|
||||
public SilkTouchEnchantmentMixin(Rarity weight, EnchantmentTarget type, EquipmentSlot[] slotTypes) {
|
||||
super(weight, type, slotTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAcceptableItem(ItemStack stack) {
|
||||
if (stack.getItem() instanceof ExtendedExcavatorItem item) {
|
||||
return !item.getData().canSmelt();
|
||||
}
|
||||
|
||||
return super.isAcceptableItem(stack);
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"itemGroup.simple-excavators.group": "Vanilla Excavators",
|
||||
|
||||
"item.simple-excavators.wooden_excavator": "Wooden Excavator",
|
||||
"item.simple-excavators.stone_excavator": "Stone Excavator",
|
||||
"item.simple-excavators.iron_excavator": "Iron Excavator",
|
||||
"item.simple-excavators.golden_excavator": "Golden Excavator",
|
||||
"item.simple-excavators.diamond_excavator": "Diamond Excavator",
|
||||
"item.simple-excavators.netherite_excavator": "Netherite Excavator",
|
||||
"item.simple-excavators.emerald_excavator": "Emerald Excavator",
|
||||
"item.simple-excavators.obsidian_excavator": "Obsidian Excavator",
|
||||
"item.simple-excavators.lapis_excavator": "Lapis Lazuli Excavator",
|
||||
"item.simple-excavators.quartz_excavator": "Quartz Excavator",
|
||||
"item.simple-excavators.tater_excavator": "Lil Tater Excavator",
|
||||
"item.simple-excavators.fiery_excavator": "Fiery Excavator",
|
||||
"item.simple-excavators.prismarine_excavator": "Prismarine Excavator",
|
||||
"item.simple-excavators.slime_excavator": "Slime Excavator",
|
||||
"item.simple-excavators.ender_excavator": "Ender Excavator",
|
||||
|
||||
"item.simple-excavators.vibranium_excavator": "Vibranium Excavator",
|
||||
"item.simple-excavators.glowstone_excavator": "Glowstone Excavator",
|
||||
"item.simple-excavators.nether_excavator": "Nether Excavator",
|
||||
|
||||
"text.autoconfig.simple-excavators.option.enableExtraMaterials": "Extra Vanilla Material Excavators",
|
||||
"text.autoconfig.simple-excavators.option.durabilityModifier": "Excavator Durability Modifier",
|
||||
"text.autoconfig.simple-excavators.category.default": "General",
|
||||
"text.autoconfig.simple-excavators.title": "Vanilla Excavators Config",
|
||||
|
||||
"item.simple-excavators.dynagear_excavator": "%s Excavator"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"itemGroup.simple-excavators.group": "Vanilla Excavators",
|
||||
|
||||
"item.simple-excavators.wooden_excavator": "Деревяный Экскаватор",
|
||||
"item.simple-excavators.stone_excavator": "Каменый Экскаватор",
|
||||
"item.simple-excavators.iron_excavator": "Железный Экскаватор",
|
||||
"item.simple-excavators.golden_excavator": "Золотой Экскаватор",
|
||||
"item.simple-excavators.diamond_excavator": "Алмазный Экскаватор",
|
||||
"item.simple-excavators.netherite_excavator": "Незеритовый Экскаватор",
|
||||
"item.simple-excavators.emerald_excavator": "Изумрудный Экскаватор",
|
||||
"item.simple-excavators.obsidian_excavator": "Обсиантовый Экскаватор",
|
||||
"item.simple-excavators.lapis_excavator": "Лазуритой Экскаватор",
|
||||
"item.simple-excavators.quartz_excavator": "Кваревый Экскаватор",
|
||||
"item.simple-excavators.tater_excavator": "Lil Tater Экскаватор",
|
||||
"item.simple-excavators.fiery_excavator": "Пылаюший Экскаватор",
|
||||
"item.simple-excavators.prismarine_excavator": "Призмариновый Экскаватор",
|
||||
"item.simple-excavators.slime_excavator": "Слизневый Экскаватор",
|
||||
"item.simple-excavators.ender_excavator": "Экскаватор Края",
|
||||
|
||||
"item.simple-excavators.vibranium_excavator": "Вибраниум Экскаватор",
|
||||
"item.simple-excavators.glowstone_excavator": "Экскаватор из Светопыли",
|
||||
"item.simple-excavators.nether_excavator": "Адскмй Экскаватор",
|
||||
|
||||
"text.autoconfig.simple-excavators.option.enableExtraMaterials": "Extra Vanilla Material Excavators",
|
||||
"text.autoconfig.simple-excavators.option.durabilityModifier": "Экскаватор Durability Modifier",
|
||||
"text.autoconfig.simple-excavators.category.default": "General",
|
||||
"text.autoconfig.simple-excavators.title": "Vanilla Excavators Config",
|
||||
|
||||
"item.simple-excavators.dynagear_excavator": "%s Экскаватор"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"itemGroup.simple-excavators.group": "原版铲子",
|
||||
|
||||
"item.simple-excavators.wooden_excavator": "木铲",
|
||||
"item.simple-excavators.stone_excavator": "石铲",
|
||||
"item.simple-excavators.iron_excavator": "铁铲",
|
||||
"item.simple-excavators.golden_excavator": "金铲",
|
||||
"item.simple-excavators.diamond_excavator": "钻石铲",
|
||||
"item.simple-excavators.netherite_excavator": "下界合金铲",
|
||||
"item.simple-excavators.emerald_excavator": "绿宝石铲",
|
||||
"item.simple-excavators.obsidian_excavator": "黑曜石铲",
|
||||
"item.simple-excavators.lapis_excavator": "青金石铲",
|
||||
"item.simple-excavators.quartz_excavator": "石英铲",
|
||||
"item.simple-excavators.tater_excavator": "小塔特铲",
|
||||
"item.simple-excavators.fiery_excavator": "炽烈铲",
|
||||
"item.simple-excavators.prismarine_excavator": "海晶铲",
|
||||
"item.simple-excavators.slime_excavator": "史莱姆铲",
|
||||
"item.simple-excavators.ender_excavator": "末影铲",
|
||||
|
||||
"item.simple-excavators.vibranium_excavator": "振金铲",
|
||||
"item.simple-excavators.glowstone_excavator": "荧石铲",
|
||||
"item.simple-excavators.nether_excavator": "下界铲",
|
||||
|
||||
"text.autoconfig.simple-excavators.option.enableExtraMaterials": "额外原版材质铲子",
|
||||
"text.autoconfig.simple-excavators.option.durabilityModifier": "铲子耐久修改",
|
||||
"text.autoconfig.simple-excavators.category.default": "常规",
|
||||
"text.autoconfig.simple-excavators.title": "原版铲子配置文件",
|
||||
|
||||
"item.simple-excavators.dynagear_excavator": "%s铲"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/diamond_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/emerald_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/ender_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/fiery_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/glowstone_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/golden_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/iron_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/lapis_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/nether_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/netherite_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/obsidian_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/prismarine_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/quartz_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/slime_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/stone_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/tater_hammer"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/vibranium_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "simple-excavators:item/wooden_excavator"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 367 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 366 B |
|
After Width: | Height: | Size: 368 B |
|
After Width: | Height: | Size: 348 B |
|
After Width: | Height: | Size: 367 B |
|
After Width: | Height: | Size: 474 B |
|
After Width: | Height: | Size: 370 B |
|
After Width: | Height: | Size: 370 B |
|
After Width: | Height: | Size: 369 B |
|
After Width: | Height: | Size: 369 B |
|
After Width: | Height: | Size: 359 B |
|
After Width: | Height: | Size: 370 B |
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
{
|
||||
"id": "simple-excavators:diamond_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:emerald_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:ender_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:fiery_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:golden_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:iron_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:lapis_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:netherite_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:obsidian_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:prismarine_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:quartz_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:slime_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:stone_shovel",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "simple-excavators:wooden_shovel",
|
||||
"required": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"simple-excavators:golden_excavator"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:diamond_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:diamond"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:diamond_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:emerald_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:emerald"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:emerald_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:end_stone_bricks"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:dragon_head"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:obsidian"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:ender_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:magma_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:magma_cream"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:obsidian"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:fiery_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:gold_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:gold_ingot"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:golden_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:iron_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:iron_ingot"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:iron_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:lapis_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:lapis_lazuli"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:lapis_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"type": "minecraft:smithing",
|
||||
"base": {
|
||||
"item": "simple-excavators:diamond_excavator"
|
||||
},
|
||||
"addition": {
|
||||
"item": "minecraft:netherite_ingot"
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:netherite_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" D ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:obsidian"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:obsidian_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:prismarine"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:prismarine_shard"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:prismarine_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:quartz_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:quartz"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:quartz_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:slime_block"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:slime_ball"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:slime_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"item": "minecraft:stone"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:cobblestone"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:stone_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" d ",
|
||||
"DsD",
|
||||
" s "
|
||||
],
|
||||
"key": {
|
||||
"D": {
|
||||
"tag": "minecraft:logs"
|
||||
},
|
||||
"d": {
|
||||
"tag": "minecraft:planks"
|
||||
},
|
||||
"s": {
|
||||
"item": "minecraft:stick"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "simple-excavators:wooden_excavator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "simple-excavators",
|
||||
"version": "${version}",
|
||||
"name": "Simple Excavators",
|
||||
"description": "Adds excavators that break a 3x3 area. Forked from Draylar's Vanilla Excavators.",
|
||||
"authors": [
|
||||
"Big Duckie",
|
||||
"Draylar"
|
||||
],
|
||||
"contact": {
|
||||
"homepage": "https://bigduckie.dev/mc-mods/simple-excavators",
|
||||
"sources": "https://git.bigduckie.dev/big-duckie/simple-excavators"
|
||||
},
|
||||
"license": "MIT",
|
||||
"icon": "assets/simple-excavators/icon.png",
|
||||
"environment": "*",
|
||||
"entrypoints": {
|
||||
"main": [
|
||||
"dev.bigduckie.simpleexcavators.SimpleExcavators"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
"simple-excavators.mixins.json"
|
||||
],
|
||||
"depends": {
|
||||
"fabricloader": ">=0.16.7",
|
||||
"minecraft": "~1.20.1",
|
||||
"java": ">=17",
|
||||
"fabric-api": "*"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"required": true,
|
||||
"package": "dev.bigduckie.simpleexcavators.mixin",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"mixins": [
|
||||
"ExcavatorKnockbackMixin",
|
||||
"SilkTouchEnchantmentMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "diamond",
|
||||
"miningLevel": 3,
|
||||
"durability": 1561,
|
||||
"blockBreakSpeed": 2.3,
|
||||
"attackDamage": 5,
|
||||
"attackSpeed": -3,
|
||||
"enchantability": 10,
|
||||
"repairIngredient": "minecraft:diamond"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "emerald",
|
||||
"miningLevel": 3,
|
||||
"durability": 750,
|
||||
"blockBreakSpeed": 2.0,
|
||||
"attackDamage": 5,
|
||||
"attackSpeed": -3,
|
||||
"enchantability": 10,
|
||||
"repairIngredient": "minecraft:emerald",
|
||||
"isExtra": true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "ender",
|
||||
"miningLevel": 3,
|
||||
"durability": 1561,
|
||||
"blockBreakSpeed": 2.85,
|
||||
"attackDamage": 6,
|
||||
"attackSpeed": -3.3,
|
||||
"enchantability": 10,
|
||||
"repairIngredient": "minecraft:ender_pearl",
|
||||
"isExtra": true
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"id": "fiery",
|
||||
"miningLevel": 3,
|
||||
"durability": 750,
|
||||
"blockBreakSpeed": 2,
|
||||
"attackDamage": 2,
|
||||
"attackSpeed": -2.3,
|
||||
"enchantability": 15,
|
||||
"repairIngredient": "minecraft:magma_block",
|
||||
"isExtra": true,
|
||||
"isFireImmune": true,
|
||||
"smelts": true
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "golden",
|
||||
"miningLevel": 0,
|
||||
"durability": 100,
|
||||
"blockBreakSpeed": 3.5,
|
||||
"attackDamage": 2,
|
||||
"attackSpeed": -2.5,
|
||||
"enchantability": 22,
|
||||
"repairIngredient": "minecraft:gold_ingot"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "iron",
|
||||
"miningLevel": 2,
|
||||
"durability": 250,
|
||||
"blockBreakSpeed": 1.7,
|
||||
"attackDamage": 2,
|
||||
"attackSpeed": -2.8,
|
||||
"enchantability": 14,
|
||||
"repairIngredient": "minecraft:iron_ingot"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "lapis",
|
||||
"miningLevel": 1,
|
||||
"durability": 220,
|
||||
"blockBreakSpeed": 1.7,
|
||||
"attackDamage": 0,
|
||||
"attackSpeed": -2,
|
||||
"enchantability": 30,
|
||||
"repairIngredient": "minecraft:lapis_lazuli",
|
||||
"isExtra": true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "netherite",
|
||||
"miningLevel": 4,
|
||||
"durability": 2031,
|
||||
"blockBreakSpeed": 2.6,
|
||||
"attackDamage": 6,
|
||||
"attackSpeed": -3.1,
|
||||
"enchantability": 15,
|
||||
"repairIngredient": "minecraft:netherite_ingot",
|
||||
"isFireImmune": true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "obsidian",
|
||||
"miningLevel": 2,
|
||||
"durability": 2048,
|
||||
"blockBreakSpeed": 1.4,
|
||||
"attackDamage": 3,
|
||||
"attackSpeed": -3.5,
|
||||
"enchantability": 5,
|
||||
"repairIngredient": "minecraft:obsidian",
|
||||
"isExtra": true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "prismarine",
|
||||
"miningLevel": 3,
|
||||
"durability": 1028,
|
||||
"blockBreakSpeed": 3.4,
|
||||
"attackDamage": 2,
|
||||
"attackSpeed": -2.3,
|
||||
"enchantability": 25,
|
||||
"repairIngredient": "minecraft:prismarine_shard",
|
||||
"isExtra": true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "quartz",
|
||||
"miningLevel": 2,
|
||||
"durability": 1028,
|
||||
"blockBreakSpeed": 2.3,
|
||||
"attackDamage": 2,
|
||||
"attackSpeed": -2.5,
|
||||
"enchantability": 10,
|
||||
"repairIngredient": "minecraft:quartz",
|
||||
"isExtra": true
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "slime",
|
||||
"miningLevel": 2,
|
||||
"durability": 1500,
|
||||
"blockBreakSpeed": 1.7,
|
||||
"attackDamage": 3,
|
||||
"attackSpeed": -3,
|
||||
"enchantability": 20,
|
||||
"repairIngredient": "minecraft:slime_ball",
|
||||
"isExtra": true,
|
||||
"hasExtraKnockback": true
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "stone",
|
||||
"miningLevel": 1,
|
||||
"durability": 131,
|
||||
"blockBreakSpeed": 1.15,
|
||||
"attackDamage": 1,
|
||||
"attackSpeed": -2.6,
|
||||
"enchantability": 5,
|
||||
"repairIngredient": "minecraft:stone"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "wooden",
|
||||
"miningLevel": 0,
|
||||
"durability": 59,
|
||||
"blockBreakSpeed": 0.57,
|
||||
"attackDamage": 0,
|
||||
"attackSpeed": -2.5,
|
||||
"enchantability": 15,
|
||||
"repairIngredient": "minecraft:oak_planks",
|
||||
"burnTime": 400
|
||||
}
|
||||