From 62947e9fc11096ab5fe15829c92b0ff057a2a44f Mon Sep 17 00:00:00 2001 From: Aleksey Date: Sat, 3 Oct 2020 16:39:07 +0300 Subject: [PATCH] Hammers --- psd/tool_items.psd | Bin 35539 -> 43494 bytes src/main/java/ru/betterend/item/EndAxe.java | 18 ++++- .../java/ru/betterend/item/EndHammer.java | 69 +++++++++++------- .../java/ru/betterend/item/EndPickaxe.java | 13 +++- .../ru/betterend/recipe/CraftingRecipes.java | 15 ++++ .../ru/betterend/registry/ItemRegistry.java | 7 +- .../assets/betterend/lang/en_us.json | 6 ++ .../assets/betterend/lang/ru_ru.json | 6 ++ .../models/item/aeternium_hammer.json | 6 ++ .../betterend/models/item/diamond_hammer.json | 6 ++ .../betterend/models/item/golden_hammer.json | 6 ++ .../models/item/netherite_hammer.json | 6 ++ .../models/item/terminite_hammer.json | 6 ++ .../textures/item/aeternium_hammer.png | Bin 0 -> 477 bytes .../textures/item/diamond_hammer.png | Bin 0 -> 425 bytes .../betterend/textures/item/golden_hammer.png | Bin 0 -> 473 bytes .../betterend/textures/item/iron_hammer.png | Bin 325 -> 352 bytes .../textures/item/netherite_hammer.png | Bin 0 -> 497 bytes .../textures/item/terminite_hammer.png | Bin 0 -> 418 bytes 19 files changed, 132 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/assets/betterend/models/item/aeternium_hammer.json create mode 100644 src/main/resources/assets/betterend/models/item/diamond_hammer.json create mode 100644 src/main/resources/assets/betterend/models/item/golden_hammer.json create mode 100644 src/main/resources/assets/betterend/models/item/netherite_hammer.json create mode 100644 src/main/resources/assets/betterend/models/item/terminite_hammer.json create mode 100644 src/main/resources/assets/betterend/textures/item/aeternium_hammer.png create mode 100644 src/main/resources/assets/betterend/textures/item/diamond_hammer.png create mode 100644 src/main/resources/assets/betterend/textures/item/golden_hammer.png create mode 100644 src/main/resources/assets/betterend/textures/item/netherite_hammer.png create mode 100644 src/main/resources/assets/betterend/textures/item/terminite_hammer.png diff --git a/psd/tool_items.psd b/psd/tool_items.psd index 915f175e801cc40faa9ce33b597a88f7d80293eb..036b30d2943647c3b984872236dc1090b94a6350 100644 GIT binary patch delta 7888 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 HxAOl9U1@oY delta 1677 zcmb_bYfKzf6uvV{*JaDrRe~8JZYV4Zmfd8#%kI*OZXpwOK~}J|GzEF=3l=Dp9~G@> zX!K7>OT^r?s7+c8K3Lz z^PTU!?!7ZtM%mGWY~NbuxzDn`WO2K}gm182Mpu<<{YH;_qtkwF^xkEl@EZi855QBbVmGwUax^S8Cu@xO~pRp33XHEEJ zgB3U2XT%w+{rI(2dh)PozuT<)9m!%uh$=$f-jvUn?k_9}lqazYWy2SXZ8)W5b#5y2 zZ$V0=Ly6QQ2DFXvB?Gz~n?j_>1Um*VnKEmS6Cs`K7f8yJsciRGAH0rxU)?oxeD}B$ zVrxU2_8h_fK-at9k4Z;9{ozvEREw0e|E+JXPlrA~dGn?3u5Q)65IxlY#F?RZ*V*-l zZ%p0VQ}j{!;q)!_i4e)2^8I+d{F>A{=zr&DmuPu&Tl`x3UWsH7u@^od^G2B^|NoLC`RGj^> zf;-BqRBVka_-gPO73Vx4WBgn38WOMYYQ9sN&wwwKB$1Iyr|P#Q{^oaYE>!)wb)>VZ zR<-joAjV3jx9}Q1K#HpyG+V;O)mw?Q?LiekngDDi8@6lp*QMc++C0) zZSH&@#M()9ofez_hMbFO*vyn-b7U?4w#JPgY8X`x!Je!Qx(3H9^2pI>mRiuh7yOUl zOEEJ!(54-jgV$n}&En+t9DJ(HhokKmlv0k9KwC(>qa&S3!V~*4lV&JFxU)BFyZYVo zqR8{I$%}#@ikcw^0_7+V3Pj{Mp5ruA^MP}KqXKwEPEKm(zz}4MavZ+cle+od)D8Z# zZvDNfYgt)Ww&Ax@gp?kw(UbSzOEBGfl#Ehf89^ICo8U1hOOIGs|DV@G4S6NO(nAlU zhN1pV+B5@~vOs64PQD|F&QXJMM}cNa=PARBlA!D1WE=7G0xNP5LAeEi5xH5)1bQUd zf}}vRe0f06)8qgo$h)OLI(B^+Pd%9$s1hm)O6QQ-lp4~yusy8UPxH#1ccma zkxG;WVumh)4sz4*waEAu#lH@wMDI95nq_&0+`G<@mV0}KG|Tb~X^^lq0}#q?TN1Vm a*gl#?5|z*#f tag, BlockState state, ItemStack stack, LivingEntity user) { + return this.getMaterial().getMiningLevel(); + } } diff --git a/src/main/java/ru/betterend/item/EndHammer.java b/src/main/java/ru/betterend/item/EndHammer.java index ecf310a2..20a1aa76 100644 --- a/src/main/java/ru/betterend/item/EndHammer.java +++ b/src/main/java/ru/betterend/item/EndHammer.java @@ -5,10 +5,14 @@ import java.util.UUID; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableMultimap.Builder; import com.google.common.collect.Multimap; +import com.google.common.collect.Sets; import io.netty.util.internal.ThreadLocalRandom; + +import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; +import net.fabricmc.fabric.api.tool.attribute.v1.ToolManager; + import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.block.Material; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; @@ -16,50 +20,39 @@ import net.minecraft.entity.attribute.EntityAttribute; import net.minecraft.entity.attribute.EntityAttributeModifier; import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.item.ToolItem; +import net.minecraft.item.MiningToolItem; import net.minecraft.item.ToolMaterial; -import net.minecraft.item.Vanishable; -import net.minecraft.tag.BlockTags; +import net.minecraft.tag.Tag; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; -public class EndHammer extends ToolItem implements Vanishable { +public class EndHammer extends MiningToolItem implements DynamicAttributeTool { public final static UUID ATTACK_KNOCKBACK_MODIFIER_ID = MathHelper.randomUuid(ThreadLocalRandom.current()); - private final float attackDamage; private final Multimap attributeModifiers; + private ItemStack itemStack; public EndHammer(ToolMaterial material, float attackDamage, float attackSpeed, double knockback, Settings settings) { - super(material, settings); - - this.attackDamage = attackDamage + material.getAttackDamage(); + super(attackDamage, attackSpeed, material, Sets.newHashSet(), settings); + Builder builder = ImmutableMultimap.builder(); - builder.put(EntityAttributes.GENERIC_ATTACK_DAMAGE, new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_ID, "Weapon modifier", this.attackDamage, EntityAttributeModifier.Operation.ADDITION)); + builder.put(EntityAttributes.GENERIC_ATTACK_DAMAGE, new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_ID, "Weapon modifier", attackDamage + material.getAttackDamage(), EntityAttributeModifier.Operation.ADDITION)); builder.put(EntityAttributes.GENERIC_ATTACK_SPEED, new EntityAttributeModifier(ATTACK_SPEED_MODIFIER_ID, "Weapon modifier", attackSpeed, EntityAttributeModifier.Operation.ADDITION)); builder.put(EntityAttributes.GENERIC_ATTACK_KNOCKBACK, new EntityAttributeModifier(ATTACK_KNOCKBACK_MODIFIER_ID, "Weapon modifier", knockback, EntityAttributeModifier.Operation.ADDITION)); this.attributeModifiers = builder.build(); - } - - public float getAttackDamage() { - return this.attackDamage; + this.itemStack = new ItemStack(this); } + @Override public boolean canMine(BlockState state, World world, BlockPos pos, PlayerEntity miner) { - return !miner.isCreative() || state.getMaterial().equals(Material.STONE); - } - - public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) { - if (state.isOf(Blocks.COBWEB)) { - return 15.0F; - } else { - Material material = state.getMaterial(); - return material != Material.PLANT && material != Material.REPLACEABLE_PLANT && material != Material.UNUSED_PLANT && !state.isIn(BlockTags.LEAVES) && material != Material.GOURD ? 1.0F : 1.5F; - } + return !miner.isCreative() || state.getMaterial().equals(Material.STONE) || state.getMaterial().equals(Material.GLASS); } + @Override public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker) { stack.damage(1, attacker, ((entity) -> { entity.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); @@ -68,9 +61,10 @@ public class EndHammer extends ToolItem implements Vanishable { return true; } + @Override public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { if (state.getHardness(world, pos) != 0.0F) { - stack.damage(2, miner, ((entity) -> { + stack.damage(1, miner, ((entity) -> { entity.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); })); } @@ -78,10 +72,31 @@ public class EndHammer extends ToolItem implements Vanishable { return true; } - public boolean isEffectiveOn(BlockState state) { - return state.getMaterial().equals(Material.STONE); + @Override + public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) { + if (state.getMaterial().equals(Material.GLASS)) { + return 10.0F; + } + return 1.0F; + } + + @Override + public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { + return this.getMaterial().getMiningLevel(); } + @Override + public boolean isEffectiveOn(BlockState state) { + if (state.getMaterial().equals(Material.GLASS)) { + return true; + } + if (!state.getMaterial().equals(Material.STONE)) { + return false; + } + return ToolManager.handleIsEffectiveOnIgnoresVanilla(state, itemStack, null); + } + + @Override public Multimap getAttributeModifiers(EquipmentSlot slot) { return slot == EquipmentSlot.MAINHAND ? this.attributeModifiers : super.getAttributeModifiers(slot); } diff --git a/src/main/java/ru/betterend/item/EndPickaxe.java b/src/main/java/ru/betterend/item/EndPickaxe.java index 3e15f23d..17548543 100644 --- a/src/main/java/ru/betterend/item/EndPickaxe.java +++ b/src/main/java/ru/betterend/item/EndPickaxe.java @@ -1,11 +1,22 @@ package ru.betterend.item; +import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; +import net.minecraft.block.BlockState; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.item.PickaxeItem; import net.minecraft.item.ToolMaterial; +import net.minecraft.tag.Tag; -public class EndPickaxe extends PickaxeItem { +public class EndPickaxe extends PickaxeItem implements DynamicAttributeTool { public EndPickaxe(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } + + @Override + public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { + return this.getMaterial().getMiningLevel(); + } } diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index e2649ec2..0baf2051 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -46,6 +46,7 @@ public class CraftingRecipes { registerPickaxe(material, ItemRegistry.TERMINITE_INGOT, ItemRegistry.TERMINITE_PICKAXE); registerAxe(material, ItemRegistry.TERMINITE_INGOT, ItemRegistry.TERMINITE_AXE); registerHoe(material, ItemRegistry.TERMINITE_INGOT, ItemRegistry.TERMINITE_HOE); + registerHammer(material, ItemRegistry.TERMINITE_INGOT, ItemRegistry.TERMINITE_HAMMER); } if (itemExists(ItemRegistry.AETERNIUM_INGOT)) { String material = "aeternium"; @@ -63,7 +64,13 @@ public class CraftingRecipes { registerPickaxe(material, ItemRegistry.AETERNIUM_INGOT, ItemRegistry.AETERNIUM_PICKAXE); registerAxe(material, ItemRegistry.AETERNIUM_INGOT, ItemRegistry.AETERNIUM_AXE); registerHoe(material, ItemRegistry.AETERNIUM_INGOT, ItemRegistry.AETERNIUM_HOE); + registerHammer(material, ItemRegistry.AETERNIUM_INGOT, ItemRegistry.AETERNIUM_HAMMER); } + + registerHammer("iron", Items.IRON_INGOT, ItemRegistry.IRON_HAMMER); + registerHammer("golden", Items.GOLD_INGOT, ItemRegistry.GOLDEN_HAMMER); + registerHammer("diamond", Items.DIAMOND, ItemRegistry.DIAMOND_HAMMER); + registerHammer("netherite", Items.NETHERITE_INGOT, ItemRegistry.NETHERITE_HAMMER); } private static void registerHelmet(String name, Item material, Item result) { @@ -134,6 +141,14 @@ public class CraftingRecipes { .build(); } + private static void registerHammer(String name, Item material, Item result) { + RecipeBuilder.make(name + "_hammer", result) + .setShape(new String[] { "I I", "I#I", " # " }) + .addMaterial('I', material) + .addMaterial('#', Items.STICK) + .build(); + } + protected static boolean itemExists(Item item) { return Registry.ITEM.getId(item) != Registry.ITEM.getDefaultId(); } diff --git a/src/main/java/ru/betterend/registry/ItemRegistry.java b/src/main/java/ru/betterend/registry/ItemRegistry.java index 4e28f2f2..ff916d1c 100644 --- a/src/main/java/ru/betterend/registry/ItemRegistry.java +++ b/src/main/java/ru/betterend/registry/ItemRegistry.java @@ -49,14 +49,19 @@ public class ItemRegistry { public static ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new ShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem TERMINITE_SWORD = registerTool("terminite_sword", new SwordItem(EndToolMaterial.TERMINITE, 3, -2.4F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem TERMINITE_PICKAXE = registerTool("terminite_pickaxe", new EndPickaxe(EndToolMaterial.TERMINITE, 1, -2.8F, new Item.Settings().group(CreativeTab.END_TAB))); - public static ToolItem TERMINITE_AXE = registerTool("terminite_axe", new EndAxe(EndToolMaterial.TERMINITE, 5.0F, -3.0F, new Item.Settings().group(CreativeTab.END_TAB))); + public static ToolItem TERMINITE_AXE = registerTool("terminite_axe", new EndAxe(EndToolMaterial.TERMINITE, 6.0F, -3.0F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem TERMINITE_HOE = registerTool("terminite_hoe", new EndHoe(EndToolMaterial.TERMINITE, -3, 0.0F, new Item.Settings().group(CreativeTab.END_TAB))); + public static ToolItem TERMINITE_HAMMER = registerTool("terminite_hammer", new EndHammer(EndToolMaterial.TERMINITE, 5.0F, -3.2F, 0.3D, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem AETERNIUM_SHOVEL = registerTool("aeternium_shovel", new ShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem AETERNIUM_SWORD = registerTool("aeternium_sword", new SwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem AETERNIUM_PICKAXE = registerTool("aeternium_pickaxe", new EndPickaxe(EndToolMaterial.AETERNIUM, 1, -2.8F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem AETERNIUM_AXE = registerTool("aeternium_axe", new EndAxe(EndToolMaterial.AETERNIUM, 5.0F, -3.0F, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem AETERNIUM_HOE = registerTool("aeternium_hoe", new EndHoe(EndToolMaterial.AETERNIUM, -3, 0.0F, new Item.Settings().group(CreativeTab.END_TAB))); + public static ToolItem AETERNIUM_HAMMER = registerTool("aeternium_hammer", new EndHammer(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, new Item.Settings().group(CreativeTab.END_TAB))); public static ToolItem IRON_HAMMER = registerTool("iron_hammer", new EndHammer(ToolMaterials.IRON, 5.0F, -3.2F, 0.2D, new Item.Settings().group(CreativeTab.END_TAB))); + public static ToolItem GOLDEN_HAMMER = registerTool("golden_hammer", new EndHammer(ToolMaterials.GOLD, 4.5F, -3.4F, 0.3D, new Item.Settings().group(CreativeTab.END_TAB))); + public static ToolItem DIAMOND_HAMMER = registerTool("diamond_hammer", new EndHammer(ToolMaterials.DIAMOND, 5.5F, -3.1F, 0.2D, new Item.Settings().group(CreativeTab.END_TAB))); + public static ToolItem NETHERITE_HAMMER = registerTool("netherite_hammer", new EndHammer(ToolMaterials.DIAMOND, 6.0F, -3.0F, 0.2D, new Item.Settings().group(CreativeTab.END_TAB))); protected static Item registerItem(String name, Item item) { if (item != Items.AIR) { diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 467462cc..5a4ba92d 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -26,6 +26,7 @@ "item.betterend.terminite_pickaxe": "Terminite Pickaxe", "item.betterend.terminite_axe": "Terminite Axe", "item.betterend.terminite_hoe": "Terminite Hoe", + "item.betterend.terminite_hammer": "Terminite Smith Hammer", "item.betterend.aeternium_helmet": "Aeternium Helmet", "item.betterend.aeternium_chestplate": "Aeternium Chestplate", "item.betterend.aeternium_leggings": "Aeternium Leggings", @@ -35,6 +36,11 @@ "item.betterend.aeternium_pickaxe": "Aeternium Pickaxe", "item.betterend.aeternium_axe": "Aeternium Axe", "item.betterend.aeternium_hoe": "Aeternium Hoe", + "item.betterend.aeternium_hammer": "Aeternium Smith Hammer", + "item.betterend.iron_hammer": "Iron Smith Hammer", + "item.betterend.golden_hammer": "Golden Smith Hammer", + "item.betterend.diamond_hammer": "Diamond Smith Hammer", + "item.betterend.netherite_hammer": "Netherite Smith Hammer", "block.betterend.mossy_glowshroom_sapling": "Mossy Glowshroom Sapling", "block.betterend.mossy_glowshroom_cap": "Mossy Glowshroom Cap", diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index ecc427e7..fb04a411 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -26,6 +26,7 @@ "item.betterend.terminite_pickaxe": "Кирка из Терминита", "item.betterend.terminite_axe": "Топор из Терминита", "item.betterend.terminite_hoe": "Мотыга из Терминита", + "item.betterend.terminite_hammer": "Кузнечный Молот из Терминита", "item.betterend.aeternium_helmet": "Этериевый Шлем", "item.betterend.aeternium_chestplate": "Этериевая Кираса", "item.betterend.aeternium_leggings": "Этериевые Поножи", @@ -35,6 +36,11 @@ "item.betterend.aeternium_pickaxe": "Этериевая Кирка", "item.betterend.aeternium_axe": "Этериевый Топор", "item.betterend.aeternium_hoe": "Этериевая Мотыга", + "item.betterend.aeternium_hammer": "Этериевый Кузнечный Молот", + "item.betterend.iron_hammer": "Железный Кузнечный Молот", + "item.betterend.golden_hammer": "Золотой Кузнечный Молот", + "item.betterend.diamond_hammer": "Алмазный Кузнечный Молот", + "item.betterend.netherite_hammer": "Кузнечный Молот из Незерита", "block.betterend.mossy_glowshroom_sapling": "Саженец мшистого светогриба", "block.betterend.mossy_glowshroom_cap": "Шляпка мшистого светогриба", diff --git a/src/main/resources/assets/betterend/models/item/aeternium_hammer.json b/src/main/resources/assets/betterend/models/item/aeternium_hammer.json new file mode 100644 index 00000000..3f1ce7d5 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/aeternium_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "betterend:item/aeternium_hammer" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/diamond_hammer.json b/src/main/resources/assets/betterend/models/item/diamond_hammer.json new file mode 100644 index 00000000..77d71587 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/diamond_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "betterend:item/diamond_hammer" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/golden_hammer.json b/src/main/resources/assets/betterend/models/item/golden_hammer.json new file mode 100644 index 00000000..3928ba3a --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/golden_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "betterend:item/golden_hammer" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/netherite_hammer.json b/src/main/resources/assets/betterend/models/item/netherite_hammer.json new file mode 100644 index 00000000..bdf1b7e6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/netherite_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "betterend:item/netherite_hammer" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/terminite_hammer.json b/src/main/resources/assets/betterend/models/item/terminite_hammer.json new file mode 100644 index 00000000..95124c8d --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/terminite_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "betterend:item/terminite_hammer" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/item/aeternium_hammer.png b/src/main/resources/assets/betterend/textures/item/aeternium_hammer.png new file mode 100644 index 0000000000000000000000000000000000000000..c36afff5b617fbe24901c60514b7072e89a0ddfc GIT binary patch literal 477 zcmV<30V4j1P)iLBBlE|eUUX_br5a!|<8!AY#d<|8GVtWB{ut%Cy>;?63{ zNn295a3(t&S|{`9U3QZ(QvUTG=AGyFd**%K!GFWjJP}!{3OpWqbJ(CWLp(CNyfM|J z1V633N)H7i8??T)Nrm1j5_`P7EK|!&rZ2*xYA=nCjpANUz#s$efauC1J(mOK2c>kH98!+tr#}yuyc@8_0|;dG4%F8M?Oh= zE=lWil1ndXMix!f>-B_bu#FSgEp)_=<#C>XAW4|3bi=99!aFe~*F@9cR0tYf6rzdiXDnN#eTHxu+!N1|cJAmE_&?QNTm5RueKV+!7#B+Ei zd+49-uibgX%(2Hf$M3Hg%G?r019#IYb$``dFW9!R_M|p515YW!JV@8&8MYEP>SiTb zd2iUvwSLIRnZyOccL~5S&?32s>R`3xX6C9I0PQCK1=K&1ViZNO#TWesbS?m2-j?Nw TcaQ*400000NkvXXu0mjfIk>$4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/golden_hammer.png b/src/main/resources/assets/betterend/textures/item/golden_hammer.png new file mode 100644 index 0000000000000000000000000000000000000000..1421fe55f90e00a237f00ee2f314917c1bf76020 GIT binary patch literal 473 zcmV;~0Ve*5P)CjEkQ9)g7$GWO>1`8FP1uL|OTQ|Wi zv?9hzXcwJBjFDhWd`IrH(U|Z`!4EDM?mge{ocnQkuB7N!)u*U<7%V?nKE|eh|GgCX zzBK^&j05Z(9@hc9HQ+Vogsv}l@_D5j5z+Ck5zqhpWzsyDzfdB1W4tPkhXiTM2?#Y$`o-g1Ijc~F>H*;3W P00000NkvXXu0mjf#qrq{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/iron_hammer.png b/src/main/resources/assets/betterend/textures/item/iron_hammer.png index 713b51911e3de2a5072ffc11decda4b1bf6a8d87..9918ca3939b7a2dc80c1c34feef46cc7704b6950 100644 GIT binary patch delta 325 zcmV-L0lNOh0^kCWB!4GKL_t(IjipgNYlJ`$9aDvX$ZmPpB|qU(329d0s=LxEMZhBU zRcZ1MgmmdsORBVD7wonc@*kpzAOwpEvtebuy_LW{SXgHEefWfP;b}f1I;Em0(o3%_ zOKU#~oH{}Xtm|4Gx(gv@?>tM%5G3a;%U~QwH4B0Op6)krvwymTmyd77y|9=@Y$7*J z1AX7C({&weZyCIOB5=+&GRE+*5Ly2*zfS3VE*|7MI$BAQGy3#PNRG@yl@&P!y1CGcP8V}YqfO>EoN-RzOT`2c`l X*}TFVl|qjR00000NkvXXu0mjfY delta 298 zcmV+_0oDHC0>uK5B!3J^L_t(Ijir&Xj>0euh8?C8TROtVNxZ-@!je|H>6lKPS%8^G zV6Mc*&eDO3iM8!^YhHkNpq-h5Y{^xwX$w++$x;&M|Li!>SAzYifnAXbi|2#TVhGtcv2zgfWN=mQSdJAZixj?-$}HluL;J(FIHOpZ=qYUU5s>apjFWm)k1yigPco5`Jr;CaeNw4er=U_G%x(XjrI0t8`M@cF#( z6nLw0SBGqBGe|UgWDNgR7HQwktKDzW`8t)8{ zs;V?HIE;ax15mhva3}#PzP_?l9f-v~q00000NkvXXu0mjf1+nSH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/terminite_hammer.png b/src/main/resources/assets/betterend/textures/item/terminite_hammer.png new file mode 100644 index 0000000000000000000000000000000000000000..bce2cf98a93d703292450df298d17bc75be9941a GIT binary patch literal 418 zcmV;T0bTxyP)3Hn!!#YO^RS`lj7*2;$)?64#fxsmAcf~!MR8s+6vmGZtCbNI29*B zN5M(KQ6hpxmp;i|6Kazbp%3mLm-m0~zjqI#26Oa86o_JaQv4J|=C4QDt-CX7&^#NHXNt@+;ynTLv5un8sydIS>Jvol*^*h&wJW9uQM&si1_HEBP zfo65&voa2@I;h$?(QvQ>q*TIuMqIoHKo?j_>ChAfjpB|d6r2=yG3F7vP2fV7n+c&I-PuhMX9V0l-lOyV{gs{fMnnR4VOKt@ zVe7O8ge8A*V>>Qv4+$3>RC#!Zd;tHgJP2^-z!6%O6+9aQfYAfMFTc*W>^xy8@&Et; M07*qoM6N<$f@H(CDgXcg literal 0 HcmV?d00001