Procedural tags for logs

This commit is contained in:
paulevsGitch 2020-11-17 11:31:03 +03:00
parent 9f2b1b50c4
commit 989ee0db6f
2 changed files with 28 additions and 11 deletions

View file

@ -5,9 +5,11 @@ import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.block.MaterialColor; import net.minecraft.block.MaterialColor;
import net.minecraft.item.Item;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.tag.BlockTags; import net.minecraft.tag.BlockTags;
import net.minecraft.tag.ItemTags; import net.minecraft.tag.ItemTags;
import net.minecraft.tag.Tag;
import ru.betterend.blocks.basis.BlockBark; import ru.betterend.blocks.basis.BlockBark;
import ru.betterend.blocks.basis.BlockBarkStripable; import ru.betterend.blocks.basis.BlockBarkStripable;
import ru.betterend.blocks.basis.BlockBarrel; import ru.betterend.blocks.basis.BlockBarrel;
@ -46,11 +48,11 @@ public class WoodenMaterial {
public final Block fence; public final Block fence;
public final Block gate; public final Block gate;
public final Block button; public final Block button;
public final Block pressure_plate; public final Block pressurePlate;
public final Block trapdoor; public final Block trapdoor;
public final Block door; public final Block door;
public final Block crafting_table; public final Block craftingTable;
public final Block ladder; public final Block ladder;
public final Block sign; public final Block sign;
@ -58,6 +60,9 @@ public class WoodenMaterial {
public final Block barrel; public final Block barrel;
public final Block shelf; public final Block shelf;
public final Tag.Identified<Block> logBlockTag;
public final Tag.Identified<Item> logItemTag;
public WoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) { public WoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) {
FabricBlockSettings materialPlanks = FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).materialColor(planksColor); FabricBlockSettings materialPlanks = FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).materialColor(planksColor);
@ -73,11 +78,11 @@ public class WoodenMaterial {
fence = EndBlocks.registerBlock(name + "_fence", new BlockFence(planks)); fence = EndBlocks.registerBlock(name + "_fence", new BlockFence(planks));
gate = EndBlocks.registerBlock(name + "_gate", new BlockGate(planks)); gate = EndBlocks.registerBlock(name + "_gate", new BlockGate(planks));
button = EndBlocks.registerBlock(name + "_button", new BlockWoodenButton(planks)); button = EndBlocks.registerBlock(name + "_button", new BlockWoodenButton(planks));
pressure_plate = EndBlocks.registerBlock(name + "_plate", new BlockPressurePlate(planks)); pressurePlate = EndBlocks.registerBlock(name + "_plate", new BlockPressurePlate(planks));
trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new BlockTrapdoor(planks)); trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new BlockTrapdoor(planks));
door = EndBlocks.registerBlock(name + "_door", new BlockDoor(planks)); door = EndBlocks.registerBlock(name + "_door", new BlockDoor(planks));
crafting_table = EndBlocks.registerBlock(name + "_crafting_table", new BlockCraftingTable(planks)); craftingTable = EndBlocks.registerBlock(name + "_crafting_table", new BlockCraftingTable(planks));
ladder = EndBlocks.registerBlock(name + "_ladder", new BlockLadder(planks)); ladder = EndBlocks.registerBlock(name + "_ladder", new BlockLadder(planks));
sign = EndBlocks.registerBlock(name + "_sign", new BlockSign(planks)); sign = EndBlocks.registerBlock(name + "_sign", new BlockSign(planks));
@ -92,10 +97,10 @@ public class WoodenMaterial {
GridRecipe.make(name + "_fence", fence).setOutputCount(3).setShape("#I#", "#I#").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_planks_fences").build(); GridRecipe.make(name + "_fence", fence).setOutputCount(3).setShape("#I#", "#I#").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_planks_fences").build();
GridRecipe.make(name + "_gate", gate).setShape("I#I", "I#I").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_planks_gates").build(); GridRecipe.make(name + "_gate", gate).setShape("I#I", "I#I").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_planks_gates").build();
GridRecipe.make(name + "_button", button).setList("#").addMaterial('#', planks).setGroup("end_planks_buttons").build(); GridRecipe.make(name + "_button", button).setList("#").addMaterial('#', planks).setGroup("end_planks_buttons").build();
GridRecipe.make(name + "_pressure_plate", pressure_plate).setShape("##").addMaterial('#', planks).setGroup("end_planks_plates").build(); GridRecipe.make(name + "_pressure_plate", pressurePlate).setShape("##").addMaterial('#', planks).setGroup("end_planks_plates").build();
GridRecipe.make(name + "_trapdoor", trapdoor).setOutputCount(2).setShape("###", "###").addMaterial('#', planks).setGroup("end_trapdoors").build(); GridRecipe.make(name + "_trapdoor", trapdoor).setOutputCount(2).setShape("###", "###").addMaterial('#', planks).setGroup("end_trapdoors").build();
GridRecipe.make(name + "_door", door).setOutputCount(3).setShape("##", "##", "##").addMaterial('#', planks).setGroup("end_doors").build(); GridRecipe.make(name + "_door", door).setOutputCount(3).setShape("##", "##", "##").addMaterial('#', planks).setGroup("end_doors").build();
GridRecipe.make(name + "_crafting_table", crafting_table).setShape("##", "##").addMaterial('#', planks).setGroup("end_tables").build(); GridRecipe.make(name + "_crafting_table", craftingTable).setShape("##", "##").addMaterial('#', planks).setGroup("end_tables").build();
GridRecipe.make(name + "_ladder", ladder).setOutputCount(3).setShape("I I", "I#I", "I I").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_ladders").build(); GridRecipe.make(name + "_ladder", ladder).setOutputCount(3).setShape("I I", "I#I", "I I").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_ladders").build();
GridRecipe.make(name + "_sign", sign).setOutputCount(3).setShape("###", "###", " I ").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_signs").build(); GridRecipe.make(name + "_sign", sign).setOutputCount(3).setShape("###", "###", " I ").addMaterial('#', planks).addMaterial('I', Items.STICK).setGroup("end_signs").build();
GridRecipe.make(name + "_chest", chest).setShape("###", "# #", "###").addMaterial('#', planks).setGroup("end_chests").build(); GridRecipe.make(name + "_chest", chest).setShape("###", "# #", "###").addMaterial('#', planks).setGroup("end_chests").build();
@ -104,7 +109,7 @@ public class WoodenMaterial {
// Item Tags // // Item Tags //
TagHelper.addTag(ItemTags.PLANKS, planks); TagHelper.addTag(ItemTags.PLANKS, planks);
TagHelper.addTag(ItemTags.WOODEN_PRESSURE_PLATES, pressure_plate); TagHelper.addTag(ItemTags.WOODEN_PRESSURE_PLATES, pressurePlate);
TagHelper.addTag(ItemTags.LOGS, log, bark, log_stripped, bark_stripped); TagHelper.addTag(ItemTags.LOGS, log, bark, log_stripped, bark_stripped);
TagHelper.addTag(ItemTags.LOGS_THAT_BURN, log, bark, log_stripped, bark_stripped); TagHelper.addTag(ItemTags.LOGS_THAT_BURN, log, bark, log_stripped, bark_stripped);
@ -128,6 +133,11 @@ public class WoodenMaterial {
TagHelper.addTags(stairs, BlockTags.WOODEN_STAIRS, BlockTags.STAIRS); TagHelper.addTags(stairs, BlockTags.WOODEN_STAIRS, BlockTags.STAIRS);
TagHelper.addTags(trapdoor, BlockTags.WOODEN_TRAPDOORS, BlockTags.TRAPDOORS); TagHelper.addTags(trapdoor, BlockTags.WOODEN_TRAPDOORS, BlockTags.TRAPDOORS);
TagHelper.addTag(EndTags.BOOKSHELVES, shelf); TagHelper.addTag(EndTags.BOOKSHELVES, shelf);
logBlockTag = EndTags.makeBlockTag(name + "_logs");
logItemTag = EndTags.makeItemTag(name + "_logs");
TagHelper.addTag(logBlockTag, log_stripped, bark_stripped, log, bark);
TagHelper.addTag(logItemTag, log_stripped, bark_stripped, log, bark);
} }
public boolean isTreeLog(Block block) { public boolean isTreeLog(Block block) {

View file

@ -11,6 +11,7 @@ import net.minecraft.block.LeavesBlock;
import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItem;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.tag.BlockTags; import net.minecraft.tag.BlockTags;
import net.minecraft.tag.ItemTags;
import net.minecraft.tag.Tag; import net.minecraft.tag.Tag;
import net.minecraft.tag.Tag.Identified; import net.minecraft.tag.Tag.Identified;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
@ -26,20 +27,26 @@ import ru.betterend.util.TagHelper;
public class EndTags { public class EndTags {
// Block Tags // Block Tags
public static final Tag.Identified<Block> END_GROUND = makeTag("end_ground"); public static final Tag.Identified<Block> END_GROUND = makeBlockTag("end_ground");
public static final Tag.Identified<Block> GEN_TERRAIN = makeTag("gen_terrain"); public static final Tag.Identified<Block> GEN_TERRAIN = makeBlockTag("gen_terrain");
public static final Tag.Identified<Block> BOOKSHELVES = makeCommonTag("bookshelves"); public static final Tag.Identified<Block> BOOKSHELVES = makeCommonTag("bookshelves");
// Item Tags // Item Tags
public final static Tag<Item> HAMMERS = registerFabricItemTag("hammers"); public final static Tag<Item> HAMMERS = registerFabricItemTag("hammers");
private static Tag.Identified<Block> makeTag(String name) { public static Tag.Identified<Block> makeBlockTag(String name) {
Identifier id = BetterEnd.makeID(name); Identifier id = BetterEnd.makeID(name);
Tag<Block> tag = BlockTags.getTagGroup().getTag(id); Tag<Block> tag = BlockTags.getTagGroup().getTag(id);
return tag == null ? (Identified<Block>) TagRegistry.block(id) : (Identified<Block>) tag; return tag == null ? (Identified<Block>) TagRegistry.block(id) : (Identified<Block>) tag;
} }
private static Tag.Identified<Block> makeCommonTag(String name) { public static Tag.Identified<Item> makeItemTag(String name) {
Identifier id = BetterEnd.makeID(name);
Tag<Item> tag = ItemTags.getTagGroup().getTag(id);
return tag == null ? (Identified<Item>) TagRegistry.item(id) : (Identified<Item>) tag;
}
public static Tag.Identified<Block> makeCommonTag(String name) {
Identifier id = new Identifier("c", name); Identifier id = new Identifier("c", name);
Tag<Block> tag = BlockTags.getTagGroup().getTag(id); Tag<Block> tag = BlockTags.getTagGroup().getTag(id);
return tag == null ? (Identified<Block>) TagRegistry.block(id) : (Identified<Block>) tag; return tag == null ? (Identified<Block>) TagRegistry.block(id) : (Identified<Block>) tag;