diff --git a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java index c451d59b..7471a144 100644 --- a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java @@ -4,7 +4,11 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.block.MaterialColor; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.ArmorItem; +import net.minecraft.item.ArmorMaterial; import net.minecraft.item.Item; +import net.minecraft.item.Item.Settings; import net.minecraft.item.Items; import net.minecraft.item.ToolMaterial; import net.minecraft.sound.BlockSoundGroup; @@ -22,10 +26,12 @@ import ru.betterend.blocks.basis.EndStairsBlock; import ru.betterend.blocks.basis.EndTrapdoorBlock; import ru.betterend.blocks.basis.EndWoodenPlateBlock; import ru.betterend.item.EndAxeItem; +import ru.betterend.item.EndHammerItem; import ru.betterend.item.EndHoeItem; import ru.betterend.item.EndPickaxeItem; import ru.betterend.item.EndShovelItem; import ru.betterend.item.EndSwordItem; +import ru.betterend.item.PatternedItem; import ru.betterend.recipe.builders.AlloyingRecipe; import ru.betterend.recipe.builders.FurnaceRecipe; import ru.betterend.recipe.builders.GridRecipe; @@ -57,37 +63,66 @@ public class MetalMaterial { public final Item pickaxe; public final Item axe; public final Item hoe; + public final Item hammer; - public MetalMaterial(String name, MaterialColor color, ToolMaterial material) { - FabricBlockSettings materialBlock = FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color); - FabricBlockSettings lantern = FabricBlockSettings.copyOf(materialBlock).sounds(BlockSoundGroup.LANTERN).hardness(1).resistance(1).luminance(15); + public final Item helmet; + public final Item chestplate; + public final Item leggings; + public final Item boots; + + public static MetalMaterial makeNormal(String name, MaterialColor color, ToolMaterial material, ArmorMaterial armor) { + return new MetalMaterial(name, true, FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color), EndItems.makeItemSettings(), material, armor); + } + + public static MetalMaterial makeNormal(String name, MaterialColor color, float hardness, float resistance, ToolMaterial material, ArmorMaterial armor) { + return new MetalMaterial(name, true, FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color).hardness(hardness).resistance(resistance), EndItems.makeItemSettings(), material, armor); + } + + public static MetalMaterial makeOreless(String name, MaterialColor color, ToolMaterial material, ArmorMaterial armor) { + return new MetalMaterial(name, false, FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color), EndItems.makeItemSettings(), material, armor); + } + + public static MetalMaterial makeOreless(String name, MaterialColor color, float hardness, float resistance, ToolMaterial material, ArmorMaterial armor) { + return new MetalMaterial(name, false, FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color).hardness(hardness).resistance(resistance), EndItems.makeItemSettings(), material, armor); + } + + private MetalMaterial(String name, boolean hasOre, FabricBlockSettings settings, Settings itemSettings, ToolMaterial material, ArmorMaterial armor) { + FabricBlockSettings lantern = FabricBlockSettings.copyOf(settings).sounds(BlockSoundGroup.LANTERN).hardness(1).resistance(1).luminance(15); - ore = EndBlocks.registerBlock(name + "_ore", new BlockBase(FabricBlockSettings.copyOf(Blocks.END_STONE))); - block = EndBlocks.registerBlock(name + "_block", new BlockBase(materialBlock)); - tile = EndBlocks.registerBlock(name + "_tile", new BlockBase(materialBlock)); + ore = hasOre ? EndBlocks.registerBlock(name + "_ore", new BlockBase(FabricBlockSettings.copyOf(Blocks.END_STONE))) : null; + block = EndBlocks.registerBlock(name + "_block", new BlockBase(settings)); + tile = EndBlocks.registerBlock(name + "_tile", new BlockBase(settings)); stairs = EndBlocks.registerBlock(name + "_stairs", new EndStairsBlock(tile)); slab = EndBlocks.registerBlock(name + "_slab", new EndSlabBlock(tile)); door = EndBlocks.registerBlock(name + "_door", new EndDoorBlock(block)); trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new EndTrapdoorBlock(block)); - anvil = EndBlocks.registerBlock(name + "_anvil", new EndAnvilBlock(color)); + anvil = EndBlocks.registerBlock(name + "_anvil", new EndAnvilBlock(block.getDefaultMaterialColor())); bars = EndBlocks.registerBlock(name + "_bars", new EndMetalPaneBlock(block)); - chain = EndBlocks.registerBlock(name + "_chain", new EndChainBlock(color)); + chain = EndBlocks.registerBlock(name + "_chain", new EndChainBlock(block.getDefaultMaterialColor())); plate = EndBlocks.registerBlock(name + "_plate", new EndWoodenPlateBlock(block)); chandelier = EndBlocks.registerBlock(name + "_chandelier", new ChandelierBlock(block)); bulb_lantern = EndBlocks.registerBlock(name + "_bulb_lantern", new BulbVineLanternBlock(lantern)); bulb_lantern_colored = new ColoredMaterial(BulbVineLanternColoredBlock::new, bulb_lantern, false); - nugget = EndItems.registerItem(name + "_nugget"); - ingot = EndItems.registerItem(name + "_ingot"); - shovel = EndItems.registerTool(name + "_shovel", new EndShovelItem(material, 1.5F, -3.0F, EndItems.makeItemSettings())); - sword = EndItems.registerTool(name + "_sword", new EndSwordItem(material, 3, -2.4F, EndItems.makeItemSettings())); - pickaxe = EndItems.registerTool(name + "_pickaxe", new EndPickaxeItem(material, 1, -2.8F, EndItems.makeItemSettings())); - axe = EndItems.registerTool(name + "_axe", new EndAxeItem(material, 6.0F, -3.0F, EndItems.makeItemSettings())); - hoe = EndItems.registerTool(name + "_hoe", new EndHoeItem(material, -3, 0.0F, EndItems.makeItemSettings())); + nugget = EndItems.registerItem(name + "_nugget", new PatternedItem(itemSettings)); + ingot = EndItems.registerItem(name + "_ingot", new PatternedItem(itemSettings)); + shovel = EndItems.registerTool(name + "_shovel", new EndShovelItem(material, 1.5F, -3.0F, itemSettings)); + sword = EndItems.registerTool(name + "_sword", new EndSwordItem(material, 3, -2.4F, itemSettings)); + pickaxe = EndItems.registerTool(name + "_pickaxe", new EndPickaxeItem(material, 1, -2.8F, itemSettings)); + axe = EndItems.registerTool(name + "_axe", new EndAxeItem(material, 6.0F, -3.0F, itemSettings)); + hoe = EndItems.registerTool(name + "_hoe", new EndHoeItem(material, -3, 0.0F, itemSettings)); + hammer = EndItems.registerTool(name + "_hammer", new EndHammerItem(material, 5.0F, -3.2F, 0.3D, itemSettings)); - FurnaceRecipe.make("thallasium_ingot_furnace", ore, ingot).build(true); - AlloyingRecipe.Builder.create("thallasium_ingot").setInput(ore, ore).setOutput(ingot, 3).setExpiriense(2.1F).build(); + helmet = EndItems.registerItem(name + "_helmet", new ArmorItem(armor, EquipmentSlot.HEAD, itemSettings)); + chestplate = EndItems.registerItem(name + "_chestplate", new ArmorItem(armor, EquipmentSlot.CHEST, itemSettings)); + leggings = EndItems.registerItem(name + "_leggings", new ArmorItem(armor, EquipmentSlot.LEGS, itemSettings)); + boots = EndItems.registerItem(name + "_boots", new ArmorItem(armor, EquipmentSlot.FEET, itemSettings)); + + if (hasOre) { + FurnaceRecipe.make("thallasium_ingot_furnace", ore, ingot).build(true); + AlloyingRecipe.Builder.create("thallasium_ingot").setInput(ore, ore).setOutput(ingot, 3).setExpiriense(2.1F).build(); + } GridRecipe.make(name + "_ingot_from_nuggets", ingot).setShape("###", "###", "###").addMaterial('#', nugget).setGroup("end_metal_ingots_nug").build(); GridRecipe.make(name + "_block", block).setShape("###", "###", "###").addMaterial('#', ingot).setGroup("end_metal_blocks").build(); @@ -104,12 +139,13 @@ public class MetalMaterial { GridRecipe.make(name + "_anvil", anvil).setOutputCount(3).setShape("###", " I ", "III").addMaterial('#', block, tile).addMaterial('I', ingot).setGroup("end_metal_anvil").build(); GridRecipe.make(name + "bulb_lantern", bulb_lantern).setShape("C", "I", "#").addMaterial('C', chain).addMaterial('I', ingot).addMaterial('#', EndItems.GLOWING_BULB).build(); - GridRecipe.make(name + "_axe", axe).setShape("##", "#I", " I").addMaterial('#', ingot).addMaterial('I', Items.STICK).build(); - GridRecipe.make(name + "_hoe", hoe).setShape("##", " I", " I").addMaterial('#', ingot).addMaterial('I', Items.STICK).build(); - GridRecipe.make(name + "_pickaxe", pickaxe).setShape("###", " I ", " I ").addMaterial('#', ingot).addMaterial('I', Items.STICK).build(); - GridRecipe.make(name + "_sword", sword).setShape("#", "#", "I").addMaterial('#', ingot).addMaterial('I', Items.STICK).build(); + GridRecipe.make(name + "_axe", axe).setShape("##", "#I", " I").addMaterial('#', ingot).addMaterial('I', Items.STICK).setGroup("end_metal_axes").build(); + GridRecipe.make(name + "_hoe", hoe).setShape("##", " I", " I").addMaterial('#', ingot).addMaterial('I', Items.STICK).setGroup("end_metal_hoes").build(); + GridRecipe.make(name + "_pickaxe", pickaxe).setShape("###", " I ", " I ").addMaterial('#', ingot).addMaterial('I', Items.STICK).setGroup("end_metal_picks").build(); + GridRecipe.make(name + "_sword", sword).setShape("#", "#", "I").addMaterial('#', ingot).addMaterial('I', Items.STICK).setGroup("end_metal_swords").build(); GridRecipe.make(name + "_chandelier", chandelier).setShape("I#I", " # ").addMaterial('#', ingot).addMaterial('I', EndItems.LUMECORN_ROD).setGroup("end_metal_chandelier").build(); + GridRecipe.make(name + "_hammer", hammer).setShape("III", "ISI", " S ").addMaterial('I', ingot).addMaterial('S', Items.STICK).setGroup("end_metal_hammers").build(); FurnaceRecipe.make(name + "_axe_ingot", axe, nugget).build(true); FurnaceRecipe.make(name + "_hoe_ingot", hoe, nugget).build(true); diff --git a/src/main/java/ru/betterend/item/material/EndArmorMaterial.java b/src/main/java/ru/betterend/item/material/EndArmorMaterial.java index 6c3b5cd9..ef10f3a9 100644 --- a/src/main/java/ru/betterend/item/material/EndArmorMaterial.java +++ b/src/main/java/ru/betterend/item/material/EndArmorMaterial.java @@ -10,17 +10,21 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; import net.minecraft.util.Lazy; +import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; public enum EndArmorMaterial implements ArmorMaterial { + THALLASIUM("thallasium", 26, new int[] { 3, 6, 7, 3 }, 14, SoundEvents.ITEM_ARMOR_EQUIP_IRON, 1.0F, 0.05F, () -> { + return Ingredient.ofItems(EndBlocks.THALLASIUM.ingot); + }), TERMINITE("terminite", 26, new int[] { 3, 6, 7, 3 }, 14, SoundEvents.ITEM_ARMOR_EQUIP_IRON, 1.0F, 0.05F, () -> { - return Ingredient.ofItems(EndItems.TERMINITE_INGOT); + return Ingredient.ofItems(EndBlocks.TERMINITE.ingot); }), AETERNIUM("aeternium", 40, new int[] { 4, 7, 9, 4 }, 18, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, 3.5F, 0.2F, () -> { return Ingredient.ofItems(EndItems.AETERNIUM_INGOT); }), CRYSTALITE("crystalite", 30, new int[] { 3, 6, 8, 3 }, 24, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 1.2F, 0.1F, () -> { - return Ingredient.ofItems(EndItems.TERMINITE_INGOT); + return Ingredient.ofItems(EndBlocks.TERMINITE.ingot); }); private static final int[] BASE_DURABILITY = new int[] { 13, 15, 16, 11 }; diff --git a/src/main/java/ru/betterend/item/material/EndToolMaterial.java b/src/main/java/ru/betterend/item/material/EndToolMaterial.java index 5724307b..de508032 100644 --- a/src/main/java/ru/betterend/item/material/EndToolMaterial.java +++ b/src/main/java/ru/betterend/item/material/EndToolMaterial.java @@ -5,14 +5,15 @@ import java.util.function.Supplier; import net.minecraft.item.ToolMaterial; import net.minecraft.recipe.Ingredient; import net.minecraft.util.Lazy; +import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; public enum EndToolMaterial implements ToolMaterial { THALLASIUM(2, 320, 7.0F, 1.5F, 12, () -> { - return Ingredient.ofItems(EndItems.AETERNIUM_INGOT); + return Ingredient.ofItems(EndBlocks.THALLASIUM.ingot); }), TERMINITE(3, 1230, 8.5F, 3.0F, 14, () -> { - return Ingredient.ofItems(EndItems.TERMINITE_INGOT); + return Ingredient.ofItems(EndBlocks.TERMINITE.ingot); }), AETERNIUM(5, 2196, 10.0F, 4.5F, 18, () -> { return Ingredient.ofItems(EndItems.AETERNIUM_INGOT); diff --git a/src/main/java/ru/betterend/recipe/AlloyingRecipes.java b/src/main/java/ru/betterend/recipe/AlloyingRecipes.java index 61795576..10d63003 100644 --- a/src/main/java/ru/betterend/recipe/AlloyingRecipes.java +++ b/src/main/java/ru/betterend/recipe/AlloyingRecipes.java @@ -26,19 +26,19 @@ public class AlloyingRecipes { .build(); AlloyingRecipe.Builder.create("terminite_ingot") .setInput(Items.IRON_INGOT, EndItems.ENDER_DUST) - .setOutput(EndItems.TERMINITE_INGOT, 1) + .setOutput(EndBlocks.TERMINITE.ingot, 1) .setExpiriense(2.5F) .setSmeltTime(450) .build(); AlloyingRecipe.Builder.create("aeternium_ingot") - .setInput(EndItems.TERMINITE_INGOT, Items.NETHERITE_INGOT) + .setInput(EndBlocks.TERMINITE.ingot, Items.NETHERITE_INGOT) .setOutput(EndItems.AETERNIUM_INGOT, 1) .setExpiriense(4.5F) .setSmeltTime(600) .build(); AlloyingRecipe.Builder.create("terminite_ingot_thallasium") .setInput(EndBlocks.THALLASIUM.ingot, EndItems.ENDER_DUST) - .setOutput(EndItems.TERMINITE_INGOT, 1) + .setOutput(EndBlocks.TERMINITE.ingot, 1) .setExpiriense(2.5F) .setSmeltTime(450) .build(); diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index 85ef47ec..6a204a57 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -2,7 +2,6 @@ package ru.betterend.recipe; import net.minecraft.block.Block; import net.minecraft.block.Blocks; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.potion.PotionUtil; @@ -55,29 +54,7 @@ public class CraftingRecipes { .addMaterial('#', Blocks.OBSIDIAN) .build(); - String material = "terminite"; - GridRecipe.make(material + "_block", EndBlocks.TERMINITE_BLOCK) - .setShape("III", "III", "III") - .addMaterial('I', EndItems.TERMINITE_INGOT) - .build(); - GridRecipe.make(material + "_block_to_ingot", EndItems.TERMINITE_INGOT) - .addMaterial('#', EndBlocks.TERMINITE_BLOCK) - .setOutputCount(9) - .setList("#") - .build(); - - registerHelmet(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_HELMET); - registerChestplate(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_CHESTPLATE); - registerLeggings(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_LEGGINGS); - registerBoots(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_BOOTS); - registerShovel(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_SHOVEL); - registerSword(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_SWORD); - registerPickaxe(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_PICKAXE); - registerAxe(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_AXE); - registerHoe(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_HOE); - registerHammer(material, EndItems.TERMINITE_INGOT, EndItems.TERMINITE_HAMMER); - - material = "aeternium"; + String material = "aeternium"; GridRecipe.make(material + "_block", EndBlocks.AETERNIUM_BLOCK) .setShape("III", "III", "III") .addMaterial('I', EndItems.AETERNIUM_INGOT) @@ -88,11 +65,6 @@ public class CraftingRecipes { .setList("#") .build(); - registerHammer("iron", Items.IRON_INGOT, EndItems.IRON_HAMMER); - registerHammer("golden", Items.GOLD_INGOT, EndItems.GOLDEN_HAMMER); - registerHammer("diamond", Items.DIAMOND, EndItems.DIAMOND_HAMMER); - registerHammer("netherite", Items.NETHERITE_INGOT, EndItems.NETHERITE_HAMMER); - GridRecipe.make("blue_vine_seed_dye", Items.BLUE_DYE).setList("#").addMaterial('#', EndBlocks.BLUE_VINE_SEED).build(); GridRecipe.make("creeping_moss_dye", Items.CYAN_DYE).setList("#").addMaterial('#', EndBlocks.CREEPING_MOSS).build(); GridRecipe.make("umbrella_moss_dye", Items.YELLOW_DYE).setList("#").addMaterial('#', EndBlocks.UMBRELLA_MOSS).build(); @@ -219,80 +191,4 @@ public class CraftingRecipes { .setOutputCount(2) .build(); } - - private static void registerHelmet(String name, Item material, Item result) { - GridRecipe.make(name + "_helmet", result) - .setShape("III", "I I") - .addMaterial('I', material) - .build(); - } - - private static void registerChestplate(String name, Item material, Item result) { - GridRecipe.make(name + "_chestplate", result) - .setShape("I I", "III", "III") - .addMaterial('I', material) - .build(); - } - - private static void registerLeggings(String name, Item material, Item result) { - GridRecipe.make(name + "_leggings", result) - .setShape("III", "I I", "I I") - .addMaterial('I', material) - .build(); - } - - private static void registerBoots(String name, Item material, Item result) { - GridRecipe.make(name + "_boots", result) - .setShape("I I", "I I") - .addMaterial('I', material) - .build(); - } - - private static void registerShovel(String name, Item material, Item result) { - GridRecipe.make(name + "_shovel", result) - .setShape("I", "#", "#") - .addMaterial('I', material) - .addMaterial('#', Items.STICK) - .build(); - } - - private static void registerSword(String name, Item material, Item result) { - GridRecipe.make(name + "_sword", result) - .setShape(new String[] { "I", "I", "#" }) - .addMaterial('I', material) - .addMaterial('#', Items.STICK) - .build(); - } - - private static void registerPickaxe(String name, Item material, Item result) { - GridRecipe.make(name + "_pickaxe", result) - .setShape("III", " # ", " # ") - .addMaterial('I', material) - .addMaterial('#', Items.STICK) - .build(); - } - - private static void registerAxe(String name, Item material, Item result) { - GridRecipe.make(name + "_axe", result) - .setShape("II", "#I", "# ") - .addMaterial('I', material) - .addMaterial('#', Items.STICK) - .build(); - } - - private static void registerHoe(String name, Item material, Item result) { - GridRecipe.make(name + "_hoe", result) - .setShape("II", "# ", "# ") - .addMaterial('I', material) - .addMaterial('#', Items.STICK) - .build(); - } - - private static void registerHammer(String name, Item material, Item result) { - GridRecipe.make(name + "_hammer", result) - .setShape("I I", "I#I", " # ") - .addMaterial('I', material) - .addMaterial('#', Items.STICK) - .build(); - } } diff --git a/src/main/java/ru/betterend/recipe/InfusionRecipes.java b/src/main/java/ru/betterend/recipe/InfusionRecipes.java index d7120fec..0be70464 100644 --- a/src/main/java/ru/betterend/recipe/InfusionRecipes.java +++ b/src/main/java/ru/betterend/recipe/InfusionRecipes.java @@ -38,7 +38,7 @@ public class InfusionRecipes { .build(); InfusionRecipe.Builder.create("crystalite_helmet") - .setInput(EndItems.TERMINITE_HELMET) + .setInput(EndBlocks.TERMINITE.helmet) .setOutput(EndItems.CRYSTALITE_HELMET) .addCatalyst(0, EndItems.AMBER_GEM) .addCatalyst(2, EndItems.CRYSTAL_SHARDS) @@ -46,7 +46,7 @@ public class InfusionRecipes { .setTime(150) .build(); InfusionRecipe.Builder.create("crystalite_chestplate") - .setInput(EndItems.TERMINITE_CHESTPLATE) + .setInput(EndBlocks.TERMINITE.chestplate) .setOutput(EndItems.CRYSTALITE_CHESTPLATE) .addCatalyst(0, EndItems.AMBER_GEM) .addCatalyst(1, EndItems.CRYSTAL_SHARDS) @@ -56,7 +56,7 @@ public class InfusionRecipes { .setTime(300) .build(); InfusionRecipe.Builder.create("crystalite_leggings") - .setInput(EndItems.TERMINITE_LEGGINGS) + .setInput(EndBlocks.TERMINITE.leggings) .setOutput(EndItems.CRYSTALITE_LEGGINGS) .addCatalyst(0, EndItems.AMBER_GEM) .addCatalyst(2, EndItems.CRYSTAL_SHARDS) @@ -65,7 +65,7 @@ public class InfusionRecipes { .setTime(225) .build(); InfusionRecipe.Builder.create("crystalite_boots") - .setInput(EndItems.TERMINITE_BOOTS) + .setInput(EndBlocks.TERMINITE.boots) .setOutput(EndItems.CRYSTALITE_BOOTS) .addCatalyst(0, EndItems.AMBER_GEM) .addCatalyst(2, EndItems.CRYSTAL_SHARDS) diff --git a/src/main/java/ru/betterend/recipe/SmithingRecipes.java b/src/main/java/ru/betterend/recipe/SmithingRecipes.java index 43a795f0..b3774481 100644 --- a/src/main/java/ru/betterend/recipe/SmithingRecipes.java +++ b/src/main/java/ru/betterend/recipe/SmithingRecipes.java @@ -1,6 +1,7 @@ package ru.betterend.recipe; import ru.betterend.recipe.builders.SmithingTableRecipe; +import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; public class SmithingRecipes { @@ -8,7 +9,7 @@ public class SmithingRecipes { public static void register() { SmithingTableRecipe.create("aeternium_sword_handle") .setResult(EndItems.AETERNIUM_SWORD_HANDLE) - .setBase(EndItems.TERMINITE_INGOT) + .setBase(EndBlocks.TERMINITE.ingot) .setAddition(EndItems.LEATHER_WRAPPED_STICK) .build(); @@ -45,22 +46,22 @@ public class SmithingRecipes { SmithingTableRecipe.create("aeternium_helmet") .setResult(EndItems.AETERNIUM_HELMET) - .setBase(EndItems.TERMINITE_HELMET) + .setBase(EndBlocks.TERMINITE.helmet) .setAddition(EndItems.AETERNIUM_INGOT) .build(); SmithingTableRecipe.create("aeternium_chestplate") .setResult(EndItems.AETERNIUM_CHESTPLATE) - .setBase(EndItems.TERMINITE_CHESTPLATE) + .setBase(EndBlocks.TERMINITE.chestplate) .setAddition(EndItems.AETERNIUM_INGOT) .build(); SmithingTableRecipe.create("aeternium_leggings") .setResult(EndItems.AETERNIUM_LEGGINGS) - .setBase(EndItems.TERMINITE_LEGGINGS) + .setBase(EndBlocks.TERMINITE.leggings) .setAddition(EndItems.AETERNIUM_INGOT) .build(); SmithingTableRecipe.create("aeternium_boots") .setResult(EndItems.AETERNIUM_BOOTS) - .setBase(EndItems.TERMINITE_BOOTS) + .setBase(EndBlocks.TERMINITE.boots) .setAddition(EndItems.AETERNIUM_INGOT) .build(); } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 5489b217..7abeb9b3 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -77,7 +77,6 @@ import ru.betterend.blocks.SmallJellyshroomBlock; import ru.betterend.blocks.SulphurCrystalBlock; import ru.betterend.blocks.TenaneaFlowersBlock; import ru.betterend.blocks.TenaneaSaplingBlock; -import ru.betterend.blocks.TerminiteBlock; import ru.betterend.blocks.TerrainPlantBlock; import ru.betterend.blocks.TwistedUmbrellaMossBlock; import ru.betterend.blocks.TwistedUmbrellaMossTallBlock; @@ -103,6 +102,7 @@ import ru.betterend.blocks.complex.MetalMaterial; import ru.betterend.blocks.complex.StoneMaterial; import ru.betterend.blocks.complex.WoodenMaterial; import ru.betterend.config.Configs; +import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndToolMaterial; public class EndBlocks { @@ -287,9 +287,10 @@ public class EndBlocks { public static final Block AMBER_ORE = registerBlock("amber_ore", new EndOreBlock(EndItems.RAW_AMBER, 1, 2, 4)); // Materials // - public static final Block TERMINITE_BLOCK = registerBlock("terminite_block", new TerminiteBlock()); + public static final MetalMaterial THALLASIUM = MetalMaterial.makeNormal("thallasium", MaterialColor.BLUE, EndToolMaterial.THALLASIUM, EndArmorMaterial.TERMINITE); + public static final MetalMaterial TERMINITE = MetalMaterial.makeOreless("terminite", MaterialColor.field_25708, 7F, 9F, EndToolMaterial.TERMINITE, EndArmorMaterial.TERMINITE); public static final Block AETERNIUM_BLOCK = registerBlock("aeternium_block", new AeterniumBlock()); - public static final MetalMaterial THALLASIUM = new MetalMaterial("thallasium", MaterialColor.BLUE, EndToolMaterial.THALLASIUM); + public static final Block ENDER_BLOCK = registerBlock("ender_block", new EnderBlock()); public static final Block AURORA_CRYSTAL = registerBlock("aurora_crystal", new AuroraCrystalBlock()); public static final Block AMBER_BLOCK = registerBlock("amber_block", new AmberBlock()); diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index 3cb38792..c5b6859f 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -25,7 +25,6 @@ import net.minecraft.item.ShovelItem; import net.minecraft.item.SpawnEggItem; import net.minecraft.item.SwordItem; import net.minecraft.item.ToolItem; -import net.minecraft.item.ToolMaterials; import net.minecraft.tag.Tag; import net.minecraft.util.Identifier; import net.minecraft.util.Rarity; @@ -57,7 +56,6 @@ public class EndItems { // Materials // public final static Item ENDER_DUST = registerItem("ender_dust"); public final static Item ENDER_SHARD = registerItem("ender_shard"); - public final static Item TERMINITE_INGOT = registerItem("terminite_ingot"); public final static Item AETERNIUM_INGOT = registerItem("aeternium_ingot"); public final static Item END_LILY_LEAF = registerItem("end_lily_leaf"); public final static Item END_LILY_LEAF_DRIED = registerItem("end_lily_leaf_dried"); @@ -76,10 +74,6 @@ public class EndItems { public final static Item LUMECORN_ROD = registerItem("lumecorn_rod"); // Armor // - public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD, makeItemSettings())); - public static final Item TERMINITE_CHESTPLATE = registerItem("terminite_chestplate", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.CHEST, makeItemSettings())); - public static final Item TERMINITE_LEGGINGS = registerItem("terminite_leggings", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.LEGS, makeItemSettings())); - public static final Item TERMINITE_BOOTS = registerItem("terminite_boots", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.FEET, makeItemSettings())); public static final Item AETERNIUM_HELMET = registerItem("aeternium_helmet", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.HEAD, makeItemSettings().fireproof())); public static final Item AETERNIUM_CHESTPLATE = registerItem("aeternium_chestplate", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.CHEST, makeItemSettings().fireproof())); public static final Item AETERNIUM_LEGGINGS = registerItem("aeternium_leggings", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, makeItemSettings().fireproof())); @@ -90,13 +84,6 @@ public class EndItems { public static final Item CRYSTALITE_BOOTS = registerItem("crystalite_boots", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.FEET, makeItemSettings().rarity(Rarity.UNCOMMON))); // Tools // - public static final ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new EndShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, makeItemSettings())); - public static final ToolItem TERMINITE_SWORD = registerTool("terminite_sword", new EndSwordItem(EndToolMaterial.TERMINITE, 3, -2.4F, makeItemSettings())); - public static final ToolItem TERMINITE_PICKAXE = registerTool("terminite_pickaxe", new EndPickaxeItem(EndToolMaterial.TERMINITE, 1, -2.8F, makeItemSettings())); - public static final ToolItem TERMINITE_AXE = registerTool("terminite_axe", new EndAxeItem(EndToolMaterial.TERMINITE, 6.0F, -3.0F, makeItemSettings())); - public static final ToolItem TERMINITE_HOE = registerTool("terminite_hoe", new EndHoeItem(EndToolMaterial.TERMINITE, -3, 0.0F, makeItemSettings())); - public static final ToolItem TERMINITE_HAMMER = registerTool("terminite_hammer", new EndHammerItem(EndToolMaterial.TERMINITE, 5.0F, -3.2F, 0.3D, makeItemSettings())); - public static final ToolItem AETERNIUM_SHOVEL = registerTool("aeternium_shovel", new EndShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, makeItemSettings().fireproof())); public static final ToolItem AETERNIUM_SWORD = registerTool("aeternium_sword", new EndSwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, makeItemSettings().fireproof())); public static final ToolItem AETERNIUM_PICKAXE = registerTool("aeternium_pickaxe", new EndPickaxeItem(EndToolMaterial.AETERNIUM, 1, -2.8F, makeItemSettings().fireproof())); @@ -104,10 +91,14 @@ public class EndItems { public static final ToolItem AETERNIUM_HOE = registerTool("aeternium_hoe", new EndHoeItem(EndToolMaterial.AETERNIUM, -3, 0.0F, makeItemSettings().fireproof())); public static final ToolItem AETERNIUM_HAMMER = registerTool("aeternium_hammer", new EndHammerItem(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, makeItemSettings().fireproof())); - public static final ToolItem IRON_HAMMER = registerTool("iron_hammer", new EndHammerItem(ToolMaterials.IRON, 5.0F, -3.2F, 0.2D, makeItemSettings())); - public static final ToolItem GOLDEN_HAMMER = registerTool("golden_hammer", new EndHammerItem(ToolMaterials.GOLD, 4.5F, -3.4F, 0.3D, makeItemSettings())); - public static final ToolItem DIAMOND_HAMMER = registerTool("diamond_hammer", new EndHammerItem(ToolMaterials.DIAMOND, 5.5F, -3.1F, 0.2D, makeItemSettings())); - public static final ToolItem NETHERITE_HAMMER = registerTool("netherite_hammer", new EndHammerItem(ToolMaterials.NETHERITE, 5.0F, -3.0F, 0.2D, makeItemSettings())); + // Toolparts // + public final static Item AETERNIUM_SHOVEL_HEAD = registerItem("aeternium_shovel_head"); + public final static Item AETERNIUM_PICKAXE_HEAD = registerItem("aeternium_pickaxe_head"); + public final static Item AETERNIUM_AXE_HEAD = registerItem("aeternium_axe_head"); + public final static Item AETERNIUM_HOE_HEAD = registerItem("aeternium_hoe_head"); + public final static Item AETERNIUM_HAMMER_HEAD = registerItem("aeternium_hammer_head"); + public final static Item AETERNIUM_SWORD_BLADE = registerItem("aeternium_sword_blade"); + public final static Item AETERNIUM_SWORD_HANDLE = registerItem("aeternium_sword_handle"); // Food // public final static Item SHADOW_BERRY_RAW = registerFood("shadow_berry_raw", 4, 0.5F); @@ -119,23 +110,14 @@ public class EndItems { public final static Item SHADOW_BERRY_JELLY = registerFood("shadow_berry_jelly", 4, 0.75F, new StatusEffectInstance(StatusEffects.NIGHT_VISION, 400)); public final static Item BLOSSOM_BERRY = registerFood("blossom_berry", FoodComponents.APPLE); - // Drinks + // Drinks // public final static Item UMBRELLA_CLUSTER_JUICE = registerDrink("umbrella_cluster_juice"); - // Toolparts // - public final static Item AETERNIUM_SHOVEL_HEAD = registerItem("aeternium_shovel_head"); - public final static Item AETERNIUM_PICKAXE_HEAD = registerItem("aeternium_pickaxe_head"); - public final static Item AETERNIUM_AXE_HEAD = registerItem("aeternium_axe_head"); - public final static Item AETERNIUM_HOE_HEAD = registerItem("aeternium_hoe_head"); - public final static Item AETERNIUM_HAMMER_HEAD = registerItem("aeternium_hammer_head"); - public final static Item AETERNIUM_SWORD_BLADE = registerItem("aeternium_sword_blade"); - public final static Item AETERNIUM_SWORD_HANDLE = registerItem("aeternium_sword_handle"); - public static Item registerItem(String name) { return registerItem(BetterEnd.makeID(name), new PatternedItem(makeItemSettings())); } - protected static Item registerItem(String name, Item item) { + public static Item registerItem(String name, Item item) { return registerItem(BetterEnd.makeID(name), item); } diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index bb324daa..63b26079 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -1,6 +1,8 @@ package ru.betterend.registry; -import java.util.Arrays; +import java.util.List; + +import com.google.common.collect.Lists; import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl; @@ -26,6 +28,7 @@ import ru.betterend.blocks.EndTerrainBlock; import ru.betterend.blocks.basis.PedestalBlock; import ru.betterend.blocks.basis.SimpleLeavesBlock; import ru.betterend.blocks.basis.VineBlock; +import ru.betterend.item.EndHammerItem; import ru.betterend.mixin.common.ComposterBlockAccessor; import ru.betterend.util.TagHelper; @@ -96,16 +99,13 @@ public class EndTags { TagHelper.addTag(GEN_TERRAIN, EndBlocks.ENDER_ORE, EndBlocks.FLAVOLITE.stone, EndBlocks.VIOLECITE.stone, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE); TagHelper.addTag(END_GROUND, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE); - ToolManagerImpl.tag(HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler( - Arrays.asList( - EndItems.IRON_HAMMER, - EndItems.GOLDEN_HAMMER, - EndItems.DIAMOND_HAMMER, - EndItems.NETHERITE_HAMMER, - EndItems.TERMINITE_HAMMER, - EndItems.AETERNIUM_HAMMER - ) - )); + List hammers = Lists.newArrayList(); + EndItems.getModItems().forEach((item) -> { + if (item instanceof EndHammerItem) { + hammers.add(item); + } + }); + ToolManagerImpl.tag(HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(hammers)); } public static void addSurfaceBlock(Block block) {