Migrated DataProviders

This commit is contained in:
lucsoft
2021-05-29 19:15:49 +02:00
parent ae14b64596
commit 40fcd08f55
6 changed files with 311 additions and 311 deletions

View File

@@ -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;

View File

@@ -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(),

View File

@@ -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(),

View File

@@ -30,7 +30,7 @@ public final class ModLootTableProvider extends LootTableProvider {
@Override
protected void validate(final Map<ResourceLocation, LootTable> 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)
)

View File

@@ -15,319 +15,319 @@ public final class ModRecipesProvider extends RecipeProvider {
}
@Override
protected void registerRecipes(final Consumer<IFinishedRecipe> consumer) {
protected void buildShapelessRecipes(final Consumer<IFinishedRecipe> 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);
}
}

View File

@@ -27,14 +27,14 @@ public final class WrenchRecipeBuilder {
private final Item result;
private final int count;
private final List<Ingredient> 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<Item> tagIn) {
return this.addIngredient(Ingredient.fromTag(tagIn));
public WrenchRecipeBuilder requires(final ITag<Item> 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<IFinishedRecipe> consumerIn) {
this.build(consumerIn, ForgeRegistries.ITEMS.getKey(this.result));
public void save(final Consumer<IFinishedRecipe> consumerIn) {
this.save(consumerIn, ForgeRegistries.ITEMS.getKey(this.result));
}
public void build(final Consumer<IFinishedRecipe> consumerIn, final String save) {
public void save(final Consumer<IFinishedRecipe> 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<IFinishedRecipe> consumerIn, final ResourceLocation id) {
public void save(final Consumer<IFinishedRecipe> 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;
}
}