198 lines
No EOL
7.6 KiB
Java
198 lines
No EOL
7.6 KiB
Java
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);
|
|
}
|
|
} |