diff --git a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java index 1432772e..e83355bb 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java @@ -2,7 +2,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.material.MaterialColor; import ru.bclib.blocks.BaseAnvilBlock; -import ru.betterend.blocks.complex.MetalMaterial; +import ru.betterend.complexmaterials.MetalMaterial; public class EndAnvilBlock extends BaseAnvilBlock { protected MetalMaterial metalMaterial; diff --git a/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java b/src/main/java/ru/betterend/complexmaterials/ColoredMaterial.java similarity index 95% rename from src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java rename to src/main/java/ru/betterend/complexmaterials/ColoredMaterial.java index 5ed48952..70998ac1 100644 --- a/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/ColoredMaterial.java @@ -1,73 +1,73 @@ -package ru.betterend.blocks.complex; - -import com.google.common.collect.Maps; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.core.Registry; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.DyeItem; -import net.minecraft.world.level.ItemLike; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.material.MaterialColor; -import ru.bclib.recipes.GridRecipe; -import ru.bclib.util.BlocksHelper; -import ru.betterend.BetterEnd; -import ru.betterend.config.Configs; -import ru.betterend.registry.EndBlocks; - -import java.util.Map; -import java.util.function.Function; - -public class ColoredMaterial { - private static final Map DYES = Maps.newHashMap(); - private static final Map COLORS = Maps.newHashMap(); - private final Map colors = Maps.newHashMap(); - - public ColoredMaterial(Function constructor, Block source, boolean craftEight) { - this(constructor, source, COLORS, DYES, craftEight); - } - - public ColoredMaterial(Function constructor, Block source, Map colors, Map dyes, boolean craftEight) { - String id = Registry.BLOCK.getKey(source).getPath(); - colors.forEach((color, name) -> { - String blockName = id + "_" + name; - Block block = constructor.apply(FabricBlockSettings.copyOf(source) - .materialColor(MaterialColor.COLOR_BLACK)); - EndBlocks.registerBlock(blockName, block); - if (craftEight) { - GridRecipe.make(BetterEnd.MOD_ID, blockName, block) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(8) - .setShape("###", "#D#", "###") - .addMaterial('#', source) - .addMaterial('D', dyes.get(color)) - .build(); - } - else { - GridRecipe.make(BetterEnd.MOD_ID, blockName, block) - .checkConfig(Configs.RECIPE_CONFIG) - .setList("#D") - .addMaterial('#', source) - .addMaterial('D', dyes.get(color)) - .build(); - } - this.colors.put(color, block); - BlocksHelper.addBlockColor(block, color); - }); - } - - public Block getByColor(DyeColor color) { - return colors.get(color.getMaterialColor().col); - } - - public Block getByColor(int color) { - return colors.get(color); - } - - static { - for (DyeColor color : DyeColor.values()) { - int colorRGB = color.getMaterialColor().col; - COLORS.put(colorRGB, color.getName()); - DYES.put(colorRGB, DyeItem.byColor(color)); - } - } -} +package ru.betterend.complexmaterials; + +import com.google.common.collect.Maps; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.core.Registry; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.DyeItem; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.recipes.GridRecipe; +import ru.bclib.util.BlocksHelper; +import ru.betterend.BetterEnd; +import ru.betterend.config.Configs; +import ru.betterend.registry.EndBlocks; + +import java.util.Map; +import java.util.function.Function; + +public class ColoredMaterial { + private static final Map DYES = Maps.newHashMap(); + private static final Map COLORS = Maps.newHashMap(); + private final Map colors = Maps.newHashMap(); + + public ColoredMaterial(Function constructor, Block source, boolean craftEight) { + this(constructor, source, COLORS, DYES, craftEight); + } + + public ColoredMaterial(Function constructor, Block source, Map colors, Map dyes, boolean craftEight) { + String id = Registry.BLOCK.getKey(source).getPath(); + colors.forEach((color, name) -> { + String blockName = id + "_" + name; + Block block = constructor.apply(FabricBlockSettings.copyOf(source) + .materialColor(MaterialColor.COLOR_BLACK)); + EndBlocks.registerBlock(blockName, block); + if (craftEight) { + GridRecipe.make(BetterEnd.MOD_ID, blockName, block) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(8) + .setShape("###", "#D#", "###") + .addMaterial('#', source) + .addMaterial('D', dyes.get(color)) + .build(); + } + else { + GridRecipe.make(BetterEnd.MOD_ID, blockName, block) + .checkConfig(Configs.RECIPE_CONFIG) + .setList("#D") + .addMaterial('#', source) + .addMaterial('D', dyes.get(color)) + .build(); + } + this.colors.put(color, block); + BlocksHelper.addBlockColor(block, color); + }); + } + + public Block getByColor(DyeColor color) { + return colors.get(color.getMaterialColor().col); + } + + public Block getByColor(int color) { + return colors.get(color); + } + + static { + for (DyeColor color : DyeColor.values()) { + int colorRGB = color.getMaterialColor().col; + COLORS.put(colorRGB, color.getName()); + DYES.put(colorRGB, DyeItem.byColor(color)); + } + } +} diff --git a/src/main/java/ru/betterend/blocks/complex/CrystalSubblocksMaterial.java b/src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java similarity index 96% rename from src/main/java/ru/betterend/blocks/complex/CrystalSubblocksMaterial.java rename to src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java index 3d96b865..1582a268 100644 --- a/src/main/java/ru/betterend/blocks/complex/CrystalSubblocksMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java @@ -1,133 +1,133 @@ -package ru.betterend.blocks.complex; - -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.world.level.block.Block; -import ru.bclib.api.TagAPI; -import ru.bclib.blocks.BaseSlabBlock; -import ru.bclib.blocks.BaseStairsBlock; -import ru.bclib.blocks.BaseWallBlock; -import ru.bclib.recipes.GridRecipe; -import ru.betterend.BetterEnd; -import ru.betterend.blocks.EndPedestal; -import ru.betterend.blocks.basis.LitBaseBlock; -import ru.betterend.blocks.basis.LitPillarBlock; -import ru.betterend.config.Configs; -import ru.betterend.recipe.CraftingRecipes; -import ru.betterend.registry.EndBlocks; - -public class CrystalSubblocksMaterial { - public final Block polished; - public final Block tiles; - public final Block pillar; - public final Block stairs; - public final Block slab; - public final Block wall; - public final Block pedestal; - public final Block bricks; - public final Block brick_stairs; - public final Block brick_slab; - public final Block brick_wall; - - public CrystalSubblocksMaterial(String name, Block source) { - FabricBlockSettings material = FabricBlockSettings.copyOf(source); - polished = EndBlocks.registerBlock(name + "_polished", new LitBaseBlock(material)); - tiles = EndBlocks.registerBlock(name + "_tiles", new LitBaseBlock(material)); - pillar = EndBlocks.registerBlock(name + "_pillar", new LitPillarBlock(material)); - stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(source)); - slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(source)); - wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(source)); - pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(source)); - bricks = EndBlocks.registerBlock(name + "_bricks", new LitBaseBlock(material)); - brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks)); - brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks)); - brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks)); - - // Recipes // - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks", bricks) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', source) - .setGroup("end_bricks") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_polished", polished) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', bricks) - .setGroup("end_tile") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_tiles", tiles) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', polished) - .setGroup("end_small_tile") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_pillar", pillar) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("#", "#") - .addMaterial('#', slab) - .setGroup("end_pillar") - .build(); - - GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("# ", "## ", "###") - .addMaterial('#', source) - .setGroup("end_stone_stairs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###") - .addMaterial('#', source) - .setGroup("end_stone_slabs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brick_stairs) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("# ", "## ", "###") - .addMaterial('#', bricks) - .setGroup("end_stone_stairs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brick_slab) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###") - .addMaterial('#', bricks) - .setGroup("end_stone_slabs") - .build(); - - GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###", "###") - .addMaterial('#', source) - .setGroup("end_wall") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brick_wall) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###", "###") - .addMaterial('#', bricks) - .setGroup("end_wall") - .build(); - - CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); - - // Item Tags // - TagAPI.addTag(ItemTags.SLABS, slab, brick_slab); - TagAPI.addTag(ItemTags.STONE_BRICKS, bricks); - TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, source); - TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, source); - - // Block Tags // - TagAPI.addTag(BlockTags.STONE_BRICKS, bricks); - TagAPI.addTag(BlockTags.WALLS, wall, brick_wall); - TagAPI.addTag(BlockTags.SLABS, slab, brick_slab); - } +package ru.betterend.complexmaterials; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.level.block.Block; +import ru.bclib.api.TagAPI; +import ru.bclib.blocks.BaseSlabBlock; +import ru.bclib.blocks.BaseStairsBlock; +import ru.bclib.blocks.BaseWallBlock; +import ru.bclib.recipes.GridRecipe; +import ru.betterend.BetterEnd; +import ru.betterend.blocks.EndPedestal; +import ru.betterend.blocks.basis.LitBaseBlock; +import ru.betterend.blocks.basis.LitPillarBlock; +import ru.betterend.config.Configs; +import ru.betterend.recipe.CraftingRecipes; +import ru.betterend.registry.EndBlocks; + +public class CrystalSubblocksMaterial { + public final Block polished; + public final Block tiles; + public final Block pillar; + public final Block stairs; + public final Block slab; + public final Block wall; + public final Block pedestal; + public final Block bricks; + public final Block brick_stairs; + public final Block brick_slab; + public final Block brick_wall; + + public CrystalSubblocksMaterial(String name, Block source) { + FabricBlockSettings material = FabricBlockSettings.copyOf(source); + polished = EndBlocks.registerBlock(name + "_polished", new LitBaseBlock(material)); + tiles = EndBlocks.registerBlock(name + "_tiles", new LitBaseBlock(material)); + pillar = EndBlocks.registerBlock(name + "_pillar", new LitPillarBlock(material)); + stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(source)); + slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(source)); + wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(source)); + pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(source)); + bricks = EndBlocks.registerBlock(name + "_bricks", new LitBaseBlock(material)); + brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks)); + brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks)); + brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks)); + + // Recipes // + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks", bricks) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', source) + .setGroup("end_bricks") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_polished", polished) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', bricks) + .setGroup("end_tile") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_tiles", tiles) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', polished) + .setGroup("end_small_tile") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_pillar", pillar) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("#", "#") + .addMaterial('#', slab) + .setGroup("end_pillar") + .build(); + + GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("# ", "## ", "###") + .addMaterial('#', source) + .setGroup("end_stone_stairs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###") + .addMaterial('#', source) + .setGroup("end_stone_slabs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brick_stairs) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("# ", "## ", "###") + .addMaterial('#', bricks) + .setGroup("end_stone_stairs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brick_slab) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###") + .addMaterial('#', bricks) + .setGroup("end_stone_slabs") + .build(); + + GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###", "###") + .addMaterial('#', source) + .setGroup("end_wall") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brick_wall) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###", "###") + .addMaterial('#', bricks) + .setGroup("end_wall") + .build(); + + CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); + + // Item Tags // + TagAPI.addTag(ItemTags.SLABS, slab, brick_slab); + TagAPI.addTag(ItemTags.STONE_BRICKS, bricks); + TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, source); + TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, source); + + // Block Tags // + TagAPI.addTag(BlockTags.STONE_BRICKS, bricks); + TagAPI.addTag(BlockTags.WALLS, wall, brick_wall); + TagAPI.addTag(BlockTags.SLABS, slab, brick_slab); + } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/blocks/complex/EndWoodenMaterial.java b/src/main/java/ru/betterend/complexmaterials/EndWoodenComplexMaterial.java similarity index 64% rename from src/main/java/ru/betterend/blocks/complex/EndWoodenMaterial.java rename to src/main/java/ru/betterend/complexmaterials/EndWoodenComplexMaterial.java index a3d467bb..7b7fe265 100644 --- a/src/main/java/ru/betterend/blocks/complex/EndWoodenMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/EndWoodenComplexMaterial.java @@ -1,24 +1,24 @@ -package ru.betterend.blocks.complex; +package ru.betterend.complexmaterials; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; -import ru.bclib.complexmaterials.WoodenMaterial; +import ru.bclib.complexmaterials.WoodenComplexMaterial; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; -public class EndWoodenMaterial extends WoodenMaterial { +public class EndWoodenComplexMaterial extends WoodenComplexMaterial { private Block bark; private Block log; - public EndWoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) { + public EndWoodenComplexMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) { super(BetterEnd.MOD_ID, name, woodColor, planksColor); } - public EndWoodenMaterial init() { - return (EndWoodenMaterial) super.init(EndBlocks.getBlockRegistry(), EndItems.getItemRegistry(), Configs.RECIPE_CONFIG); + public EndWoodenComplexMaterial init() { + return (EndWoodenComplexMaterial) super.init(EndBlocks.getBlockRegistry(), EndItems.getItemRegistry(), Configs.RECIPE_CONFIG); } public boolean isTreeLog(Block block) { diff --git a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java b/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java similarity index 97% rename from src/main/java/ru/betterend/blocks/complex/MetalMaterial.java rename to src/main/java/ru/betterend/complexmaterials/MetalMaterial.java index 66163b83..ae7ec0dd 100644 --- a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java @@ -1,493 +1,493 @@ -package ru.betterend.blocks.complex; - -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag; -import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.item.ArmorMaterial; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Item.Properties; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.Tier; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MaterialColor; -import ru.bclib.api.TagAPI; -import ru.bclib.blocks.BaseBlock; -import ru.bclib.blocks.BaseChainBlock; -import ru.bclib.blocks.BaseDoorBlock; -import ru.bclib.blocks.BaseMetalBarsBlock; -import ru.bclib.blocks.BaseOreBlock; -import ru.bclib.blocks.BaseSlabBlock; -import ru.bclib.blocks.BaseStairsBlock; -import ru.bclib.blocks.BaseTrapdoorBlock; -import ru.bclib.blocks.WoodenPressurePlateBlock; -import ru.bclib.items.ModelProviderItem; -import ru.bclib.items.tool.BaseAxeItem; -import ru.bclib.items.tool.BaseHoeItem; -import ru.bclib.items.tool.BaseShovelItem; -import ru.bclib.items.tool.BaseSwordItem; -import ru.bclib.recipes.FurnaceRecipe; -import ru.bclib.recipes.GridRecipe; -import ru.bclib.recipes.SmithingTableRecipe; -import ru.betterend.BetterEnd; -import ru.betterend.blocks.BulbVineLanternBlock; -import ru.betterend.blocks.BulbVineLanternColoredBlock; -import ru.betterend.blocks.ChandelierBlock; -import ru.betterend.blocks.basis.EndAnvilBlock; -import ru.betterend.config.Configs; -import ru.betterend.item.EndArmorItem; -import ru.betterend.item.tool.EndHammerItem; -import ru.betterend.item.tool.EndPickaxe; -import ru.betterend.recipe.builders.AlloyingRecipe; -import ru.betterend.recipe.builders.AnvilRecipe; -import ru.betterend.registry.EndBlocks; -import ru.betterend.registry.EndItems; - -public class MetalMaterial { - public final Block ore; - public final Block block; - public final Block tile; - public final Block bars; - public final Block pressurePlate; - public final Block door; - public final Block trapdoor; - public final Block chain; - public final Block stairs; - public final Block slab; - - public final Block chandelier; - public final Block bulb_lantern; - public final ColoredMaterial bulb_lantern_colored; - - public final Block anvilBlock; - - public final Item rawOre; - public final Item nugget; - public final Item ingot; - - public final Item shovelHead; - public final Item pickaxeHead; - public final Item axeHead; - public final Item hoeHead; - public final Item swordBlade; - public final Item swordHandle; - - public final Item shovel; - public final Item sword; - public final Item pickaxe; - public final Item axe; - public final Item hoe; - public final Item hammer; - - public final Item forgedPlate; - public final Item helmet; - public final Item chestplate; - public final Item leggings; - public final Item boots; - - public final Tag.Named alloyingOre; - - public static MetalMaterial makeNormal(String name, MaterialColor color, Tier material, ArmorMaterial armor) { - return new MetalMaterial( - name, - true, - FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color), - EndItems.makeEndItemSettings(), - material, - armor - ); - } - - public static MetalMaterial makeNormal(String name, MaterialColor color, float hardness, float resistance, Tier material, ArmorMaterial armor) { - return new MetalMaterial( - name, - true, - FabricBlockSettings.copyOf(Blocks.IRON_BLOCK) - .materialColor(color) - .hardness(hardness) - .resistance(resistance), - EndItems.makeEndItemSettings(), - material, - armor - ); - } - - public static MetalMaterial makeOreless(String name, MaterialColor color, Tier material, ArmorMaterial armor) { - return new MetalMaterial( - name, - false, - FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color), - EndItems.makeEndItemSettings(), - material, - armor - ); - } - - public static MetalMaterial makeOreless(String name, MaterialColor color, float hardness, float resistance, Tier material, ArmorMaterial armor) { - return new MetalMaterial( - name, - false, - FabricBlockSettings.copyOf(Blocks.IRON_BLOCK) - .materialColor(color) - .hardness(hardness) - .resistance(resistance), - EndItems.makeEndItemSettings(), - material, - armor - ); - } - - private MetalMaterial(String name, boolean hasOre, FabricBlockSettings settings, Properties itemSettings, Tier material, ArmorMaterial armor) { - BlockBehaviour.Properties lanternProperties = FabricBlockSettings.copyOf(settings) - .hardness(1) - .resistance(1) - .luminance(15) - .sound(SoundType.LANTERN); - final int level = material.getLevel(); - - rawOre = hasOre ? EndItems.registerEndItem(name + "_raw", new ModelProviderItem(itemSettings)) : null; - ore = hasOre ? EndBlocks.registerBlock(name + "_ore", new BaseOreBlock(rawOre, 1, 3, 1)) : null; - alloyingOre = hasOre ? TagAPI.makeItemTag(BetterEnd.MOD_ID, name + "_alloying") : null; - if (hasOre) { - TagAPI.addTag(alloyingOre, ore, rawOre); - } - - block = EndBlocks.registerBlock(name + "_block", new BaseBlock(settings)); - tile = EndBlocks.registerBlock(name + "_tile", new BaseBlock(settings)); - stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(tile)); - slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(tile)); - door = EndBlocks.registerBlock(name + "_door", new BaseDoorBlock(block)); - trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new BaseTrapdoorBlock(block)); - bars = EndBlocks.registerBlock(name + "_bars", new BaseMetalBarsBlock(block)); - chain = EndBlocks.registerBlock(name + "_chain", new BaseChainBlock(block.defaultMaterialColor())); - pressurePlate = EndBlocks.registerBlock(name + "_plate", new WoodenPressurePlateBlock(block)); - - chandelier = EndBlocks.registerBlock(name + "_chandelier", new ChandelierBlock(block)); - bulb_lantern = EndBlocks.registerBlock(name + "_bulb_lantern", new BulbVineLanternBlock(lanternProperties)); - bulb_lantern_colored = new ColoredMaterial(BulbVineLanternColoredBlock::new, bulb_lantern, false); - - nugget = EndItems.registerEndItem(name + "_nugget", new ModelProviderItem(itemSettings)); - ingot = EndItems.registerEndItem(name + "_ingot", new ModelProviderItem(itemSettings)); - - shovelHead = EndItems.registerEndItem(name + "_shovel_head"); - pickaxeHead = EndItems.registerEndItem(name + "_pickaxe_head"); - axeHead = EndItems.registerEndItem(name + "_axe_head"); - hoeHead = EndItems.registerEndItem(name + "_hoe_head"); - swordBlade = EndItems.registerEndItem(name + "_sword_blade"); - swordHandle = EndItems.registerEndItem(name + "_sword_handle"); - - shovel = EndItems.registerEndTool(name + "_shovel", new BaseShovelItem(material, 1.5F, -3.0F, itemSettings)); - sword = EndItems.registerEndTool(name + "_sword", new BaseSwordItem(material, 3, -2.4F, itemSettings)); - pickaxe = EndItems.registerEndTool(name + "_pickaxe", new EndPickaxe(material, 1, -2.8F, itemSettings)); - axe = EndItems.registerEndTool(name + "_axe", new BaseAxeItem(material, 6.0F, -3.0F, itemSettings)); - hoe = EndItems.registerEndTool(name + "_hoe", new BaseHoeItem(material, -3, 0.0F, itemSettings)); - hammer = EndItems.registerEndTool( - name + "_hammer", - new EndHammerItem(material, 5.0F, -3.2F, 0.3D, itemSettings) - ); - - forgedPlate = EndItems.registerEndItem(name + "_forged_plate"); - helmet = EndItems.registerEndItem(name + "_helmet", new EndArmorItem(armor, EquipmentSlot.HEAD, itemSettings)); - chestplate = EndItems.registerEndItem( - name + "_chestplate", - new EndArmorItem(armor, EquipmentSlot.CHEST, itemSettings) - ); - leggings = EndItems.registerEndItem( - name + "_leggings", - new EndArmorItem(armor, EquipmentSlot.LEGS, itemSettings) - ); - boots = EndItems.registerEndItem(name + "_boots", new EndArmorItem(armor, EquipmentSlot.FEET, itemSettings)); - - anvilBlock = EndBlocks.registerBlock( - name + "_anvil", - new EndAnvilBlock(this, block.defaultMaterialColor(), level) - ); - - if (hasOre) { - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_ingot_furnace_ore", ore, ingot) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_ingot") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_ingot_furnace_raw", rawOre, ingot) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_ingot") - .buildWithBlasting(); - AlloyingRecipe.Builder.create(name + "_ingot_alloy") - .setInput(alloyingOre, alloyingOre) - .setOutput(ingot, 3) - .setExpiriense(2.1F) - .build(); - } - - // Basic recipes - GridRecipe.make(BetterEnd.MOD_ID, name + "_ingot_from_nuggets", ingot) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("###", "###", "###") - .addMaterial('#', nugget) - .setGroup("end_metal_ingots_nug") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_nuggets_from_ingot", nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(9) - .setList("#") - .addMaterial('#', ingot) - .setGroup("end_metal_nuggets_ing") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_block", block) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("###", "###", "###") - .addMaterial('#', ingot) - .setGroup("end_metal_blocks") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_ingot_from_block", ingot) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(9) - .setList("#") - .addMaterial('#', block) - .setGroup("end_metal_ingots") - .build(); - - // Block recipes - GridRecipe.make(BetterEnd.MOD_ID, name + "_tile", tile) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', block) - .setGroup("end_metal_tiles") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bars", bars) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(16) - .setShape("###", "###") - .addMaterial('#', ingot) - .setGroup("end_metal_bars") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("##") - .addMaterial('#', ingot) - .setGroup("end_metal_plates") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_door", door) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(3) - .setShape("##", "##", "##") - .addMaterial('#', ingot) - .setGroup("end_metal_doors") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_trapdoor", trapdoor) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("##", "##") - .addMaterial('#', ingot) - .setGroup("end_metal_trapdoors") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("# ", "## ", "###") - .addMaterial('#', block, tile) - .setGroup("end_metal_stairs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###") - .addMaterial('#', block, tile) - .setGroup("end_metal_slabs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_chain", chain) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("N", "#", "N") - .addMaterial('#', ingot) - .addMaterial('N', nugget) - .setGroup("end_metal_chain") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_anvil", anvilBlock) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("###", " I ", "III") - .addMaterial('#', block, tile) - .addMaterial('I', ingot) - .setGroup("end_metal_anvil") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bulb_lantern", bulb_lantern) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("C", "I", "#") - .addMaterial('C', chain) - .addMaterial('I', ingot) - .addMaterial('#', EndItems.GLOWING_BULB) - .build(); - - GridRecipe.make(BetterEnd.MOD_ID, name + "_chandelier", chandelier) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("I#I", " # ") - .addMaterial('#', ingot) - .addMaterial('I', EndItems.LUMECORN_ROD) - .setGroup("end_metal_chandelier") - .build(); - - // Tools & armor into nuggets - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_axe_nugget", axe, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_hoe_nugget", hoe, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_pickaxe_nugget", pickaxe, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_sword_nugget", sword, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_hammer_nugget", hammer, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_helmet_nugget", helmet, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_chestplate_nugget", chestplate, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_leggings_nugget", leggings, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_boots_nugget", boots, nugget) - .checkConfig(Configs.RECIPE_CONFIG) - .setGroup("end_nugget") - .buildWithBlasting(); - - // Tool parts from ingots - AnvilRecipe.Builder.create(name + "_shovel_head") - .setInput(ingot) - .setOutput(shovelHead) - .setAnvilLevel(level) - .setToolLevel(level) - .setDamage(level) - .build(); - AnvilRecipe.Builder.create(name + "_pickaxe_head") - .setInput(ingot) - .setInputCount(3) - .setOutput(pickaxeHead) - .setAnvilLevel(level) - .setToolLevel(level) - .setDamage(level) - .build(); - AnvilRecipe.Builder.create(name + "_axe_head") - .setInput(ingot) - .setInputCount(3) - .setOutput(axeHead) - .setAnvilLevel(level) - .setToolLevel(level) - .setDamage(level) - .build(); - AnvilRecipe.Builder.create(name + "_hoe_head") - .setInput(ingot) - .setInputCount(2) - .setOutput(hoeHead) - .setAnvilLevel(level) - .setToolLevel(level) - .setDamage(level) - .build(); - AnvilRecipe.Builder.create(name + "_sword_blade") - .setInput(ingot) - .setOutput(swordBlade) - .setAnvilLevel(level) - .setToolLevel(level) - .setDamage(level) - .build(); - AnvilRecipe.Builder.create(name + "_forged_plate") - .setInput(ingot) - .setOutput(forgedPlate) - .setAnvilLevel(level) - .setToolLevel(level) - .setDamage(level) - .build(); - - // Tools from parts - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_hammer") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(hammer) - .setBase(block) - .setAddition(Items.STICK) - .build(); - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_axe") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(axe) - .setBase(axeHead) - .setAddition(Items.STICK) - .build(); - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_pickaxe") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(pickaxe) - .setBase(pickaxeHead) - .setAddition(Items.STICK) - .build(); - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_hoe") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(hoe) - .setBase(hoeHead) - .setAddition(Items.STICK) - .build(); - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_sword_handle") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(swordHandle) - .setBase(ingot) - .setAddition(Items.STICK) - .build(); - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_sword") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(sword) - .setBase(swordBlade) - .setAddition(swordHandle) - .build(); - SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_shovel") - .checkConfig(Configs.RECIPE_CONFIG) - .setResult(shovel) - .setBase(shovelHead) - .setAddition(Items.STICK) - .build(); - - // Armor crafting - GridRecipe.make(BetterEnd.MOD_ID, name + "_helmet", helmet) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("###", "# #") - .addMaterial('#', forgedPlate) - .setGroup("end_metal_helmets") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_chestplate", chestplate) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("# #", "###", "###") - .addMaterial('#', forgedPlate) - .setGroup("end_metal_chestplates") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_leggings", leggings) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("###", "# #", "# #") - .addMaterial('#', forgedPlate) - .setGroup("end_metal_leggings") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_boots", boots) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("# #", "# #") - .addMaterial('#', forgedPlate) - .setGroup("end_metal_boots") - .build(); - - TagAPI.addTag(BlockTags.ANVIL, anvilBlock); - TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, block); - TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, ingot); - TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, ore, bars); - TagAPI.addTag(TagAPI.ITEM_HAMMERS, hammer); - } +package ru.betterend.complexmaterials; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.Tag; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Item.Properties; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.Tier; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.api.TagAPI; +import ru.bclib.blocks.BaseBlock; +import ru.bclib.blocks.BaseChainBlock; +import ru.bclib.blocks.BaseDoorBlock; +import ru.bclib.blocks.BaseMetalBarsBlock; +import ru.bclib.blocks.BaseOreBlock; +import ru.bclib.blocks.BaseSlabBlock; +import ru.bclib.blocks.BaseStairsBlock; +import ru.bclib.blocks.BaseTrapdoorBlock; +import ru.bclib.blocks.WoodenPressurePlateBlock; +import ru.bclib.items.ModelProviderItem; +import ru.bclib.items.tool.BaseAxeItem; +import ru.bclib.items.tool.BaseHoeItem; +import ru.bclib.items.tool.BaseShovelItem; +import ru.bclib.items.tool.BaseSwordItem; +import ru.bclib.recipes.FurnaceRecipe; +import ru.bclib.recipes.GridRecipe; +import ru.bclib.recipes.SmithingTableRecipe; +import ru.betterend.BetterEnd; +import ru.betterend.blocks.BulbVineLanternBlock; +import ru.betterend.blocks.BulbVineLanternColoredBlock; +import ru.betterend.blocks.ChandelierBlock; +import ru.betterend.blocks.basis.EndAnvilBlock; +import ru.betterend.config.Configs; +import ru.betterend.item.EndArmorItem; +import ru.betterend.item.tool.EndHammerItem; +import ru.betterend.item.tool.EndPickaxe; +import ru.betterend.recipe.builders.AlloyingRecipe; +import ru.betterend.recipe.builders.AnvilRecipe; +import ru.betterend.registry.EndBlocks; +import ru.betterend.registry.EndItems; + +public class MetalMaterial { + public final Block ore; + public final Block block; + public final Block tile; + public final Block bars; + public final Block pressurePlate; + public final Block door; + public final Block trapdoor; + public final Block chain; + public final Block stairs; + public final Block slab; + + public final Block chandelier; + public final Block bulb_lantern; + public final ColoredMaterial bulb_lantern_colored; + + public final Block anvilBlock; + + public final Item rawOre; + public final Item nugget; + public final Item ingot; + + public final Item shovelHead; + public final Item pickaxeHead; + public final Item axeHead; + public final Item hoeHead; + public final Item swordBlade; + public final Item swordHandle; + + public final Item shovel; + public final Item sword; + public final Item pickaxe; + public final Item axe; + public final Item hoe; + public final Item hammer; + + public final Item forgedPlate; + public final Item helmet; + public final Item chestplate; + public final Item leggings; + public final Item boots; + + public final Tag.Named alloyingOre; + + public static MetalMaterial makeNormal(String name, MaterialColor color, Tier material, ArmorMaterial armor) { + return new MetalMaterial( + name, + true, + FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color), + EndItems.makeEndItemSettings(), + material, + armor + ); + } + + public static MetalMaterial makeNormal(String name, MaterialColor color, float hardness, float resistance, Tier material, ArmorMaterial armor) { + return new MetalMaterial( + name, + true, + FabricBlockSettings.copyOf(Blocks.IRON_BLOCK) + .materialColor(color) + .hardness(hardness) + .resistance(resistance), + EndItems.makeEndItemSettings(), + material, + armor + ); + } + + public static MetalMaterial makeOreless(String name, MaterialColor color, Tier material, ArmorMaterial armor) { + return new MetalMaterial( + name, + false, + FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color), + EndItems.makeEndItemSettings(), + material, + armor + ); + } + + public static MetalMaterial makeOreless(String name, MaterialColor color, float hardness, float resistance, Tier material, ArmorMaterial armor) { + return new MetalMaterial( + name, + false, + FabricBlockSettings.copyOf(Blocks.IRON_BLOCK) + .materialColor(color) + .hardness(hardness) + .resistance(resistance), + EndItems.makeEndItemSettings(), + material, + armor + ); + } + + private MetalMaterial(String name, boolean hasOre, FabricBlockSettings settings, Properties itemSettings, Tier material, ArmorMaterial armor) { + BlockBehaviour.Properties lanternProperties = FabricBlockSettings.copyOf(settings) + .hardness(1) + .resistance(1) + .luminance(15) + .sound(SoundType.LANTERN); + final int level = material.getLevel(); + + rawOre = hasOre ? EndItems.registerEndItem(name + "_raw", new ModelProviderItem(itemSettings)) : null; + ore = hasOre ? EndBlocks.registerBlock(name + "_ore", new BaseOreBlock(rawOre, 1, 3, 1)) : null; + alloyingOre = hasOre ? TagAPI.makeItemTag(BetterEnd.MOD_ID, name + "_alloying") : null; + if (hasOre) { + TagAPI.addTag(alloyingOre, ore, rawOre); + } + + block = EndBlocks.registerBlock(name + "_block", new BaseBlock(settings)); + tile = EndBlocks.registerBlock(name + "_tile", new BaseBlock(settings)); + stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(tile)); + slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(tile)); + door = EndBlocks.registerBlock(name + "_door", new BaseDoorBlock(block)); + trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new BaseTrapdoorBlock(block)); + bars = EndBlocks.registerBlock(name + "_bars", new BaseMetalBarsBlock(block)); + chain = EndBlocks.registerBlock(name + "_chain", new BaseChainBlock(block.defaultMaterialColor())); + pressurePlate = EndBlocks.registerBlock(name + "_plate", new WoodenPressurePlateBlock(block)); + + chandelier = EndBlocks.registerBlock(name + "_chandelier", new ChandelierBlock(block)); + bulb_lantern = EndBlocks.registerBlock(name + "_bulb_lantern", new BulbVineLanternBlock(lanternProperties)); + bulb_lantern_colored = new ColoredMaterial(BulbVineLanternColoredBlock::new, bulb_lantern, false); + + nugget = EndItems.registerEndItem(name + "_nugget", new ModelProviderItem(itemSettings)); + ingot = EndItems.registerEndItem(name + "_ingot", new ModelProviderItem(itemSettings)); + + shovelHead = EndItems.registerEndItem(name + "_shovel_head"); + pickaxeHead = EndItems.registerEndItem(name + "_pickaxe_head"); + axeHead = EndItems.registerEndItem(name + "_axe_head"); + hoeHead = EndItems.registerEndItem(name + "_hoe_head"); + swordBlade = EndItems.registerEndItem(name + "_sword_blade"); + swordHandle = EndItems.registerEndItem(name + "_sword_handle"); + + shovel = EndItems.registerEndTool(name + "_shovel", new BaseShovelItem(material, 1.5F, -3.0F, itemSettings)); + sword = EndItems.registerEndTool(name + "_sword", new BaseSwordItem(material, 3, -2.4F, itemSettings)); + pickaxe = EndItems.registerEndTool(name + "_pickaxe", new EndPickaxe(material, 1, -2.8F, itemSettings)); + axe = EndItems.registerEndTool(name + "_axe", new BaseAxeItem(material, 6.0F, -3.0F, itemSettings)); + hoe = EndItems.registerEndTool(name + "_hoe", new BaseHoeItem(material, -3, 0.0F, itemSettings)); + hammer = EndItems.registerEndTool( + name + "_hammer", + new EndHammerItem(material, 5.0F, -3.2F, 0.3D, itemSettings) + ); + + forgedPlate = EndItems.registerEndItem(name + "_forged_plate"); + helmet = EndItems.registerEndItem(name + "_helmet", new EndArmorItem(armor, EquipmentSlot.HEAD, itemSettings)); + chestplate = EndItems.registerEndItem( + name + "_chestplate", + new EndArmorItem(armor, EquipmentSlot.CHEST, itemSettings) + ); + leggings = EndItems.registerEndItem( + name + "_leggings", + new EndArmorItem(armor, EquipmentSlot.LEGS, itemSettings) + ); + boots = EndItems.registerEndItem(name + "_boots", new EndArmorItem(armor, EquipmentSlot.FEET, itemSettings)); + + anvilBlock = EndBlocks.registerBlock( + name + "_anvil", + new EndAnvilBlock(this, block.defaultMaterialColor(), level) + ); + + if (hasOre) { + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_ingot_furnace_ore", ore, ingot) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_ingot") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_ingot_furnace_raw", rawOre, ingot) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_ingot") + .buildWithBlasting(); + AlloyingRecipe.Builder.create(name + "_ingot_alloy") + .setInput(alloyingOre, alloyingOre) + .setOutput(ingot, 3) + .setExpiriense(2.1F) + .build(); + } + + // Basic recipes + GridRecipe.make(BetterEnd.MOD_ID, name + "_ingot_from_nuggets", ingot) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("###", "###", "###") + .addMaterial('#', nugget) + .setGroup("end_metal_ingots_nug") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_nuggets_from_ingot", nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(9) + .setList("#") + .addMaterial('#', ingot) + .setGroup("end_metal_nuggets_ing") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_block", block) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("###", "###", "###") + .addMaterial('#', ingot) + .setGroup("end_metal_blocks") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_ingot_from_block", ingot) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(9) + .setList("#") + .addMaterial('#', block) + .setGroup("end_metal_ingots") + .build(); + + // Block recipes + GridRecipe.make(BetterEnd.MOD_ID, name + "_tile", tile) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', block) + .setGroup("end_metal_tiles") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bars", bars) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(16) + .setShape("###", "###") + .addMaterial('#', ingot) + .setGroup("end_metal_bars") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("##") + .addMaterial('#', ingot) + .setGroup("end_metal_plates") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_door", door) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(3) + .setShape("##", "##", "##") + .addMaterial('#', ingot) + .setGroup("end_metal_doors") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_trapdoor", trapdoor) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("##", "##") + .addMaterial('#', ingot) + .setGroup("end_metal_trapdoors") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("# ", "## ", "###") + .addMaterial('#', block, tile) + .setGroup("end_metal_stairs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###") + .addMaterial('#', block, tile) + .setGroup("end_metal_slabs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_chain", chain) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("N", "#", "N") + .addMaterial('#', ingot) + .addMaterial('N', nugget) + .setGroup("end_metal_chain") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_anvil", anvilBlock) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("###", " I ", "III") + .addMaterial('#', block, tile) + .addMaterial('I', ingot) + .setGroup("end_metal_anvil") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bulb_lantern", bulb_lantern) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("C", "I", "#") + .addMaterial('C', chain) + .addMaterial('I', ingot) + .addMaterial('#', EndItems.GLOWING_BULB) + .build(); + + GridRecipe.make(BetterEnd.MOD_ID, name + "_chandelier", chandelier) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("I#I", " # ") + .addMaterial('#', ingot) + .addMaterial('I', EndItems.LUMECORN_ROD) + .setGroup("end_metal_chandelier") + .build(); + + // Tools & armor into nuggets + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_axe_nugget", axe, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_hoe_nugget", hoe, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_pickaxe_nugget", pickaxe, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_sword_nugget", sword, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_hammer_nugget", hammer, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_helmet_nugget", helmet, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_chestplate_nugget", chestplate, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_leggings_nugget", leggings, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_boots_nugget", boots, nugget) + .checkConfig(Configs.RECIPE_CONFIG) + .setGroup("end_nugget") + .buildWithBlasting(); + + // Tool parts from ingots + AnvilRecipe.Builder.create(name + "_shovel_head") + .setInput(ingot) + .setOutput(shovelHead) + .setAnvilLevel(level) + .setToolLevel(level) + .setDamage(level) + .build(); + AnvilRecipe.Builder.create(name + "_pickaxe_head") + .setInput(ingot) + .setInputCount(3) + .setOutput(pickaxeHead) + .setAnvilLevel(level) + .setToolLevel(level) + .setDamage(level) + .build(); + AnvilRecipe.Builder.create(name + "_axe_head") + .setInput(ingot) + .setInputCount(3) + .setOutput(axeHead) + .setAnvilLevel(level) + .setToolLevel(level) + .setDamage(level) + .build(); + AnvilRecipe.Builder.create(name + "_hoe_head") + .setInput(ingot) + .setInputCount(2) + .setOutput(hoeHead) + .setAnvilLevel(level) + .setToolLevel(level) + .setDamage(level) + .build(); + AnvilRecipe.Builder.create(name + "_sword_blade") + .setInput(ingot) + .setOutput(swordBlade) + .setAnvilLevel(level) + .setToolLevel(level) + .setDamage(level) + .build(); + AnvilRecipe.Builder.create(name + "_forged_plate") + .setInput(ingot) + .setOutput(forgedPlate) + .setAnvilLevel(level) + .setToolLevel(level) + .setDamage(level) + .build(); + + // Tools from parts + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_hammer") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(hammer) + .setBase(block) + .setAddition(Items.STICK) + .build(); + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_axe") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(axe) + .setBase(axeHead) + .setAddition(Items.STICK) + .build(); + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_pickaxe") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(pickaxe) + .setBase(pickaxeHead) + .setAddition(Items.STICK) + .build(); + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_hoe") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(hoe) + .setBase(hoeHead) + .setAddition(Items.STICK) + .build(); + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_sword_handle") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(swordHandle) + .setBase(ingot) + .setAddition(Items.STICK) + .build(); + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_sword") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(sword) + .setBase(swordBlade) + .setAddition(swordHandle) + .build(); + SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_shovel") + .checkConfig(Configs.RECIPE_CONFIG) + .setResult(shovel) + .setBase(shovelHead) + .setAddition(Items.STICK) + .build(); + + // Armor crafting + GridRecipe.make(BetterEnd.MOD_ID, name + "_helmet", helmet) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("###", "# #") + .addMaterial('#', forgedPlate) + .setGroup("end_metal_helmets") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_chestplate", chestplate) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("# #", "###", "###") + .addMaterial('#', forgedPlate) + .setGroup("end_metal_chestplates") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_leggings", leggings) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("###", "# #", "# #") + .addMaterial('#', forgedPlate) + .setGroup("end_metal_leggings") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_boots", boots) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("# #", "# #") + .addMaterial('#', forgedPlate) + .setGroup("end_metal_boots") + .build(); + + TagAPI.addTag(BlockTags.ANVIL, anvilBlock); + TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, block); + TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, ingot); + TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, ore, bars); + TagAPI.addTag(TagAPI.ITEM_HAMMERS, hammer); + } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java b/src/main/java/ru/betterend/complexmaterials/StoneMaterial.java similarity index 97% rename from src/main/java/ru/betterend/blocks/complex/StoneMaterial.java rename to src/main/java/ru/betterend/complexmaterials/StoneMaterial.java index a78ad1fe..9a129dbd 100644 --- a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/StoneMaterial.java @@ -1,198 +1,198 @@ -package ru.betterend.blocks.complex; - -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.material.MaterialColor; -import ru.bclib.api.TagAPI; -import ru.bclib.blocks.BaseBlock; -import ru.bclib.blocks.BaseFurnaceBlock; -import ru.bclib.blocks.BaseRotatedPillarBlock; -import ru.bclib.blocks.BaseSlabBlock; -import ru.bclib.blocks.BaseStairsBlock; -import ru.bclib.blocks.BaseStoneButtonBlock; -import ru.bclib.blocks.BaseWallBlock; -import ru.bclib.blocks.StonePressurePlateBlock; -import ru.bclib.recipes.GridRecipe; -import ru.betterend.BetterEnd; -import ru.betterend.blocks.EndPedestal; -import ru.betterend.blocks.FlowerPotBlock; -import ru.betterend.blocks.basis.StoneLanternBlock; -import ru.betterend.config.Configs; -import ru.betterend.recipe.CraftingRecipes; -import ru.betterend.registry.EndBlocks; -import ru.betterend.registry.EndItems; - -public class StoneMaterial { - public final Block stone; - - public final Block polished; - public final Block tiles; - public final Block pillar; - public final Block stairs; - public final Block slab; - public final Block wall; - public final Block button; - public final Block pressurePlate; - public final Block pedestal; - public final Block lantern; - - public final Block bricks; - public final Block brickStairs; - public final Block brickSlab; - public final Block brickWall; - public final Block furnace; - public final Block flowerPot; - - public StoneMaterial(String name, MaterialColor color) { - FabricBlockSettings material = FabricBlockSettings.copyOf(Blocks.END_STONE).materialColor(color); - - stone = EndBlocks.registerBlock(name, new BaseBlock(material)); - polished = EndBlocks.registerBlock(name + "_polished", new BaseBlock(material)); - tiles = EndBlocks.registerBlock(name + "_tiles", new BaseBlock(material)); - pillar = EndBlocks.registerBlock(name + "_pillar", new BaseRotatedPillarBlock(material)); - stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(stone)); - slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(stone)); - wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(stone)); - button = EndBlocks.registerBlock(name + "_button", new BaseStoneButtonBlock(stone)); - pressurePlate = EndBlocks.registerBlock(name + "_plate", new StonePressurePlateBlock(stone)); - pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(stone)); - lantern = EndBlocks.registerBlock(name + "_lantern", new StoneLanternBlock(stone)); - - bricks = EndBlocks.registerBlock(name + "_bricks", new BaseBlock(material)); - brickStairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks)); - brickSlab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks)); - brickWall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks)); - furnace = EndBlocks.registerBlock(name + "_furnace", new BaseFurnaceBlock(bricks)); - flowerPot = EndBlocks.registerBlock(name + "_flower_pot", new FlowerPotBlock(bricks)); - - // Recipes // - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks", bricks) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', stone) - .setGroup("end_bricks") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_polished", polished) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', bricks) - .setGroup("end_tile") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_tiles", tiles) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("##", "##") - .addMaterial('#', polished) - .setGroup("end_small_tile") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_pillar", pillar) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("#", "#") - .addMaterial('#', slab) - .setGroup("end_pillar") - .build(); - - GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("# ", "## ", "###") - .addMaterial('#', stone) - .setGroup("end_stone_stairs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###") - .addMaterial('#', stone) - .setGroup("end_stone_slabs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brickStairs) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(4) - .setShape("# ", "## ", "###") - .addMaterial('#', bricks) - .setGroup("end_stone_stairs") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brickSlab) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###") - .addMaterial('#', bricks) - .setGroup("end_stone_slabs") - .build(); - - GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###", "###") - .addMaterial('#', stone) - .setGroup("end_wall") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brickWall) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(6) - .setShape("###", "###") - .addMaterial('#', bricks) - .setGroup("end_wall") - .build(); - - GridRecipe.make(BetterEnd.MOD_ID, name + "_button", button) - .checkConfig(Configs.RECIPE_CONFIG) - .setList("#") - .addMaterial('#', stone) - .setGroup("end_stone_buttons") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("##") - .addMaterial('#', stone) - .setGroup("end_stone_plates") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_lantern", lantern) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("S", "#", "S") - .addMaterial('#', EndItems.CRYSTAL_SHARDS) - .addMaterial('S', slab, brickSlab) - .setGroup("end_stone_lanterns") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_furnace", furnace) - .checkConfig(Configs.RECIPE_CONFIG) - .setShape("###", "# #", "###") - .addMaterial('#', stone) - .setGroup("end_stone_ITEM_FURNACES") - .build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_flower_pot", flowerPot) - .checkConfig(Configs.RECIPE_CONFIG) - .setOutputCount(3) - .setShape("# #", " # ") - .addMaterial('#', bricks) - .setGroup("end_pots") - .build(); - - CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); - - // Item Tags // - TagAPI.addTag(ItemTags.SLABS, slab, brickSlab); - TagAPI.addTag(ItemTags.STONE_BRICKS, bricks); - TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, stone); - TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, stone); - TagAPI.addTag(TagAPI.ITEM_FURNACES, furnace); - - // Block Tags // - TagAPI.addTag(BlockTags.STONE_BRICKS, bricks); - TagAPI.addTag(BlockTags.WALLS, wall, brickWall); - TagAPI.addTag(BlockTags.SLABS, slab, brickSlab); - TagAPI.addTags(pressurePlate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES); - TagAPI.addTag(TagAPI.BLOCK_END_STONES, stone); - - TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, stone, stairs, slab, wall); - - TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, stone); - TagAPI.addTag(TagAPI.BLOCK_END_GROUND, stone); - } +package ru.betterend.complexmaterials; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.api.TagAPI; +import ru.bclib.blocks.BaseBlock; +import ru.bclib.blocks.BaseFurnaceBlock; +import ru.bclib.blocks.BaseRotatedPillarBlock; +import ru.bclib.blocks.BaseSlabBlock; +import ru.bclib.blocks.BaseStairsBlock; +import ru.bclib.blocks.BaseStoneButtonBlock; +import ru.bclib.blocks.BaseWallBlock; +import ru.bclib.blocks.StonePressurePlateBlock; +import ru.bclib.recipes.GridRecipe; +import ru.betterend.BetterEnd; +import ru.betterend.blocks.EndPedestal; +import ru.betterend.blocks.FlowerPotBlock; +import ru.betterend.blocks.basis.StoneLanternBlock; +import ru.betterend.config.Configs; +import ru.betterend.recipe.CraftingRecipes; +import ru.betterend.registry.EndBlocks; +import ru.betterend.registry.EndItems; + +public class StoneMaterial { + public final Block stone; + + public final Block polished; + public final Block tiles; + public final Block pillar; + public final Block stairs; + public final Block slab; + public final Block wall; + public final Block button; + public final Block pressurePlate; + public final Block pedestal; + public final Block lantern; + + public final Block bricks; + public final Block brickStairs; + public final Block brickSlab; + public final Block brickWall; + public final Block furnace; + public final Block flowerPot; + + public StoneMaterial(String name, MaterialColor color) { + FabricBlockSettings material = FabricBlockSettings.copyOf(Blocks.END_STONE).materialColor(color); + + stone = EndBlocks.registerBlock(name, new BaseBlock(material)); + polished = EndBlocks.registerBlock(name + "_polished", new BaseBlock(material)); + tiles = EndBlocks.registerBlock(name + "_tiles", new BaseBlock(material)); + pillar = EndBlocks.registerBlock(name + "_pillar", new BaseRotatedPillarBlock(material)); + stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(stone)); + slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(stone)); + wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(stone)); + button = EndBlocks.registerBlock(name + "_button", new BaseStoneButtonBlock(stone)); + pressurePlate = EndBlocks.registerBlock(name + "_plate", new StonePressurePlateBlock(stone)); + pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(stone)); + lantern = EndBlocks.registerBlock(name + "_lantern", new StoneLanternBlock(stone)); + + bricks = EndBlocks.registerBlock(name + "_bricks", new BaseBlock(material)); + brickStairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks)); + brickSlab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks)); + brickWall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks)); + furnace = EndBlocks.registerBlock(name + "_furnace", new BaseFurnaceBlock(bricks)); + flowerPot = EndBlocks.registerBlock(name + "_flower_pot", new FlowerPotBlock(bricks)); + + // Recipes // + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks", bricks) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', stone) + .setGroup("end_bricks") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_polished", polished) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', bricks) + .setGroup("end_tile") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_tiles", tiles) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("##", "##") + .addMaterial('#', polished) + .setGroup("end_small_tile") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_pillar", pillar) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("#", "#") + .addMaterial('#', slab) + .setGroup("end_pillar") + .build(); + + GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("# ", "## ", "###") + .addMaterial('#', stone) + .setGroup("end_stone_stairs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###") + .addMaterial('#', stone) + .setGroup("end_stone_slabs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brickStairs) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(4) + .setShape("# ", "## ", "###") + .addMaterial('#', bricks) + .setGroup("end_stone_stairs") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brickSlab) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###") + .addMaterial('#', bricks) + .setGroup("end_stone_slabs") + .build(); + + GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###", "###") + .addMaterial('#', stone) + .setGroup("end_wall") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brickWall) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(6) + .setShape("###", "###") + .addMaterial('#', bricks) + .setGroup("end_wall") + .build(); + + GridRecipe.make(BetterEnd.MOD_ID, name + "_button", button) + .checkConfig(Configs.RECIPE_CONFIG) + .setList("#") + .addMaterial('#', stone) + .setGroup("end_stone_buttons") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("##") + .addMaterial('#', stone) + .setGroup("end_stone_plates") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_lantern", lantern) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("S", "#", "S") + .addMaterial('#', EndItems.CRYSTAL_SHARDS) + .addMaterial('S', slab, brickSlab) + .setGroup("end_stone_lanterns") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_furnace", furnace) + .checkConfig(Configs.RECIPE_CONFIG) + .setShape("###", "# #", "###") + .addMaterial('#', stone) + .setGroup("end_stone_ITEM_FURNACES") + .build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_flower_pot", flowerPot) + .checkConfig(Configs.RECIPE_CONFIG) + .setOutputCount(3) + .setShape("# #", " # ") + .addMaterial('#', bricks) + .setGroup("end_pots") + .build(); + + CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); + + // Item Tags // + TagAPI.addTag(ItemTags.SLABS, slab, brickSlab); + TagAPI.addTag(ItemTags.STONE_BRICKS, bricks); + TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, stone); + TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, stone); + TagAPI.addTag(TagAPI.ITEM_FURNACES, furnace); + + // Block Tags // + TagAPI.addTag(BlockTags.STONE_BRICKS, bricks); + TagAPI.addTag(BlockTags.WALLS, wall, brickWall); + TagAPI.addTag(BlockTags.SLABS, slab, brickSlab); + TagAPI.addTags(pressurePlate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES); + TagAPI.addTag(TagAPI.BLOCK_END_STONES, stone); + + TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, stone, stairs, slab, wall); + + TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, stone); + TagAPI.addTag(TagAPI.BLOCK_END_GROUND, stone); + } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java index a2fa567d..c8f45267 100644 --- a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java +++ b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java @@ -5,7 +5,7 @@ import net.minecraft.world.level.ItemLike; import ru.bclib.integration.ModIntegration; import ru.bclib.util.ColorUtil; import ru.betterend.blocks.HydraluxPetalColoredBlock; -import ru.betterend.blocks.complex.ColoredMaterial; +import ru.betterend.complexmaterials.ColoredMaterial; import ru.betterend.registry.EndBlocks; import java.awt.Color; diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index f0ac9970..b5108bb0 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -134,11 +134,11 @@ import ru.betterend.blocks.basis.FurBlock; import ru.betterend.blocks.basis.PottableCropBlock; import ru.betterend.blocks.basis.PottableLeavesBlock; import ru.betterend.blocks.basis.StoneLanternBlock; -import ru.betterend.blocks.complex.ColoredMaterial; -import ru.betterend.blocks.complex.CrystalSubblocksMaterial; -import ru.betterend.blocks.complex.MetalMaterial; -import ru.betterend.blocks.complex.StoneMaterial; -import ru.betterend.blocks.complex.EndWoodenMaterial; +import ru.betterend.complexmaterials.ColoredMaterial; +import ru.betterend.complexmaterials.CrystalSubblocksMaterial; +import ru.betterend.complexmaterials.EndWoodenComplexMaterial; +import ru.betterend.complexmaterials.MetalMaterial; +import ru.betterend.complexmaterials.StoneMaterial; import ru.betterend.config.Configs; import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndToolMaterial; @@ -289,7 +289,7 @@ public class EndBlocks extends BlockRegistry { "mossy_glowshroom_fur", new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 16, true) ); - public static final EndWoodenMaterial MOSSY_GLOWSHROOM = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial MOSSY_GLOWSHROOM = new EndWoodenComplexMaterial( "mossy_glowshroom", MaterialColor.COLOR_GRAY, MaterialColor.WOOD @@ -303,7 +303,7 @@ public class EndBlocks extends BlockRegistry { "pythadendron_leaves", new PottableLeavesBlock(PYTHADENDRON_SAPLING, MaterialColor.COLOR_MAGENTA) ); - public static final EndWoodenMaterial PYTHADENDRON = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial PYTHADENDRON = new EndWoodenComplexMaterial( "pythadendron", MaterialColor.COLOR_MAGENTA, MaterialColor.COLOR_PURPLE @@ -313,7 +313,7 @@ public class EndBlocks extends BlockRegistry { public static final Block END_LOTUS_STEM = registerBlock("end_lotus_stem", new EndLotusStemBlock()); public static final Block END_LOTUS_LEAF = registerEndBlockOnly("end_lotus_leaf", new EndLotusLeafBlock()); public static final Block END_LOTUS_FLOWER = registerEndBlockOnly("end_lotus_flower", new EndLotusFlowerBlock()); - public static final EndWoodenMaterial END_LOTUS = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial END_LOTUS = new EndWoodenComplexMaterial( "end_lotus", MaterialColor.COLOR_LIGHT_BLUE, MaterialColor.COLOR_CYAN @@ -324,7 +324,7 @@ public class EndBlocks extends BlockRegistry { "lacugrove_leaves", new PottableLeavesBlock(LACUGROVE_SAPLING, MaterialColor.COLOR_CYAN) ); - public static final EndWoodenMaterial LACUGROVE = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial LACUGROVE = new EndWoodenComplexMaterial( "lacugrove", MaterialColor.COLOR_BROWN, MaterialColor.COLOR_YELLOW @@ -335,7 +335,7 @@ public class EndBlocks extends BlockRegistry { "dragon_tree_leaves", new PottableLeavesBlock(DRAGON_TREE_SAPLING, MaterialColor.COLOR_MAGENTA) ); - public static final EndWoodenMaterial DRAGON_TREE = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial DRAGON_TREE = new EndWoodenComplexMaterial( "dragon_tree", MaterialColor.COLOR_BLACK, MaterialColor.COLOR_MAGENTA @@ -351,7 +351,7 @@ public class EndBlocks extends BlockRegistry { "tenanea_outer_leaves", new FurBlock(TENANEA_SAPLING, 32) ); - public static final EndWoodenMaterial TENANEA = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial TENANEA = new EndWoodenComplexMaterial( "tenanea", MaterialColor.COLOR_BROWN, MaterialColor.COLOR_PINK @@ -359,7 +359,7 @@ public class EndBlocks extends BlockRegistry { public static final Block HELIX_TREE_SAPLING = registerBlock("helix_tree_sapling", new HelixTreeSaplingBlock()); public static final Block HELIX_TREE_LEAVES = registerBlock("helix_tree_leaves", new HelixTreeLeavesBlock()); - public static final EndWoodenMaterial HELIX_TREE = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial HELIX_TREE = new EndWoodenComplexMaterial( "helix_tree", MaterialColor.COLOR_GRAY, MaterialColor.COLOR_ORANGE @@ -381,7 +381,7 @@ public class EndBlocks extends BlockRegistry { "umbrella_tree_cluster_empty", new UmbrellaTreeClusterEmptyBlock() ); - public static final EndWoodenMaterial UMBRELLA_TREE = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial UMBRELLA_TREE = new EndWoodenComplexMaterial( "umbrella_tree", MaterialColor.COLOR_BLUE, MaterialColor.COLOR_GREEN @@ -391,7 +391,7 @@ public class EndBlocks extends BlockRegistry { "jellyshroom_cap_purple", new JellyshroomCapBlock(217, 142, 255, 164, 0, 255) ); - public static final EndWoodenMaterial JELLYSHROOM = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial JELLYSHROOM = new EndWoodenComplexMaterial( "jellyshroom", MaterialColor.COLOR_PURPLE, MaterialColor.COLOR_LIGHT_BLUE @@ -406,7 +406,7 @@ public class EndBlocks extends BlockRegistry { "lucernia_outer_leaves", new FurBlock(LUCERNIA_SAPLING, 32) ); - public static final EndWoodenMaterial LUCERNIA = new EndWoodenMaterial( + public static final EndWoodenComplexMaterial LUCERNIA = new EndWoodenComplexMaterial( "lucernia", MaterialColor.COLOR_ORANGE, MaterialColor.COLOR_ORANGE diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index accf1c8f..77016e88 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -18,7 +18,7 @@ import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.DefaultFeature; import ru.betterend.BetterEnd; -import ru.betterend.blocks.complex.StoneMaterial; +import ru.betterend.complexmaterials.StoneMaterial; import ru.betterend.world.features.BiomeIslandFeature; import ru.betterend.world.features.BlueVineFeature; import ru.betterend.world.features.CavePumpkinFeature;