This commit is contained in:
Frank 2021-10-18 19:38:31 +02:00
parent a52b18ba9b
commit 073b473840
2 changed files with 387 additions and 361 deletions

View file

@ -1,7 +1,12 @@
package ru.bclib.api; package ru.bclib.api;
import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.fabric.api.tag.TagRegistry;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
@ -18,10 +23,6 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import ru.bclib.BCLib; import ru.bclib.BCLib;
import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;
public class TagAPI { public class TagAPI {
private static final Map<ResourceLocation, Set<ResourceLocation>> TAGS_BLOCK = Maps.newConcurrentMap(); private static final Map<ResourceLocation, Set<ResourceLocation>> TAGS_BLOCK = Maps.newConcurrentMap();
private static final Map<ResourceLocation, Set<ResourceLocation>> TAGS_ITEM = Maps.newConcurrentMap(); private static final Map<ResourceLocation, Set<ResourceLocation>> TAGS_ITEM = Maps.newConcurrentMap();
@ -33,9 +34,14 @@ public class TagAPI {
public static final Tag.Named<Block> BLOCK_END_GROUND = makeBlockTag(BCLib.MOD_ID, "end_ground"); public static final Tag.Named<Block> BLOCK_END_GROUND = makeBlockTag(BCLib.MOD_ID, "end_ground");
public static final Tag.Named<Block> BLOCK_CHEST = makeCommonBlockTag("chest"); public static final Tag.Named<Block> BLOCK_CHEST = makeCommonBlockTag("chest");
public static final Tag.Named<Block> BLOCK_WOODEN_CHEST = makeCommonBlockTag("wooden_chests");
public static final Tag.Named<Block> BLOCK_BARREL = makeCommonBlockTag("barrel");
public static final Tag.Named<Block> BLOCK_WOODEN_BARREL = makeCommonBlockTag("wooden_barrels");
public static final Tag.Named<Block> BLOCK_END_STONES = makeCommonBlockTag("end_stones"); public static final Tag.Named<Block> BLOCK_END_STONES = makeCommonBlockTag("end_stones");
public static final Tag.Named<Block> BLOCK_NETHER_STONES = makeCommonBlockTag("nether_stones"); public static final Tag.Named<Block> BLOCK_NETHER_STONES = makeCommonBlockTag("nether_stones");
public static final Tag.Named<Block> BLOCK_WORKBENCHES = makeCommonBlockTag("workbenches"); public static final Tag.Named<Block> BLOCK_WORKBENCHES = makeCommonBlockTag("workbench");
public static final Tag.Named<Block> BLOCK_SAPLINGS = makeCommonBlockTag("saplings");
public static final Tag.Named<Block> BLOCK_LEAVES = makeCommonBlockTag("leaves");
public static final Tag.Named<Block> BLOCK_DRAGON_IMMUNE = getMCBlockTag("dragon_immune"); public static final Tag.Named<Block> BLOCK_DRAGON_IMMUNE = getMCBlockTag("dragon_immune");
@ -46,10 +52,16 @@ public class TagAPI {
// Item Tags // Item Tags
public static final Tag.Named<Item> ITEM_CHEST = makeCommonItemTag("chest"); public static final Tag.Named<Item> ITEM_CHEST = makeCommonItemTag("chest");
public static final Tag.Named<Item> ITEM_WOODEN_CHEST = makeCommonItemTag("wooden_chests");
public static final Tag.Named<Item> ITEM_BARREL = makeCommonItemTag("barrel");
public static final Tag.Named<Item> ITEM_WOODEN_BARREL = makeCommonItemTag("wooden_barrels");
public static final Tag.Named<Item> ITEM_IRON_INGOTS = makeCommonItemTag("iron_ingots"); public static final Tag.Named<Item> ITEM_IRON_INGOTS = makeCommonItemTag("iron_ingots");
public static final Tag.Named<Item> ITEM_FURNACES = makeCommonItemTag("furnaces"); public static final Tag.Named<Item> ITEM_FURNACES = makeCommonItemTag("furnaces");
public static final Tag.Named<Item> ITEM_WORKBENCHES = makeCommonItemTag("workbenches"); public static final Tag.Named<Item> ITEM_WORKBENCHES = makeCommonItemTag("workbench");
public final static Tag.Named<Item> ITEM_HAMMERS = makeCommonItemTag("hammers"); public final static Tag.Named<Item> ITEM_HAMMERS = makeCommonItemTag("hammers");
public static final Tag.Named<Item> ITEM_SAPLINGS = makeCommonItemTag("saplings");
public static final Tag.Named<Item> ITEM_LEAVES = makeCommonItemTag("leaves");
/** /**
* Get or create {@link Tag.Named}. * Get or create {@link Tag.Named}.

View file

@ -39,358 +39,372 @@ import ru.bclib.complexmaterials.entry.RecipeEntry;
import ru.bclib.recipes.GridRecipe; import ru.bclib.recipes.GridRecipe;
public class WoodenComplexMaterial extends ComplexMaterial { public class WoodenComplexMaterial extends ComplexMaterial {
public static final ResourceLocation MATERIAL_ID = BCLib.makeID("wooden_material"); public static final ResourceLocation MATERIAL_ID = BCLib.makeID("wooden_material");
public static final String BLOCK_CRAFTING_TABLE = "crafting_table"; public static final String BLOCK_CRAFTING_TABLE = "crafting_table";
public static final String BLOCK_STRIPPED_BARK = "stripped_bark"; public static final String BLOCK_STRIPPED_BARK = "stripped_bark";
public static final String BLOCK_STRIPPED_LOG = "stripped_log"; public static final String BLOCK_STRIPPED_LOG = "stripped_log";
public static final String BLOCK_PRESSURE_PLATE = "plate"; public static final String BLOCK_PRESSURE_PLATE = "plate";
public static final String BLOCK_BOOKSHELF = "bookshelf"; public static final String BLOCK_BOOKSHELF = "bookshelf";
public static final String BLOCK_COMPOSTER = "composter"; public static final String BLOCK_COMPOSTER = "composter";
public static final String BLOCK_TRAPDOOR = "trapdoor"; public static final String BLOCK_TRAPDOOR = "trapdoor";
public static final String BLOCK_BARREL = "barrel"; public static final String BLOCK_BARREL = "barrel";
public static final String BLOCK_BUTTON = "button"; public static final String BLOCK_BUTTON = "button";
public static final String BLOCK_LADDER = "ladder"; public static final String BLOCK_LADDER = "ladder";
public static final String BLOCK_PLANKS = "planks"; public static final String BLOCK_PLANKS = "planks";
public static final String BLOCK_STAIRS = "stairs"; public static final String BLOCK_STAIRS = "stairs";
public static final String BLOCK_CHEST = "chest"; public static final String BLOCK_CHEST = "chest";
public static final String BLOCK_FENCE = "fence"; public static final String BLOCK_FENCE = "fence";
public static final String BLOCK_BARK = "bark"; public static final String BLOCK_BARK = "bark";
public static final String BLOCK_DOOR = "door"; public static final String BLOCK_DOOR = "door";
public static final String BLOCK_GATE = "gate"; public static final String BLOCK_GATE = "gate";
public static final String BLOCK_SIGN = "sign"; public static final String BLOCK_SIGN = "sign";
public static final String BLOCK_SLAB = "slab"; public static final String BLOCK_SLAB = "slab";
public static final String BLOCK_LOG = "log"; public static final String BLOCK_LOG = "log";
public static final String TAG_LOGS = "logs"; public static final String TAG_LOGS = "logs";
public final MaterialColor planksColor; public final MaterialColor planksColor;
public final MaterialColor woodColor; public final MaterialColor woodColor;
public WoodenComplexMaterial(String modID, String baseName, String receipGroupPrefix, MaterialColor woodColor, MaterialColor planksColor) { public WoodenComplexMaterial(String modID, String baseName, String receipGroupPrefix, MaterialColor woodColor, MaterialColor planksColor) {
super(modID, baseName, receipGroupPrefix); super(modID, baseName, receipGroupPrefix);
this.planksColor = planksColor; this.planksColor = planksColor;
this.woodColor = woodColor; this.woodColor = woodColor;
} }
@Override @Override
protected FabricBlockSettings getBlockSettings() { protected FabricBlockSettings getBlockSettings() {
return FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).materialColor(planksColor); return FabricBlockSettings.copyOf(Blocks.OAK_PLANKS)
} .materialColor(planksColor);
}
@Override @Override
public ResourceLocation getMaterialID() { public ResourceLocation getMaterialID() {
return MATERIAL_ID; return MATERIAL_ID;
} }
@Override @Override
protected void initTags() { protected void initTags() {
addBlockTag(TagAPI.makeBlockTag(getModID(), getBaseName() + "_logs")); addBlockTag(TagAPI.makeBlockTag(getModID(), getBaseName() + "_logs"));
addItemTag(TagAPI.makeItemTag(getModID(), getBaseName() + "_logs")); addItemTag(TagAPI.makeItemTag(getModID(), getBaseName() + "_logs"));
} }
@Override @Override
protected void initDefault(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) { protected void initDefault(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
initBase(blockSettings, itemSettings); initBase(blockSettings, itemSettings);
initStorage(blockSettings, itemSettings); initStorage(blockSettings, itemSettings);
initDecorations(blockSettings, itemSettings); initDecorations(blockSettings, itemSettings);
} }
final protected void initBase(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) { final protected void initBase(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
Tag.Named<Block> tagBlockLog = getBlockTag(TAG_LOGS); Tag.Named<Block> tagBlockLog = getBlockTag(TAG_LOGS);
Tag.Named<Item> tagItemLog = getItemTag(TAG_LOGS); Tag.Named<Item> tagItemLog = getItemTag(TAG_LOGS);
addBlockEntry( addBlockEntry(
new BlockEntry(BLOCK_STRIPPED_LOG, (complexMaterial, settings) -> { new BlockEntry(BLOCK_STRIPPED_LOG, (complexMaterial, settings) -> {
return new BaseRotatedPillarBlock(settings); return new BaseRotatedPillarBlock(settings);
}) })
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
); );
addBlockEntry( addBlockEntry(
new BlockEntry(BLOCK_STRIPPED_BARK, (complexMaterial, settings) -> { new BlockEntry(BLOCK_STRIPPED_BARK, (complexMaterial, settings) -> {
return new BaseBarkBlock(settings); return new BaseBarkBlock(settings);
}) })
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
); );
addBlockEntry( addBlockEntry(
new BlockEntry(BLOCK_LOG, (complexMaterial, settings) -> { new BlockEntry(BLOCK_LOG, (complexMaterial, settings) -> {
return new BaseStripableLogBlock(woodColor, getBlock(BLOCK_STRIPPED_LOG)); return new BaseStripableLogBlock(woodColor, getBlock(BLOCK_STRIPPED_LOG));
}) })
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
); );
addBlockEntry( addBlockEntry(
new BlockEntry(BLOCK_BARK, (complexMaterial, settings) -> { new BlockEntry(BLOCK_BARK, (complexMaterial, settings) -> {
return new StripableBarkBlock(woodColor, getBlock(BLOCK_STRIPPED_BARK)); return new StripableBarkBlock(woodColor, getBlock(BLOCK_STRIPPED_BARK));
}) })
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
); );
addBlockEntry(new BlockEntry(BLOCK_PLANKS, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_PLANKS, (complexMaterial, settings) -> {
return new BaseBlock(settings); return new BaseBlock(settings);
}).setBlockTags(BlockTags.PLANKS).setItemTags(ItemTags.PLANKS)); }).setBlockTags(BlockTags.PLANKS)
.setItemTags(ItemTags.PLANKS));
addBlockEntry(new BlockEntry(BLOCK_STAIRS, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_STAIRS, (complexMaterial, settings) -> {
return new BaseStairsBlock(getBlock(BLOCK_PLANKS)); return new BaseStairsBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.WOODEN_STAIRS, BlockTags.STAIRS).setItemTags(ItemTags.WOODEN_STAIRS, ItemTags.STAIRS)); }).setBlockTags(BlockTags.WOODEN_STAIRS, BlockTags.STAIRS)
addBlockEntry(new BlockEntry(BLOCK_SLAB, (complexMaterial, settings) -> { .setItemTags(ItemTags.WOODEN_STAIRS, ItemTags.STAIRS));
return new BaseSlabBlock(getBlock(BLOCK_PLANKS)); addBlockEntry(new BlockEntry(BLOCK_SLAB, (complexMaterial, settings) -> {
}).setBlockTags(BlockTags.WOODEN_SLABS, BlockTags.SLABS).setItemTags(ItemTags.WOODEN_SLABS, ItemTags.SLABS)); return new BaseSlabBlock(getBlock(BLOCK_PLANKS));
addBlockEntry(new BlockEntry(BLOCK_FENCE, (complexMaterial, settings) -> { }).setBlockTags(BlockTags.WOODEN_SLABS, BlockTags.SLABS)
return new BaseFenceBlock(getBlock(BLOCK_PLANKS)); .setItemTags(ItemTags.WOODEN_SLABS, ItemTags.SLABS));
}).setBlockTags(BlockTags.FENCES, BlockTags.WOODEN_FENCES).setItemTags(ItemTags.FENCES, ItemTags.WOODEN_FENCES)); addBlockEntry(new BlockEntry(BLOCK_FENCE, (complexMaterial, settings) -> {
addBlockEntry(new BlockEntry(BLOCK_GATE, (complexMaterial, settings) -> { return new BaseFenceBlock(getBlock(BLOCK_PLANKS));
return new BaseGateBlock(getBlock(BLOCK_PLANKS)); }).setBlockTags(BlockTags.FENCES, BlockTags.WOODEN_FENCES)
}).setBlockTags(BlockTags.FENCE_GATES)); .setItemTags(ItemTags.FENCES, ItemTags.WOODEN_FENCES));
addBlockEntry(new BlockEntry(BLOCK_BUTTON, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_GATE, (complexMaterial, settings) -> {
return new BaseWoodenButtonBlock(getBlock(BLOCK_PLANKS)); return new BaseGateBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.BUTTONS, BlockTags.WOODEN_BUTTONS).setItemTags(ItemTags.BUTTONS, ItemTags.WOODEN_BUTTONS)); }).setBlockTags(BlockTags.FENCE_GATES));
addBlockEntry(new BlockEntry(BLOCK_PRESSURE_PLATE, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_BUTTON, (complexMaterial, settings) -> {
return new WoodenPressurePlateBlock(getBlock(BLOCK_PLANKS)); return new BaseWoodenButtonBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.PRESSURE_PLATES, BlockTags.WOODEN_PRESSURE_PLATES).setItemTags(ItemTags.WOODEN_PRESSURE_PLATES)); }).setBlockTags(BlockTags.BUTTONS, BlockTags.WOODEN_BUTTONS)
addBlockEntry(new BlockEntry(BLOCK_TRAPDOOR, (complexMaterial, settings) -> { .setItemTags(ItemTags.BUTTONS, ItemTags.WOODEN_BUTTONS));
return new BaseTrapdoorBlock(getBlock(BLOCK_PLANKS)); addBlockEntry(new BlockEntry(BLOCK_PRESSURE_PLATE, (complexMaterial, settings) -> {
}).setBlockTags(BlockTags.TRAPDOORS, BlockTags.WOODEN_TRAPDOORS).setItemTags(ItemTags.TRAPDOORS, ItemTags.WOODEN_TRAPDOORS)); return new WoodenPressurePlateBlock(getBlock(BLOCK_PLANKS));
addBlockEntry(new BlockEntry(BLOCK_DOOR, (complexMaterial, settings) -> { }).setBlockTags(BlockTags.PRESSURE_PLATES, BlockTags.WOODEN_PRESSURE_PLATES)
return new BaseDoorBlock(getBlock(BLOCK_PLANKS)); .setItemTags(ItemTags.WOODEN_PRESSURE_PLATES));
}).setBlockTags(BlockTags.DOORS, BlockTags.WOODEN_DOORS).setItemTags(ItemTags.DOORS, ItemTags.WOODEN_DOORS)); addBlockEntry(new BlockEntry(BLOCK_TRAPDOOR, (complexMaterial, settings) -> {
return new BaseTrapdoorBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.TRAPDOORS, BlockTags.WOODEN_TRAPDOORS)
.setItemTags(ItemTags.TRAPDOORS, ItemTags.WOODEN_TRAPDOORS));
addBlockEntry(new BlockEntry(BLOCK_DOOR, (complexMaterial, settings) -> {
return new BaseDoorBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.DOORS, BlockTags.WOODEN_DOORS)
.setItemTags(ItemTags.DOORS, ItemTags.WOODEN_DOORS));
addBlockEntry(new BlockEntry(BLOCK_LADDER, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_LADDER, (complexMaterial, settings) -> {
return new BaseLadderBlock(getBlock(BLOCK_PLANKS)); return new BaseLadderBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.CLIMBABLE)); }).setBlockTags(BlockTags.CLIMBABLE));
addBlockEntry(new BlockEntry(BLOCK_SIGN, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_SIGN, (complexMaterial, settings) -> {
return new BaseSignBlock(getBlock(BLOCK_PLANKS)); return new BaseSignBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(BlockTags.SIGNS).setItemTags(ItemTags.SIGNS)); }).setBlockTags(BlockTags.SIGNS)
.setItemTags(ItemTags.SIGNS));
} }
final protected void initStorage(FabricBlockSettings blockSettings, FabricItemSettings itemSettings){ final protected void initStorage(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
addBlockEntry(new BlockEntry(BLOCK_CHEST, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_CHEST, (complexMaterial, settings) -> {
return new BaseChestBlock(getBlock(BLOCK_PLANKS)); return new BaseChestBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(TagAPI.BLOCK_CHEST).setItemTags(TagAPI.ITEM_CHEST)); }).setBlockTags(TagAPI.BLOCK_CHEST, TagAPI.BLOCK_WOODEN_CHEST)
addBlockEntry(new BlockEntry(BLOCK_BARREL, (complexMaterial, settings) -> { .setItemTags(TagAPI.ITEM_CHEST, TagAPI.ITEM_WOODEN_CHEST));
return new BaseBarrelBlock(getBlock(BLOCK_PLANKS));
}));
}
final protected void initDecorations(FabricBlockSettings blockSettings, FabricItemSettings itemSettings){ addBlockEntry(new BlockEntry(BLOCK_BARREL, (complexMaterial, settings) -> {
addBlockEntry(new BlockEntry(BLOCK_CRAFTING_TABLE, (complexMaterial, settings) -> { return new BaseBarrelBlock(getBlock(BLOCK_PLANKS));
return new BaseCraftingTableBlock(getBlock(BLOCK_PLANKS)); }).setBlockTags(TagAPI.BLOCK_BARREL, TagAPI.BLOCK_WOODEN_BARREL)
}).setBlockTags(TagAPI.BLOCK_WORKBENCHES).setItemTags(TagAPI.ITEM_WORKBENCHES)); .setItemTags(TagAPI.ITEM_BARREL, TagAPI.ITEM_WOODEN_BARREL));
}
addBlockEntry(new BlockEntry(BLOCK_BOOKSHELF, (complexMaterial, settings) -> { final protected void initDecorations(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
return new BaseBookshelfBlock(getBlock(BLOCK_PLANKS)); addBlockEntry(new BlockEntry(BLOCK_CRAFTING_TABLE, (complexMaterial, settings) -> {
}).setBlockTags(TagAPI.BLOCK_BOOKSHELVES)); return new BaseCraftingTableBlock(getBlock(BLOCK_PLANKS));
}).setBlockTags(TagAPI.BLOCK_WORKBENCHES)
.setItemTags(TagAPI.ITEM_WORKBENCHES));
addBlockEntry(new BlockEntry(BLOCK_COMPOSTER, (complexMaterial, settings) -> { addBlockEntry(new BlockEntry(BLOCK_BOOKSHELF, (complexMaterial, settings) -> {
return new BaseComposterBlock(getBlock(BLOCK_PLANKS)); return new BaseBookshelfBlock(getBlock(BLOCK_PLANKS));
})); }).setBlockTags(TagAPI.BLOCK_BOOKSHELVES));
}
@Override addBlockEntry(new BlockEntry(BLOCK_COMPOSTER, (complexMaterial, settings) -> {
protected void initFlammable(FlammableBlockRegistry registry) { return new BaseComposterBlock(getBlock(BLOCK_PLANKS));
getBlocks().forEach(block -> { }));
registry.add(block, 5, 20); }
});
registry.add(getBlock(BLOCK_LOG), 5, 5); @Override
registry.add(getBlock(BLOCK_BARK), 5, 5); protected void initFlammable(FlammableBlockRegistry registry) {
registry.add(getBlock(BLOCK_STRIPPED_LOG), 5, 5); getBlocks().forEach(block -> {
registry.add(getBlock(BLOCK_STRIPPED_BARK), 5, 5); registry.add(block, 5, 20);
} });
@Override registry.add(getBlock(BLOCK_LOG), 5, 5);
public void initDefaultRecipes() { registry.add(getBlock(BLOCK_BARK), 5, 5);
Block planks = getBlock(BLOCK_PLANKS); registry.add(getBlock(BLOCK_STRIPPED_LOG), 5, 5);
addRecipeEntry(new RecipeEntry("planks", (material, config, id) -> { registry.add(getBlock(BLOCK_STRIPPED_BARK), 5, 5);
Block log_stripped = getBlock(BLOCK_STRIPPED_LOG); }
Block bark_stripped = getBlock(BLOCK_STRIPPED_BARK);
Block log = getBlock(BLOCK_LOG); @Override
Block bark = getBlock(BLOCK_BARK); public void initDefaultRecipes() {
GridRecipe.make(id, planks) Block planks = getBlock(BLOCK_PLANKS);
.checkConfig(config) addRecipeEntry(new RecipeEntry("planks", (material, config, id) -> {
.setOutputCount(4) Block log_stripped = getBlock(BLOCK_STRIPPED_LOG);
.setList("#") Block bark_stripped = getBlock(BLOCK_STRIPPED_BARK);
.addMaterial('#', log, bark, log_stripped, bark_stripped) Block log = getBlock(BLOCK_LOG);
.setGroup(receipGroupPrefix +"_planks") Block bark = getBlock(BLOCK_BARK);
.build(); GridRecipe.make(id, planks)
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("stairs", (material, config, id) -> { .setOutputCount(4)
GridRecipe.make(id, getBlock(BLOCK_STAIRS)) .setList("#")
.checkConfig(config) .addMaterial('#', log, bark, log_stripped, bark_stripped)
.setOutputCount(4) .setGroup(receipGroupPrefix + "_planks")
.setShape("# ", "## ", "###") .build();
.addMaterial('#', planks) }));
.setGroup(receipGroupPrefix +"_planks_stairs") addRecipeEntry(new RecipeEntry("stairs", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_STAIRS))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("slab", (material, config, id) -> { .setOutputCount(4)
GridRecipe.make(id, getBlock(BLOCK_SLAB)) .setShape("# ", "## ", "###")
.checkConfig(config) .addMaterial('#', planks)
.setOutputCount(6) .setGroup(receipGroupPrefix + "_planks_stairs")
.setShape("###") .build();
.addMaterial('#', planks) }));
.setGroup(receipGroupPrefix +"_planks_slabs") addRecipeEntry(new RecipeEntry("slab", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_SLAB))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("fence", (material, config, id) -> { .setOutputCount(6)
GridRecipe.make(id, getBlock(BLOCK_FENCE)) .setShape("###")
.checkConfig(config) .addMaterial('#', planks)
.setOutputCount(3) .setGroup(receipGroupPrefix + "_planks_slabs")
.setShape("#I#", "#I#") .build();
.addMaterial('#', planks) }));
.addMaterial('I', Items.STICK) addRecipeEntry(new RecipeEntry("fence", (material, config, id) -> {
.setGroup(receipGroupPrefix +"_planks_fences") GridRecipe.make(id, getBlock(BLOCK_FENCE))
.build(); .checkConfig(config)
})); .setOutputCount(3)
addRecipeEntry(new RecipeEntry("gate", (material, config, id) -> { .setShape("#I#", "#I#")
GridRecipe.make(id, getBlock(BLOCK_GATE)) .addMaterial('#', planks)
.checkConfig(config) .addMaterial('I', Items.STICK)
.setShape("I#I", "I#I") .setGroup(receipGroupPrefix + "_planks_fences")
.addMaterial('#', planks) .build();
.addMaterial('I', Items.STICK) }));
.setGroup(receipGroupPrefix +"_planks_gates") addRecipeEntry(new RecipeEntry("gate", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_GATE))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("button", (material, config, id) -> { .setShape("I#I", "I#I")
GridRecipe.make(id, getBlock(BLOCK_BUTTON)) .addMaterial('#', planks)
.checkConfig(config) .addMaterial('I', Items.STICK)
.setList("#") .setGroup(receipGroupPrefix + "_planks_gates")
.addMaterial('#', planks) .build();
.setGroup(receipGroupPrefix +"_planks_buttons") }));
.build(); addRecipeEntry(new RecipeEntry("button", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_BUTTON))
addRecipeEntry(new RecipeEntry("pressure_plate", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_PRESSURE_PLATE)) .setList("#")
.checkConfig(config) .addMaterial('#', planks)
.setShape("##") .setGroup(receipGroupPrefix + "_planks_buttons")
.addMaterial('#', planks) .build();
.setGroup(receipGroupPrefix +"_planks_plates") }));
.build(); addRecipeEntry(new RecipeEntry("pressure_plate", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_PRESSURE_PLATE))
addRecipeEntry(new RecipeEntry("trapdoor", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_TRAPDOOR)) .setShape("##")
.checkConfig(config) .addMaterial('#', planks)
.setOutputCount(2) .setGroup(receipGroupPrefix + "_planks_plates")
.setShape("###", "###") .build();
.addMaterial('#', planks) }));
.setGroup(receipGroupPrefix +"_trapdoors") addRecipeEntry(new RecipeEntry("trapdoor", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_TRAPDOOR))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("door", (material, config, id) -> { .setOutputCount(2)
GridRecipe.make(id, getBlock(BLOCK_DOOR)) .setShape("###", "###")
.checkConfig(config) .addMaterial('#', planks)
.setOutputCount(3) .setGroup(receipGroupPrefix + "_trapdoors")
.setShape("##", "##", "##") .build();
.addMaterial('#', planks) }));
.setGroup(receipGroupPrefix +"_doors") addRecipeEntry(new RecipeEntry("door", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_DOOR))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("crafting_table", (material, config, id) -> { .setOutputCount(3)
GridRecipe.make(id, getBlock(BLOCK_CRAFTING_TABLE)) .setShape("##", "##", "##")
.checkConfig(config) .addMaterial('#', planks)
.setShape("##", "##") .setGroup(receipGroupPrefix + "_doors")
.addMaterial('#', planks) .build();
.setGroup(receipGroupPrefix +"_tables") }));
.build(); addRecipeEntry(new RecipeEntry("crafting_table", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_CRAFTING_TABLE))
addRecipeEntry(new RecipeEntry("ladder", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_LADDER)) .setShape("##", "##")
.checkConfig(config) .addMaterial('#', planks)
.setOutputCount(3) .setGroup(receipGroupPrefix + "_tables")
.setShape("I I", "I#I", "I I") .build();
.addMaterial('#', planks) }));
.addMaterial('I', Items.STICK) addRecipeEntry(new RecipeEntry("ladder", (material, config, id) -> {
.setGroup(receipGroupPrefix +"_ladders") GridRecipe.make(id, getBlock(BLOCK_LADDER))
.build(); .checkConfig(config)
})); .setOutputCount(3)
addRecipeEntry(new RecipeEntry("sign", (material, config, id) -> { .setShape("I I", "I#I", "I I")
GridRecipe.make(id, getBlock(BLOCK_SIGN)) .addMaterial('#', planks)
.checkConfig(config) .addMaterial('I', Items.STICK)
.setOutputCount(3) .setGroup(receipGroupPrefix + "_ladders")
.setShape("###", "###", " I ") .build();
.addMaterial('#', planks) }));
.addMaterial('I', Items.STICK) addRecipeEntry(new RecipeEntry("sign", (material, config, id) -> {
.setGroup(receipGroupPrefix +"_signs") GridRecipe.make(id, getBlock(BLOCK_SIGN))
.build(); .checkConfig(config)
})); .setOutputCount(3)
addRecipeEntry(new RecipeEntry("chest", (material, config, id) -> { .setShape("###", "###", " I ")
GridRecipe.make(id, getBlock(BLOCK_CHEST)) .addMaterial('#', planks)
.checkConfig(config) .addMaterial('I', Items.STICK)
.setShape("###", "# #", "###") .setGroup(receipGroupPrefix + "_signs")
.addMaterial('#', planks) .build();
.setGroup(receipGroupPrefix +"_chests") }));
.build(); addRecipeEntry(new RecipeEntry("chest", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_CHEST))
addRecipeEntry(new RecipeEntry("barrel", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_BARREL)) .setShape("###", "# #", "###")
.checkConfig(config) .addMaterial('#', planks)
.setShape("#S#", "# #", "#S#") .setGroup(receipGroupPrefix + "_chests")
.addMaterial('#', planks) .build();
.addMaterial('S', getBlock(BLOCK_SLAB)) }));
.setGroup(receipGroupPrefix +"_barrels") addRecipeEntry(new RecipeEntry("barrel", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_BARREL))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("bookshelf", (material, config, id) -> { .setShape("#S#", "# #", "#S#")
GridRecipe.make(id, getBlock(BLOCK_BOOKSHELF)) .addMaterial('#', planks)
.checkConfig(config) .addMaterial('S', getBlock(BLOCK_SLAB))
.setShape("###", "PPP", "###") .setGroup(receipGroupPrefix + "_barrels")
.addMaterial('#', planks) .build();
.addMaterial('P', Items.BOOK) }));
.setGroup(receipGroupPrefix +"_bookshelves") addRecipeEntry(new RecipeEntry("bookshelf", (material, config, id) -> {
.build(); GridRecipe.make(id, getBlock(BLOCK_BOOKSHELF))
})); .checkConfig(config)
addRecipeEntry(new RecipeEntry("bark", (material, config, id) -> { .setShape("###", "PPP", "###")
GridRecipe.make(id, getBlock(BLOCK_BARK)) .addMaterial('#', planks)
.checkConfig(config) .addMaterial('P', Items.BOOK)
.setShape("##", "##") .setGroup(receipGroupPrefix + "_bookshelves")
.addMaterial('#', getBlock(BLOCK_LOG)) .build();
.setOutputCount(3) }));
.build(); addRecipeEntry(new RecipeEntry("bark", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_BARK))
addRecipeEntry(new RecipeEntry("log", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_LOG)) .setShape("##", "##")
.checkConfig(config) .addMaterial('#', getBlock(BLOCK_LOG))
.setShape("##", "##") .setOutputCount(3)
.addMaterial('#', getBlock(BLOCK_BARK)) .build();
.setOutputCount(3) }));
.build(); addRecipeEntry(new RecipeEntry("log", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_LOG))
addRecipeEntry(new RecipeEntry("stripped_bark", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_STRIPPED_BARK)) .setShape("##", "##")
.checkConfig(config) .addMaterial('#', getBlock(BLOCK_BARK))
.setShape("##", "##") .setOutputCount(3)
.addMaterial('#', getBlock(BLOCK_STRIPPED_LOG)) .build();
.setOutputCount(3) }));
.build(); addRecipeEntry(new RecipeEntry("stripped_bark", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_STRIPPED_BARK))
addRecipeEntry(new RecipeEntry("stripped_log", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_STRIPPED_LOG)) .setShape("##", "##")
.checkConfig(config) .addMaterial('#', getBlock(BLOCK_STRIPPED_LOG))
.setShape("##", "##") .setOutputCount(3)
.addMaterial('#', getBlock(BLOCK_STRIPPED_BARK)) .build();
.setOutputCount(3) }));
.build(); addRecipeEntry(new RecipeEntry("stripped_log", (material, config, id) -> {
})); GridRecipe.make(id, getBlock(BLOCK_STRIPPED_LOG))
addRecipeEntry(new RecipeEntry("composter", (material, config, id) -> { .checkConfig(config)
GridRecipe.make(id, getBlock(BLOCK_COMPOSTER)) .setShape("##", "##")
.checkConfig(config) .addMaterial('#', getBlock(BLOCK_STRIPPED_BARK))
.setShape("# #", "# #", "###") .setOutputCount(3)
.addMaterial('#', getBlock(BLOCK_SLAB)) .build();
.build(); }));
})); addRecipeEntry(new RecipeEntry("composter", (material, config, id) -> {
addRecipeEntry(new RecipeEntry("shulker", (material, config, id) -> { GridRecipe.make(id, getBlock(BLOCK_COMPOSTER))
GridRecipe.make(id, Blocks.SHULKER_BOX) .checkConfig(config)
.checkConfig(config) .setShape("# #", "# #", "###")
.setShape("S", "#", "S") .addMaterial('#', getBlock(BLOCK_SLAB))
.addMaterial('S', Items.SHULKER_SHELL) .build();
.addMaterial('#', getBlock(BLOCK_CHEST)) }));
.build(); addRecipeEntry(new RecipeEntry("shulker", (material, config, id) -> {
})); GridRecipe.make(id, Blocks.SHULKER_BOX)
} .checkConfig(config)
.setShape("S", "#", "S")
.addMaterial('S', Items.SHULKER_SHELL)
.addMaterial('#', getBlock(BLOCK_CHEST))
.build();
}));
}
} }