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.Blocks;
import net.minecraft.block.MaterialColor;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.tag.BlockTags;
import net.minecraft.tag.ItemTags;
import net.minecraft.tag.Tag;
import ru.betterend.blocks.basis.BlockBark;
import ru.betterend.blocks.basis.BlockBarkStripable;
import ru.betterend.blocks.basis.BlockBarrel;
@ -46,11 +48,11 @@ public class WoodenMaterial {
public final Block fence;
public final Block gate;
public final Block button;
public final Block pressure_plate;
public final Block pressurePlate;
public final Block trapdoor;
public final Block door;
public final Block crafting_table;
public final Block craftingTable;
public final Block ladder;
public final Block sign;
@ -58,6 +60,9 @@ public class WoodenMaterial {
public final Block barrel;
public final Block shelf;
public final Tag.Identified<Block> logBlockTag;
public final Tag.Identified<Item> logItemTag;
public WoodenMaterial(String name, MaterialColor woodColor, 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));
gate = EndBlocks.registerBlock(name + "_gate", new BlockGate(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));
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));
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 + "_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 + "_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 + "_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 + "_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();
@ -104,7 +109,7 @@ public class WoodenMaterial {
// Item Tags //
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_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(trapdoor, BlockTags.WOODEN_TRAPDOORS, BlockTags.TRAPDOORS);
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) {

View file

@ -11,6 +11,7 @@ import net.minecraft.block.LeavesBlock;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.tag.BlockTags;
import net.minecraft.tag.ItemTags;
import net.minecraft.tag.Tag;
import net.minecraft.tag.Tag.Identified;
import net.minecraft.util.Identifier;
@ -26,20 +27,26 @@ import ru.betterend.util.TagHelper;
public class EndTags {
// Block Tags
public static final Tag.Identified<Block> END_GROUND = makeTag("end_ground");
public static final Tag.Identified<Block> GEN_TERRAIN = makeTag("gen_terrain");
public static final Tag.Identified<Block> END_GROUND = makeBlockTag("end_ground");
public static final Tag.Identified<Block> GEN_TERRAIN = makeBlockTag("gen_terrain");
public static final Tag.Identified<Block> BOOKSHELVES = makeCommonTag("bookshelves");
// Item Tags
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);
Tag<Block> tag = BlockTags.getTagGroup().getTag(id);
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);
Tag<Block> tag = BlockTags.getTagGroup().getTag(id);
return tag == null ? (Identified<Block>) TagRegistry.block(id) : (Identified<Block>) tag;