From 40fcd08f553ada5eafdceaa026ec402d836a33ab Mon Sep 17 00:00:00 2001 From: lucsoft Date: Sat, 29 May 2021 19:15:49 +0200 Subject: [PATCH] Migrated DataProviders --- .../cil/oc2/data/ModBlockStateProvider.java | 2 +- .../li/cil/oc2/data/ModBlockTagsProvider.java | 8 +- .../li/cil/oc2/data/ModItemTagsProvider.java | 34 +- .../li/cil/oc2/data/ModLootTableProvider.java | 28 +- .../li/cil/oc2/data/ModRecipesProvider.java | 500 +++++++++--------- .../li/cil/oc2/data/WrenchRecipeBuilder.java | 50 +- 6 files changed, 311 insertions(+), 311 deletions(-) diff --git a/src/main/java/li/cil/oc2/data/ModBlockStateProvider.java b/src/main/java/li/cil/oc2/data/ModBlockStateProvider.java index 55a7fe3b..340964a9 100644 --- a/src/main/java/li/cil/oc2/data/ModBlockStateProvider.java +++ b/src/main/java/li/cil/oc2/data/ModBlockStateProvider.java @@ -62,7 +62,7 @@ public class ModBlockStateProvider extends BlockStateProvider { .end(); BusCableBlock.FACING_TO_CONNECTION_MAP.forEach((direction, connectionType) -> { - final int rotationY = (int) direction.getHorizontalAngle(); + final int rotationY = (int) direction.toYRot(); final int rotationX; if (direction == Direction.UP) { rotationX = 90; diff --git a/src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java b/src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java index 1f36ddf7..543a738d 100644 --- a/src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java +++ b/src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java @@ -16,16 +16,16 @@ public final class ModBlockTagsProvider extends BlockTagsProvider { } @Override - protected void registerTags() { - getOrCreateBuilder(DEVICES).add( + protected void addTags() { + tag(DEVICES).add( COMPUTER.get(), REDSTONE_INTERFACE.get(), DISK_DRIVE.get() ); - getOrCreateBuilder(CABLES).add( + tag(CABLES).add( BUS_CABLE.get() ); - getOrCreateBuilder(WRENCH_BREAKABLE).add( + tag(WRENCH_BREAKABLE).add( COMPUTER.get(), BUS_CABLE.get(), NETWORK_CONNECTOR.get(), diff --git a/src/main/java/li/cil/oc2/data/ModItemTagsProvider.java b/src/main/java/li/cil/oc2/data/ModItemTagsProvider.java index 4b1fbebc..bcea64c4 100644 --- a/src/main/java/li/cil/oc2/data/ModItemTagsProvider.java +++ b/src/main/java/li/cil/oc2/data/ModItemTagsProvider.java @@ -21,11 +21,11 @@ public final class ModItemTagsProvider extends ItemTagsProvider { @SuppressWarnings("unchecked") @Override - protected void registerTags() { + protected void addTags() { copy(BlockTags.CABLES, CABLES); copy(BlockTags.DEVICES, DEVICES); - getOrCreateBuilder(DEVICES).addTags( + tag(DEVICES).addTags( DEVICES_MEMORY, DEVICES_HARD_DRIVE, DEVICES_FLASH_MEMORY, @@ -33,35 +33,35 @@ public final class ModItemTagsProvider extends ItemTagsProvider { DEVICES_ROBOT_MODULE, DEVICES_FLOPPY ); - getOrCreateBuilder(DEVICES_MEMORY).add( + tag(DEVICES_MEMORY).add( Items.MEMORY_SMALL.get(), Items.MEMORY_MEDIUM.get(), Items.MEMORY_LARGE.get() ); - getOrCreateBuilder(DEVICES_HARD_DRIVE).add( + tag(DEVICES_HARD_DRIVE).add( Items.HARD_DRIVE_SMALL.get(), Items.HARD_DRIVE_MEDIUM.get(), Items.HARD_DRIVE_LARGE.get(), Items.HARD_DRIVE_CUSTOM.get() ); - getOrCreateBuilder(DEVICES_FLASH_MEMORY).add( + tag(DEVICES_FLASH_MEMORY).add( Items.FLASH_MEMORY.get(), Items.FLASH_MEMORY_CUSTOM.get() ); - getOrCreateBuilder(DEVICES_FLOPPY).add( + tag(DEVICES_FLOPPY).add( Items.FLOPPY.get() ); - getOrCreateBuilder(DEVICES_CARD).add( + tag(DEVICES_CARD).add( Items.REDSTONE_INTERFACE_CARD.get(), Items.NETWORK_INTERFACE_CARD.get(), Items.FILE_IMPORT_EXPORT_CARD.get() ); - getOrCreateBuilder(DEVICES_ROBOT_MODULE).add( + tag(DEVICES_ROBOT_MODULE).add( Items.INVENTORY_OPERATIONS_MODULE.get(), Items.BLOCK_OPERATIONS_MODULE.get() ); - getOrCreateBuilder(TOOL_MATERIALS).addTags( + tag(TOOL_MATERIALS).addTags( TOOL_MATERIAL_WOOD, TOOL_MATERIAL_STONE, TOOL_MATERIAL_IRON, @@ -69,28 +69,28 @@ public final class ModItemTagsProvider extends ItemTagsProvider { TOOL_MATERIAL_DIAMOND, TOOL_MATERIAL_NETHERITE ); - getOrCreateBuilder(TOOL_MATERIAL_WOOD).addTags( + tag(TOOL_MATERIAL_WOOD).addTags( ItemTags.PLANKS ); - getOrCreateBuilder(TOOL_MATERIAL_STONE).addTags( + tag(TOOL_MATERIAL_STONE).addTags( ItemTags.STONE_TOOL_MATERIALS ); - getOrCreateBuilder(TOOL_MATERIAL_IRON).addTags( + tag(TOOL_MATERIAL_IRON).addTags( Tags.Items.INGOTS_IRON ); - getOrCreateBuilder(TOOL_MATERIAL_GOLD).addTags( + tag(TOOL_MATERIAL_GOLD).addTags( Tags.Items.INGOTS_GOLD ); - getOrCreateBuilder(TOOL_MATERIAL_DIAMOND).addTags( + tag(TOOL_MATERIAL_DIAMOND).addTags( Tags.Items.GEMS_DIAMOND ); - getOrCreateBuilder(TOOL_MATERIAL_NETHERITE).addTags( + tag(TOOL_MATERIAL_NETHERITE).addTags( Tags.Items.INGOTS_NETHERITE ); - getOrCreateBuilder(WRENCHES).add(Items.WRENCH.get()); + tag(WRENCHES).add(Items.WRENCH.get()); - getOrCreateBuilder(DEVICE_NEEDS_REBOOT).add( + tag(DEVICE_NEEDS_REBOOT).add( Items.MEMORY_SMALL.get(), Items.MEMORY_MEDIUM.get(), Items.MEMORY_LARGE.get(), diff --git a/src/main/java/li/cil/oc2/data/ModLootTableProvider.java b/src/main/java/li/cil/oc2/data/ModLootTableProvider.java index f653a765..f5f67842 100644 --- a/src/main/java/li/cil/oc2/data/ModLootTableProvider.java +++ b/src/main/java/li/cil/oc2/data/ModLootTableProvider.java @@ -30,7 +30,7 @@ public final class ModLootTableProvider extends LootTableProvider { @Override protected void validate(final Map map, final ValidationTracker validationtracker) { - map.forEach((location, table) -> LootTableManager.validateLootTable(validationtracker, location, table)); + map.forEach((location, table) -> LootTableManager.validate(validationtracker, location, table)); } @Override @@ -41,13 +41,13 @@ public final class ModLootTableProvider extends LootTableProvider { public static final class ModBlockLootTables extends BlockLootTables { @Override protected void addTables() { - registerDropSelfLootTable(Blocks.REDSTONE_INTERFACE.get()); - registerDropSelfLootTable(Blocks.NETWORK_CONNECTOR.get()); - registerDropSelfLootTable(Blocks.NETWORK_HUB.get()); - registerDropSelfLootTable(Blocks.DISK_DRIVE.get()); - registerDropSelfLootTable(Blocks.CHARGER.get()); + dropSelf(Blocks.REDSTONE_INTERFACE.get()); + dropSelf(Blocks.NETWORK_CONNECTOR.get()); + dropSelf(Blocks.NETWORK_HUB.get()); + dropSelf(Blocks.DISK_DRIVE.get()); + dropSelf(Blocks.CHARGER.get()); - registerLootTable(Blocks.COMPUTER.get(), ModBlockLootTables::droppingWithInventory); + add(Blocks.COMPUTER.get(), ModBlockLootTables::droppingWithInventory); } @Override @@ -59,15 +59,15 @@ public final class ModLootTableProvider extends LootTableProvider { } private static LootTable.Builder droppingWithInventory(final Block block) { - return LootTable.builder() - .addLootPool(withSurvivesExplosion(block, LootPool.builder() - .rolls(ConstantRange.of(1)) - .addEntry(ItemLootEntry.builder(block) - .acceptFunction(CopyNbt.builder(CopyNbt.Source.BLOCK_ENTITY) - .addOperation(ITEMS_TAG_NAME, + return LootTable.lootTable() + .withPool(applyExplosionCondition(block, LootPool.lootPool() + .setRolls(ConstantRange.exactly(1)) + .add(ItemLootEntry.lootTableItem(block) + .apply(CopyNbt.copyData(CopyNbt.Source.BLOCK_ENTITY) + .copy(ITEMS_TAG_NAME, concat(BLOCK_ENTITY_TAG_NAME_IN_ITEM, ITEMS_TAG_NAME), CopyNbt.Action.REPLACE) - .addOperation(ENERGY_TAG_NAME, + .copy(ENERGY_TAG_NAME, concat(BLOCK_ENTITY_TAG_NAME_IN_ITEM, ENERGY_TAG_NAME), CopyNbt.Action.REPLACE) ) diff --git a/src/main/java/li/cil/oc2/data/ModRecipesProvider.java b/src/main/java/li/cil/oc2/data/ModRecipesProvider.java index fcdd9aa2..071e5567 100644 --- a/src/main/java/li/cil/oc2/data/ModRecipesProvider.java +++ b/src/main/java/li/cil/oc2/data/ModRecipesProvider.java @@ -15,319 +15,319 @@ public final class ModRecipesProvider extends RecipeProvider { } @Override - protected void registerRecipes(final Consumer consumer) { + protected void buildShapelessRecipes(final Consumer consumer) { ShapedRecipeBuilder - .shapedRecipe(Items.COMPUTER.get()) - .patternLine("ICI") - .patternLine("XTX") - .patternLine("IBI") - .key('I', Tags.Items.INGOTS_IRON) - .key('C', Tags.Items.CHESTS_WOODEN) - .key('X', Items.BUS_INTERFACE.get()) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .addCriterion("has_circuit_board", inventoryChange(Items.CIRCUIT_BOARD.get())) - .build(consumer); + .shaped(Items.COMPUTER.get()) + .pattern("ICI") + .pattern("XTX") + .pattern("IBI") + .define('I', Tags.Items.INGOTS_IRON) + .define('C', Tags.Items.CHESTS_WOODEN) + .define('X', Items.BUS_INTERFACE.get()) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .unlockedBy("has_circuit_board", inventoryChange(Items.CIRCUIT_BOARD.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.BUS_CABLE.get(), 16) - .patternLine("III") - .patternLine("GTG") - .patternLine("III") - .key('I', Tags.Items.INGOTS_IRON) - .key('G', Tags.Items.INGOTS_GOLD) - .key('T', Items.TRANSISTOR.get()) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .build(consumer); + .shaped(Items.BUS_CABLE.get(), 16) + .pattern("III") + .pattern("GTG") + .pattern("III") + .define('I', Tags.Items.INGOTS_IRON) + .define('G', Tags.Items.INGOTS_GOLD) + .define('T', Items.TRANSISTOR.get()) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .save(consumer); ShapelessRecipeBuilder - .shapelessRecipe(Items.BUS_INTERFACE.get()) - .addIngredient(Items.TRANSISTOR.get()) - .addIngredient(Items.BUS_CABLE.get()) - .addCriterion("has_bus_cable", inventoryChange(Items.BUS_CABLE.get())) - .build(consumer); + .shapeless(Items.BUS_INTERFACE.get()) + .requires(Items.TRANSISTOR.get()) + .requires(Items.BUS_CABLE.get()) + .unlockedBy("has_bus_cable", inventoryChange(Items.BUS_CABLE.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.NETWORK_CONNECTOR.get(), 4) - .patternLine("IGI") - .patternLine("ITI") - .key('I', Tags.Items.INGOTS_IRON) - .key('G', Tags.Items.GLASS) - .key('T', Items.TRANSISTOR.get()) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .build(consumer); + .shaped(Items.NETWORK_CONNECTOR.get(), 4) + .pattern("IGI") + .pattern("ITI") + .define('I', Tags.Items.INGOTS_IRON) + .define('G', Tags.Items.GLASS) + .define('T', Items.TRANSISTOR.get()) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.NETWORK_HUB.get()) - .patternLine("ICI") - .patternLine("XTX") - .patternLine("ICI") - .key('I', Tags.Items.INGOTS_IRON) - .key('C', Items.NETWORK_CONNECTOR.get()) - .key('X', Items.BUS_INTERFACE.get()) - .key('T', Items.TRANSISTOR.get()) - .addCriterion("has_network_connector", inventoryChange(Items.NETWORK_CONNECTOR.get())) - .build(consumer); + .shaped(Items.NETWORK_HUB.get()) + .pattern("ICI") + .pattern("XTX") + .pattern("ICI") + .define('I', Tags.Items.INGOTS_IRON) + .define('C', Items.NETWORK_CONNECTOR.get()) + .define('X', Items.BUS_INTERFACE.get()) + .define('T', Items.TRANSISTOR.get()) + .unlockedBy("has_network_connector", inventoryChange(Items.NETWORK_CONNECTOR.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.REDSTONE_INTERFACE.get()) - .patternLine("IRI") - .patternLine("XTX") - .patternLine("IRI") - .key('I', Tags.Items.INGOTS_IRON) - .key('R', Tags.Items.DUSTS_REDSTONE) - .key('T', Items.TRANSISTOR.get()) - .key('X', Items.BUS_INTERFACE.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .build(consumer); + .shaped(Items.REDSTONE_INTERFACE.get()) + .pattern("IRI") + .pattern("XTX") + .pattern("IRI") + .define('I', Tags.Items.INGOTS_IRON) + .define('R', Tags.Items.DUSTS_REDSTONE) + .define('T', Items.TRANSISTOR.get()) + .define('X', Items.BUS_INTERFACE.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.DISK_DRIVE.get()) - .patternLine("IBI") - .patternLine("XTX") - .patternLine("IDI") - .key('I', Tags.Items.INGOTS_IRON) - .key('B', ItemTags.BUTTONS) - .key('T', Items.TRANSISTOR.get()) - .key('X', Items.BUS_INTERFACE.get()) - .key('D', net.minecraft.item.Items.DISPENSER) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .build(consumer); + .shaped(Items.DISK_DRIVE.get()) + .pattern("IBI") + .pattern("XTX") + .pattern("IDI") + .define('I', Tags.Items.INGOTS_IRON) + .define('B', ItemTags.BUTTONS) + .define('T', Items.TRANSISTOR.get()) + .define('X', Items.BUS_INTERFACE.get()) + .define('D', net.minecraft.item.Items.DISPENSER) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.CHARGER.get()) - .patternLine("IPI") - .patternLine("XTX") - .patternLine("IRI") - .key('I', Tags.Items.INGOTS_IRON) - .key('P', net.minecraft.item.Items.LIGHT_WEIGHTED_PRESSURE_PLATE) - .key('T', Items.TRANSISTOR.get()) - .key('X', Items.BUS_INTERFACE.get()) - .key('R', Tags.Items.STORAGE_BLOCKS_REDSTONE) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .build(consumer); + .shaped(Items.CHARGER.get()) + .pattern("IPI") + .pattern("XTX") + .pattern("IRI") + .define('I', Tags.Items.INGOTS_IRON) + .define('P', net.minecraft.item.Items.LIGHT_WEIGHTED_PRESSURE_PLATE) + .define('T', Items.TRANSISTOR.get()) + .define('X', Items.BUS_INTERFACE.get()) + .define('R', Tags.Items.STORAGE_BLOCKS_REDSTONE) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.WRENCH.get()) - .patternLine("I I") - .patternLine(" T ") - .patternLine(" I ") - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .build(consumer); + .shaped(Items.WRENCH.get()) + .pattern("I I") + .pattern(" T ") + .pattern(" I ") + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.NETWORK_CABLE.get(), 8) - .patternLine("SSS") - .patternLine("GTG") - .patternLine("SSS") - .key('S', Tags.Items.STRING) - .key('G', Tags.Items.GLASS) - .key('T', Items.TRANSISTOR.get()) - .addCriterion("has_network_connector", inventoryChange(Items.NETWORK_CONNECTOR.get())) - .build(consumer); + .shaped(Items.NETWORK_CABLE.get(), 8) + .pattern("SSS") + .pattern("GTG") + .pattern("SSS") + .define('S', Tags.Items.STRING) + .define('G', Tags.Items.GLASS) + .define('T', Items.TRANSISTOR.get()) + .unlockedBy("has_network_connector", inventoryChange(Items.NETWORK_CONNECTOR.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.ROBOT.get()) - .patternLine("ICI") - .patternLine("PTP") - .patternLine("IBI") - .key('I', Tags.Items.INGOTS_IRON) - .key('C', Tags.Items.CHESTS_WOODEN) - .key('P', net.minecraft.item.Items.PISTON) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .addCriterion("has_circuit_board", inventoryChange(Items.CIRCUIT_BOARD.get())) - .build(consumer); + .shaped(Items.ROBOT.get()) + .pattern("ICI") + .pattern("PTP") + .pattern("IBI") + .define('I', Tags.Items.INGOTS_IRON) + .define('C', Tags.Items.CHESTS_WOODEN) + .define('P', net.minecraft.item.Items.PISTON) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .unlockedBy("has_circuit_board", inventoryChange(Items.CIRCUIT_BOARD.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.MEMORY_SMALL.get(), 2) - .patternLine("ITI") - .patternLine(" B ") - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.MEMORY_SMALL.get(), 2) + .pattern("ITI") + .pattern(" B ") + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.MEMORY_MEDIUM.get(), 2) - .patternLine("GTG") - .patternLine(" B ") - .key('G', Tags.Items.INGOTS_GOLD) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.MEMORY_MEDIUM.get(), 2) + .pattern("GTG") + .pattern(" B ") + .define('G', Tags.Items.INGOTS_GOLD) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.MEMORY_LARGE.get(), 2) - .patternLine("DTD") - .patternLine(" B ") - .key('D', Tags.Items.GEMS_DIAMOND) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.MEMORY_LARGE.get(), 2) + .pattern("DTD") + .pattern(" B ") + .define('D', Tags.Items.GEMS_DIAMOND) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.HARD_DRIVE_SMALL.get()) - .patternLine("ITI") - .patternLine("EBE") - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .key('E', Tags.Items.GEMS_EMERALD) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.HARD_DRIVE_SMALL.get()) + .pattern("ITI") + .pattern("EBE") + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .define('E', Tags.Items.GEMS_EMERALD) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.HARD_DRIVE_MEDIUM.get()) - .patternLine("GTG") - .patternLine("EBE") - .key('G', Tags.Items.INGOTS_GOLD) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .key('E', Tags.Items.GEMS_EMERALD) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.HARD_DRIVE_MEDIUM.get()) + .pattern("GTG") + .pattern("EBE") + .define('G', Tags.Items.INGOTS_GOLD) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .define('E', Tags.Items.GEMS_EMERALD) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.HARD_DRIVE_LARGE.get()) - .patternLine("DTD") - .patternLine("EBE") - .key('D', Tags.Items.GEMS_DIAMOND) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .key('E', Tags.Items.GEMS_EMERALD) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.HARD_DRIVE_LARGE.get()) + .pattern("DTD") + .pattern("EBE") + .define('D', Tags.Items.GEMS_DIAMOND) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .define('E', Tags.Items.GEMS_EMERALD) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); WrenchRecipeBuilder .wrenchRecipe(Items.HARD_DRIVE_CUSTOM.get()) - .addIngredient(Items.HARD_DRIVE_LARGE.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .requires(Items.HARD_DRIVE_LARGE.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.FLASH_MEMORY.get()) - .patternLine("ITI") - .patternLine("RBR") - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('R', Tags.Items.DUSTS_REDSTONE) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.FLASH_MEMORY.get()) + .pattern("ITI") + .pattern("RBR") + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('R', Tags.Items.DUSTS_REDSTONE) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); WrenchRecipeBuilder .wrenchRecipe(Items.FLASH_MEMORY_CUSTOM.get()) - .addIngredient(Items.FLASH_MEMORY.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .requires(Items.FLASH_MEMORY.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.REDSTONE_INTERFACE_CARD.get()) - .patternLine("IRT") - .patternLine(" B ") - .key('R', net.minecraft.item.Items.REDSTONE_TORCH) - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .build(consumer); + .shaped(Items.REDSTONE_INTERFACE_CARD.get()) + .pattern("IRT") + .pattern(" B ") + .define('R', net.minecraft.item.Items.REDSTONE_TORCH) + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.NETWORK_INTERFACE_CARD.get()) - .patternLine("IGT") - .patternLine(" B ") - .key('G', Tags.Items.GLASS) - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .build(consumer); + .shaped(Items.NETWORK_INTERFACE_CARD.get()) + .pattern("IGT") + .pattern(" B ") + .define('G', Tags.Items.GLASS) + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.FILE_IMPORT_EXPORT_CARD.get()) - .patternLine("IET") - .patternLine(" B ") - .key('E', net.minecraft.item.Items.PAPER) - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_computer", inventoryChange(Items.COMPUTER.get())) - .build(consumer); + .shaped(Items.FILE_IMPORT_EXPORT_CARD.get()) + .pattern("IET") + .pattern(" B ") + .define('E', net.minecraft.item.Items.PAPER) + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.FLOPPY.get()) - .patternLine("ITI") - .patternLine("QBQ") - .key('I', Tags.Items.INGOTS_IRON) - .key('T', Items.TRANSISTOR.get()) - .key('Q', Tags.Items.GEMS_QUARTZ) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_disk_drive", inventoryChange(Items.DISK_DRIVE.get())) - .build(consumer); + .shaped(Items.FLOPPY.get()) + .pattern("ITI") + .pattern("QBQ") + .define('I', Tags.Items.INGOTS_IRON) + .define('T', Items.TRANSISTOR.get()) + .define('Q', Tags.Items.GEMS_QUARTZ) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_disk_drive", inventoryChange(Items.DISK_DRIVE.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.INVENTORY_OPERATIONS_MODULE.get()) - .patternLine("TCG") - .patternLine(" B ") - .key('T', Items.TRANSISTOR.get()) - .key('C', Tags.Items.CHESTS_WOODEN) - .key('G', Tags.Items.INGOTS_GOLD) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.INVENTORY_OPERATIONS_MODULE.get()) + .pattern("TCG") + .pattern(" B ") + .define('T', Items.TRANSISTOR.get()) + .define('C', Tags.Items.CHESTS_WOODEN) + .define('G', Tags.Items.INGOTS_GOLD) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.BLOCK_OPERATIONS_MODULE.get()) - .patternLine("TPG") - .patternLine(" B ") - .key('T', Items.TRANSISTOR.get()) - .key('P', net.minecraft.item.Items.DIAMOND_PICKAXE) - .key('G', Tags.Items.INGOTS_GOLD) - .key('B', Items.CIRCUIT_BOARD.get()) - .addCriterion("has_robot", inventoryChange(Items.ROBOT.get())) - .build(consumer); + .shaped(Items.BLOCK_OPERATIONS_MODULE.get()) + .pattern("TPG") + .pattern(" B ") + .define('T', Items.TRANSISTOR.get()) + .define('P', net.minecraft.item.Items.DIAMOND_PICKAXE) + .define('G', Tags.Items.INGOTS_GOLD) + .define('B', Items.CIRCUIT_BOARD.get()) + .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get())) + .save(consumer); ShapedRecipeBuilder - .shapedRecipe(Items.TRANSISTOR.get(), 8) - .patternLine("RCR") - .patternLine("III") - .key('I', Tags.Items.INGOTS_IRON) - .key('R', Tags.Items.DUSTS_REDSTONE) - .key('C', net.minecraft.item.Items.COMPARATOR) - .addCriterion("has_gold", inventoryChange(net.minecraft.item.Items.GOLD_INGOT)) - .build(consumer); + .shaped(Items.TRANSISTOR.get(), 8) + .pattern("RCR") + .pattern("III") + .define('I', Tags.Items.INGOTS_IRON) + .define('R', Tags.Items.DUSTS_REDSTONE) + .define('C', net.minecraft.item.Items.COMPARATOR) + .unlockedBy("has_gold", inventoryChange(net.minecraft.item.Items.GOLD_INGOT)) + .save(consumer); ShapelessRecipeBuilder - .shapelessRecipe(Items.CIRCUIT_BOARD.get(), 4) - .addIngredient(Tags.Items.INGOTS_GOLD) - .addIngredient(net.minecraft.item.Items.CLAY_BALL) - .addIngredient(Items.TRANSISTOR.get()) - .addCriterion("has_transistor", inventoryChange(Items.TRANSISTOR.get())) - .build(consumer); + .shapeless(Items.CIRCUIT_BOARD.get(), 4) + .requires(Tags.Items.INGOTS_GOLD) + .requires(net.minecraft.item.Items.CLAY_BALL) + .requires(Items.TRANSISTOR.get()) + .unlockedBy("has_transistor", inventoryChange(Items.TRANSISTOR.get())) + .save(consumer); } private static InventoryChangeTrigger.Instance inventoryChange(final IItemProvider item) { - return InventoryChangeTrigger.Instance.forItems(item); + return InventoryChangeTrigger.Instance.hasItems(item); } } diff --git a/src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java b/src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java index 3f9b7ce0..dd3fc9e5 100644 --- a/src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java +++ b/src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java @@ -27,14 +27,14 @@ public final class WrenchRecipeBuilder { private final Item result; private final int count; private final List ingredients = Lists.newArrayList(); - private final Advancement.Builder advancementBuilder = Advancement.Builder.builder(); + private final Advancement.Builder advancementBuilder = Advancement.Builder.advancement(); private String group; public WrenchRecipeBuilder(final IItemProvider result, final int count) { this.result = result.asItem(); this.count = count; - addIngredient(Items.WRENCH.get()); + requires(Items.WRENCH.get()); } public static WrenchRecipeBuilder wrenchRecipe(final IItemProvider resultIn) { @@ -45,23 +45,23 @@ public final class WrenchRecipeBuilder { return new WrenchRecipeBuilder(resultIn, countIn); } - public WrenchRecipeBuilder addIngredient(final ITag tagIn) { - return this.addIngredient(Ingredient.fromTag(tagIn)); + public WrenchRecipeBuilder requires(final ITag tagIn) { + return this.requires(Ingredient.of(tagIn)); } - public WrenchRecipeBuilder addIngredient(final IItemProvider itemIn) { - return this.addIngredient(itemIn, 1); + public WrenchRecipeBuilder requires(final IItemProvider itemIn) { + return this.requires(itemIn, 1); } - public WrenchRecipeBuilder addIngredient(final IItemProvider itemIn, final int quantity) { + public WrenchRecipeBuilder requires(final IItemProvider itemIn, final int quantity) { for (int i = 0; i < quantity; ++i) { - this.addIngredient(Ingredient.fromItems(itemIn)); + this.requires(Ingredient.of(itemIn)); } return this; } - public WrenchRecipeBuilder addIngredient(final Ingredient ingredientIn) { + public WrenchRecipeBuilder requires(final Ingredient ingredientIn) { return this.addIngredient(ingredientIn, 1); } @@ -73,8 +73,8 @@ public final class WrenchRecipeBuilder { return this; } - public WrenchRecipeBuilder addCriterion(final String name, final ICriterionInstance criterionIn) { - this.advancementBuilder.withCriterion(name, criterionIn); + public WrenchRecipeBuilder unlockedBy(final String name, final ICriterionInstance criterionIn) { + this.advancementBuilder.addCriterion(name, criterionIn); return this; } @@ -83,23 +83,23 @@ public final class WrenchRecipeBuilder { return this; } - public void build(final Consumer consumerIn) { - this.build(consumerIn, ForgeRegistries.ITEMS.getKey(this.result)); + public void save(final Consumer consumerIn) { + this.save(consumerIn, ForgeRegistries.ITEMS.getKey(this.result)); } - public void build(final Consumer consumerIn, final String save) { + public void save(final Consumer consumerIn, final String save) { final ResourceLocation resourcelocation = ForgeRegistries.ITEMS.getKey(this.result); if ((new ResourceLocation(save)).equals(resourcelocation)) { throw new IllegalStateException("Shapeless Recipe " + save + " should remove its 'save' argument"); } else { - this.build(consumerIn, new ResourceLocation(save)); + this.save(consumerIn, new ResourceLocation(save)); } } - public void build(final Consumer consumerIn, final ResourceLocation id) { + public void save(final Consumer consumerIn, final ResourceLocation id) { this.validate(id); - this.advancementBuilder.withParentId(new ResourceLocation("recipes/root")).withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(id)).withRewards(AdvancementRewards.Builder.recipe(id)).withRequirementsStrategy(IRequirementsStrategy.OR); - consumerIn.accept(new WrenchRecipeBuilder.Result(id, this.result, this.count, this.group == null ? "" : this.group, this.ingredients, this.advancementBuilder, new ResourceLocation(id.getNamespace(), "recipes/" + this.result.getGroup().getPath() + "/" + id.getPath()))); + this.advancementBuilder.parent(new ResourceLocation("recipes/root")).addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(id)).rewards(AdvancementRewards.Builder.recipe(id)).requirements(IRequirementsStrategy.OR); + consumerIn.accept(new WrenchRecipeBuilder.Result(id, this.result, this.count, this.group == null ? "" : this.group, this.ingredients, this.advancementBuilder, new ResourceLocation(id.getNamespace(), "recipes/" + this.result.getItemCategory().getRecipeFolderName() + "/" + id.getPath()))); } private void validate(final ResourceLocation id) { @@ -127,7 +127,7 @@ public final class WrenchRecipeBuilder { this.advancementId = advancementIdIn; } - public void serialize(final JsonObject json) { + public void serializeRecipeData(final JsonObject json) { if (!this.group.isEmpty()) { json.addProperty("group", this.group); } @@ -135,7 +135,7 @@ public final class WrenchRecipeBuilder { final JsonArray jsonarray = new JsonArray(); for (final Ingredient ingredient : this.ingredients) { - jsonarray.add(ingredient.serialize()); + jsonarray.add(ingredient.toJson()); } json.add("ingredients", jsonarray); @@ -148,21 +148,21 @@ public final class WrenchRecipeBuilder { json.add("result", jsonobject); } - public IRecipeSerializer getSerializer() { + public IRecipeSerializer getType() { return RecipeSerializers.WRENCH.get(); } - public ResourceLocation getID() { + public ResourceLocation getId() { return this.id; } @Nullable - public JsonObject getAdvancementJson() { - return this.advancementBuilder.serialize(); + public JsonObject serializeAdvancement() { + return this.advancementBuilder.serializeToJson(); } @Nullable - public ResourceLocation getAdvancementID() { + public ResourceLocation getAdvancementId() { return this.advancementId; } }