ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/data/BlockRecipeGenerator.java

555 lines
23 KiB
Java
Raw Normal View History

package de.ellpeck.actuallyadditions.data;
import de.ellpeck.actuallyadditions.api.ActuallyTags;
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
2024-03-04 22:37:11 +01:00
import de.ellpeck.actuallyadditions.mod.util.NoAdvRecipeOutput;
2024-03-03 01:20:53 +01:00
import net.minecraft.data.PackOutput;
2024-03-12 16:39:36 +01:00
import net.minecraft.data.recipes.RecipeCategory;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.data.recipes.RecipeProvider;
import net.minecraft.data.recipes.ShapedRecipeBuilder;
import net.minecraft.data.recipes.ShapelessRecipeBuilder;
import net.minecraft.tags.ItemTags;
2024-03-02 21:23:08 +01:00
import net.minecraft.world.item.Items;
import net.minecraft.world.level.ItemLike;
2024-03-04 20:21:48 +01:00
import net.neoforged.neoforge.common.Tags;
2023-01-07 21:54:54 +01:00
import javax.annotation.Nonnull;
import java.util.Arrays;
public class BlockRecipeGenerator extends RecipeProvider {
2024-03-03 01:20:53 +01:00
public BlockRecipeGenerator(PackOutput packOutput) {
super(packOutput);
}
@Override
2024-03-04 22:37:11 +01:00
protected void buildRecipes(@Nonnull RecipeOutput output) {
var recipeOutput = new NoAdvRecipeOutput(output);
2021-05-02 17:47:50 +02:00
//Battery Box
2024-03-04 22:37:11 +01:00
Recipe.shapeless(ActuallyBlocks.BATTERY_BOX.getItem()).ingredients(ActuallyBlocks.ENERGIZER.get(), ActuallyBlocks.ENERVATOR.get(), ActuallyItems.BASIC_COIL.get()).save(recipeOutput);
2021-05-02 17:47:50 +02:00
//Farmer
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.FARMER.getItem())
2021-08-22 23:40:28 +02:00
.pattern("ISI", "SCS", "ISI")
.define('I', ActuallyBlocks.ENORI_CRYSTAL.getItem())
.define('C', ActuallyBlocks.IRON_CASING.get())
.define('S', Tags.Items.SEEDS)
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Empowerer
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.EMPOWERER.getItem())
2021-08-22 23:40:28 +02:00
.pattern(" R ", " B ", "CDC")
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
2021-11-24 17:57:31 +01:00
.define('B', ActuallyItems.DOUBLE_BATTERY.get())
2021-08-22 23:40:28 +02:00
.define('C', ActuallyBlocks.IRON_CASING.get())
.define('D', ActuallyBlocks.DISPLAY_STAND.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Tiny Torch
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.TINY_TORCH.getItem(), 2)
2021-08-22 23:40:28 +02:00
.pattern("C", "S")
.define('C', ActuallyTags.Items.TINY_COALS)
.define('S', Tags.Items.RODS_WOODEN)
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Fireworks Box
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.FIREWORK_BOX.getItem())
2021-08-22 23:40:28 +02:00
.pattern("GFG", "SAS", "CCC")
.define('G', Tags.Items.GUNPOWDER)
.define('S', Tags.Items.RODS_WOODEN)
.define('A', ActuallyBlocks.IRON_CASING.get())
.define('F', Items.FIREWORK_ROCKET)
.define('C', ActuallyItems.ENORI_CRYSTAL.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Shock Suppressor
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.SHOCK_SUPPRESSOR.getItem())
2021-11-27 01:21:01 +01:00
.pattern("OAO", "ACA", "OAO")
.define('A', ActuallyItems.EMPOWERED_VOID_CRYSTAL.get())
.define('O', Tags.Items.OBSIDIAN)
.define('C', ActuallyItems.ADVANCED_COIL.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
2021-05-02 17:47:50 +02:00
//Display Stand
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.DISPLAY_STAND.getItem())
2021-11-27 01:21:01 +01:00
.pattern(" R ", "EEE", "GGG")
.define('R', ActuallyItems.ADVANCED_COIL.get())
.define('E', ActuallyBlocks.ETHETIC_GREEN_BLOCK.get())
.define('G', ActuallyBlocks.ETHETIC_WHITE_BLOCK.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
2021-05-05 18:15:25 +02:00
//Vertical Digger
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.VERTICAL_DIGGER.getItem())
2021-11-27 01:21:01 +01:00
.pattern("IRI", "RCR", "IDI")
.define('R', Tags.Items.STORAGE_BLOCKS_REDSTONE)
.define('I', ActuallyBlocks.IRON_CASING.get())
.define('C', ActuallyItems.EMPOWERED_VOID_CRYSTAL.get())
.define('D', ActuallyTags.Items.DRILLS)
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
2021-05-05 18:15:25 +02:00
//Black Quartz Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.BLACK_QUARTZ_WALL.getItem(), ActuallyBlocks.BLACK_QUARTZ_PILLAR.get(), recipeOutput);
2021-05-05 18:15:25 +02:00
//Black Quartz Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.BLACK_QUARTZ_SLAB.getItem(), ActuallyBlocks.BLACK_QUARTZ_PILLAR.get(), recipeOutput);
2021-05-05 18:15:25 +02:00
//Black Quartz Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.BLACK_QUARTZ_STAIR.getItem(), ActuallyBlocks.BLACK_QUARTZ_PILLAR.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Smooth Black Quartz Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.SMOOTH_BLACK_QUARTZ_WALL.getItem(), ActuallyBlocks.SMOOTH_BLACK_QUARTZ.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Smooth Black Quartz Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.SMOOTH_BLACK_QUARTZ_SLAB.getItem(), ActuallyBlocks.SMOOTH_BLACK_QUARTZ.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Smooth Black Quartz Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.SMOOTH_BLACK_QUARTZ_STAIR.getItem(), ActuallyBlocks.SMOOTH_BLACK_QUARTZ.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Black Quartz Brick Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.BLACK_QUARTZ_BRICK_WALL.getItem(), ActuallyBlocks.BLACK_QUARTZ_BRICK.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Black Quartz Brick Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.BLACK_QUARTZ_BRICK_SLAB.getItem(), ActuallyBlocks.BLACK_QUARTZ_BRICK.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Black Quartz Brick Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.BLACK_QUARTZ_BRICK_STAIR.getItem(), ActuallyBlocks.BLACK_QUARTZ_BRICK.get(), recipeOutput);
2023-01-07 21:54:54 +01:00
//Pillar Black Quartz Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.BLACK_QUARTZ_PILLAR_WALL.getItem(), ActuallyBlocks.BLACK_QUARTZ_PILLAR.get(), recipeOutput);
//Pillar Black Quartz Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.BLACK_QUARTZ_PILLAR_SLAB.getItem(), ActuallyBlocks.BLACK_QUARTZ_PILLAR.get(), recipeOutput);
//Pillar Black Quartz Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.BLACK_QUARTZ_PILLAR_STAIR.getItem(), ActuallyBlocks.BLACK_QUARTZ_PILLAR.get(), recipeOutput);
//Chiseled Black Quartz Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.CHISELED_BLACK_QUARTZ_WALL.getItem(), ActuallyBlocks.CHISELED_BLACK_QUARTZ.get(), recipeOutput);
//Chiseled Black Quartz Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.CHISELED_BLACK_QUARTZ_SLAB.getItem(), ActuallyBlocks.CHISELED_BLACK_QUARTZ.get(), recipeOutput);
//Chiseled Black Quartz Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.CHISELED_BLACK_QUARTZ_STAIR.getItem(), ActuallyBlocks.CHISELED_BLACK_QUARTZ.get(), recipeOutput);
2021-05-05 18:15:25 +02:00
//Ethetic White Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.ETHETIC_WHITE_WALL.getItem(), ActuallyBlocks.ETHETIC_WHITE_BLOCK.get(), recipeOutput);
2021-05-05 18:15:25 +02:00
//Ethetic White Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.ETHETIC_WHITE_SLAB.getItem(), ActuallyBlocks.ETHETIC_WHITE_BLOCK.get(), recipeOutput);
2021-05-05 18:15:25 +02:00
//Ethetic White Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.ETHETIC_WHITE_STAIRS.getItem(), ActuallyBlocks.ETHETIC_WHITE_BLOCK.get(), recipeOutput);
// Ethetic Green Wall
2024-03-04 22:37:11 +01:00
Recipe.wall(ActuallyBlocks.ETHETIC_GREEN_WALL.getItem(), ActuallyBlocks.ETHETIC_GREEN_BLOCK.get(), recipeOutput);
// Ethetic Green Slab
2024-03-04 22:37:11 +01:00
Recipe.slab(ActuallyBlocks.ETHETIC_GREEN_SLAB.getItem(), ActuallyBlocks.ETHETIC_GREEN_BLOCK.get(), recipeOutput);
// Ethetic Green Stairs
2024-03-04 22:37:11 +01:00
Recipe.stairs(ActuallyBlocks.ETHETIC_GREEN_STAIRS.getItem(), ActuallyBlocks.ETHETIC_GREEN_BLOCK.get(), recipeOutput);
// Atomic Reconstructor
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.getItem())
2021-08-22 23:40:28 +02:00
.pattern("IRI", "RCR", "IRI")
.define('R', Tags.Items.DUSTS_REDSTONE)
.define('I', Tags.Items.INGOTS_IRON)
.define('C', ActuallyBlocks.IRON_CASING.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
2021-05-09 23:31:24 +02:00
// Laser Relay
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.LASER_RELAY.getItem(), 4)
2021-08-22 23:40:28 +02:00
.pattern("OBO", "RCR", "OBO")
.define('B', Tags.Items.STORAGE_BLOCKS_REDSTONE)
.define('O', Tags.Items.OBSIDIAN)
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
2021-11-24 17:57:31 +01:00
.define('C', ActuallyItems.ADVANCED_COIL.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
2021-05-09 23:31:24 +02:00
// Advanced Laser Relay
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.LASER_RELAY_ADVANCED.getItem())
2021-08-22 23:40:28 +02:00
.pattern(" I ", "XRX", " I ")
.define('I', ActuallyItems.ENORI_CRYSTAL.get())
.define('R', ActuallyBlocks.LASER_RELAY.get())
.define('X', ActuallyItems.RESTONIA_CRYSTAL.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
2021-05-09 23:31:24 +02:00
// Extreme Laser Relay
2021-10-02 18:49:11 +02:00
Recipe.shaped(ActuallyBlocks.LASER_RELAY_EXTREME.getItem())
2021-08-22 23:40:28 +02:00
.pattern(" I ", "XRX", " I ")
.define('I', ActuallyItems.EMPOWERED_DIAMATINE_CRYSTAL.get())
2021-08-22 23:40:28 +02:00
.define('R', ActuallyBlocks.LASER_RELAY_ADVANCED.get())
.define('X', ActuallyItems.RESTONIA_CRYSTAL.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
// Whitelist Item Laser Relay
2021-10-02 18:49:11 +02:00
Recipe.shapeless(ActuallyBlocks.LASER_RELAY_ITEM_ADVANCED.getItem())
2021-11-24 17:57:31 +01:00
.ingredients(ActuallyBlocks.LASER_RELAY_ITEM.get(), ActuallyItems.ADVANCED_COIL.get(), ActuallyItems.BLACK_QUARTZ.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
// Item Interface
2021-11-13 18:02:42 +01:00
Recipe.shaped(ActuallyBlocks.ITEM_INTERFACE.getItem())
2021-08-22 23:40:28 +02:00
.pattern("OBO", "RCR", "OBO")
.define('B', Tags.Items.DUSTS_REDSTONE)
2021-11-24 17:57:31 +01:00
.define('O', ActuallyItems.BASIC_COIL.get())
2021-08-22 23:40:28 +02:00
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
.define('C', Tags.Items.CHESTS_WOODEN)
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
// Hopping Item Interface
2024-03-04 22:37:11 +01:00
Recipe.shapeless(ActuallyBlocks.ITEM_INTERFACE_HOPPING.get()).ingredients(ActuallyBlocks.ITEM_INTERFACE.get()).save(recipeOutput);
//Wood Casing
Recipe.shaped(ActuallyBlocks.WOOD_CASING.getItem())
.pattern("WSW", "SRS", "WSW")
.define('S', Tags.Items.RODS_WOODEN)
.define('W', ItemTags.PLANKS)
.define('R', ItemTags.LOGS)
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Iron Casing
Recipe.shaped(ActuallyBlocks.IRON_CASING.getItem())
.pattern("WSW", "SQS", "WSW")
.define('Q', ActuallyItems.BLACK_QUARTZ.get())
.define('W', Tags.Items.INGOTS_IRON)
.define('S', Tags.Items.RODS_WOODEN)
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Ender Casing
Recipe.shaped(ActuallyBlocks.ENDER_CASING.getItem())
.pattern("WSW", "SRS", "WSW")
.define('W', Tags.Items.ENDER_PEARLS)
.define('R', ActuallyBlocks.BLACK_QUARTZ.getItem())
.define('S', ActuallyItems.EMPOWERED_DIAMATINE_CRYSTAL.get())
2024-03-04 22:37:11 +01:00
.save(recipeOutput);
//Coffee Maker
Recipe.shaped(ActuallyBlocks.COFFEE_MACHINE.getItem())
.pattern(" C ", " I ", "XVX")
.define('C', ActuallyItems.COFFEE_BEANS)
.define('I', ActuallyBlocks.IRON_CASING.getItem())
.define('X', ActuallyItems.BASIC_COIL.get())
.define('V', ActuallyItems.VOID_CRYSTAL.get())
.save(recipeOutput);
//Canola Press
Recipe.shaped(ActuallyBlocks.CANOLA_PRESS.getItem())
.pattern("CEC","CXC","CAC")
.define('C', Tags.Items.COBBLESTONE)
.define('E', ActuallyItems.ENORI_CRYSTAL)
.define('X', ActuallyItems.CANOLA)
.define('A', ActuallyItems.ADVANCED_COIL)
.save(recipeOutput);
//Fermenting Barrel
Recipe.shaped(ActuallyBlocks.FERMENTING_BARREL.getItem())
.pattern("LAL","LCL","LWL")
.define('L', ItemTags.LOGS)
.define('A', ActuallyItems.ENORI_CRYSTAL)
.define('C', ActuallyItems.CANOLA)
.define('W', ActuallyBlocks.WOOD_CASING.getItem())
.save(recipeOutput);
//Oil Generator
Recipe.shaped(ActuallyBlocks.OIL_GENERATOR.getItem())
.pattern("CIC","CAC","CIC")
.define('C', Tags.Items.COBBLESTONE)
.define('A', ActuallyItems.CANOLA)
.define('I', ActuallyBlocks.IRON_CASING.getItem())
.save(recipeOutput);
//Coal generator.
Recipe.shaped(ActuallyBlocks.COAL_GENERATOR.getItem())
.pattern("CIC","CAC","CIC")
.define('C', Tags.Items.COBBLESTONE)
.define('A', Items.COAL)
.define('I', ActuallyBlocks.IRON_CASING.getItem())
.save(recipeOutput);
// Auto breaker.
Recipe.shaped(ActuallyBlocks.BREAKER.getItem())
.pattern("CCC","CXV","CCC")
.define('C', Tags.Items.COBBLESTONE)
.define('V', ActuallyItems.VOID_CRYSTAL)
.define('X', ActuallyItems.BASIC_COIL)
.save(recipeOutput);
// Auto placer.
Recipe.shaped(ActuallyBlocks.PLACER.getItem())
.pattern("CCC", "CXP", "CCC")
.define('C', Tags.Items.COBBLESTONE)
.define('P', ActuallyItems.PALIS_CRYSTAL)
.define('X', ActuallyItems.BASIC_COIL)
.save(recipeOutput);
// Dropper
Recipe.shaped(ActuallyBlocks.DROPPER.getItem())
.pattern("CPC", "CDA", "CPC")
.define('C', Tags.Items.COBBLESTONE)
.define('P', ActuallyItems.PALIS_CRYSTAL)
.define('D', Items.DROPPER)
.define('A', ActuallyItems.ADVANCED_COIL)
.save(recipeOutput);
// Fluid Placer
Recipe.shaped(ActuallyBlocks.FLUID_PLACER.getItem())
.pattern("BPB")
.define('B', Items.BUCKET)
.define('P', ActuallyBlocks.PLACER.get())
.save(recipeOutput);
// Fluid Collector
Recipe.shaped(ActuallyBlocks.FLUID_COLLECTOR.getItem())
.pattern("BFB")
.define('B', Items.BUCKET)
.define('F', ActuallyBlocks.BREAKER.get())
.save(recipeOutput);
// Powered furnace.
Recipe.shaped(ActuallyBlocks.POWERED_FURNACE.getItem())
.pattern("EXC", "FIF", "CXE")
.define('E', ActuallyItems.ENORI_CRYSTAL)
.define('X', ActuallyItems.BASIC_COIL)
.define('C', Tags.Items.COBBLESTONE)
.define('F', Items.FURNACE)
.define('I', ActuallyBlocks.IRON_CASING.getItem())
.save(recipeOutput);
2024-03-09 18:41:37 +01:00
// Greenhouse glass
Recipe.shaped(ActuallyBlocks.GREENHOUSE_GLASS.getItem(), 2)
.pattern("GSG", "SES", "GSG")
.define('G', Tags.Items.GLASS)
.define('S', ItemTags.SAPLINGS)
.define('E', ActuallyItems.EMPOWERED_PALIS_CRYSTAL)
.save(recipeOutput);
2024-03-09 22:59:45 +01:00
// Block of Black Quartz
Recipe.shaped(ActuallyBlocks.BLACK_QUARTZ.getItem())
.pattern("BB", "BB")
.define('B', ActuallyItems.BLACK_QUARTZ)
.save(recipeOutput);
// Pillar of Black Quartz
Recipe.shaped(ActuallyBlocks.BLACK_QUARTZ_PILLAR.getItem())
.pattern("B", "B")
.define('B', ActuallyItems.BLACK_QUARTZ)
.save(recipeOutput);
// Chiseled Block of Black Quartz
Recipe.shaped(ActuallyBlocks.CHISELED_BLACK_QUARTZ.getItem(), 2)
.pattern("B", "B")
.define('B', ActuallyBlocks.BLACK_QUARTZ.getItem())
.save(recipeOutput);
// Lava Factory Controller
Recipe.shaped(ActuallyBlocks.LAVA_FACTORY_CONTROLLER.getItem())
.pattern("ACA", "EAE", "BBB")
.define('B', Items.LAVA_BUCKET)
.define('A', ActuallyItems.ADVANCED_COIL.get())
.define('E', ActuallyBlocks.EMPOWERED_ENORI_CRYSTAL.get())
.define('C', ActuallyBlocks.IRON_CASING.get())
.save(recipeOutput);
// Lava Casing
Recipe.shaped(ActuallyBlocks.LAVA_FACTORY_CASING.getItem(), 32)
.pattern("ECE")
.define('E', ActuallyBlocks.ENORI_CRYSTAL.get())
.define('C', ActuallyBlocks.IRON_CASING.get())
.save(recipeOutput);
2024-03-10 23:10:39 +01:00
// Ranged Collector
Recipe.shaped(ActuallyBlocks.RANGED_COLLECTOR.getItem())
.pattern(" V ", "EHE", " C ")
.define('V', ActuallyItems.VOID_CRYSTAL.get())
.define('E', Tags.Items.ENDER_PEARLS)
.define('H', Items.HOPPER)
.define('C', ActuallyBlocks.IRON_CASING.get())
.save(recipeOutput);
// Crusher
Recipe.shaped(ActuallyBlocks.CRUSHER.getItem())
.pattern("RFC", "BIB", "CFR")
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
.define('F', Items.FLINT)
.define('C', Tags.Items.COBBLESTONE)
.define('I', ActuallyBlocks.IRON_CASING.get())
.define('B', ActuallyItems.BASIC_COIL.get())
.save(recipeOutput);
// Double Crusher
Recipe.shaped(ActuallyBlocks.CRUSHER_DOUBLE.getItem())
.pattern("SAS", "CIC", "SAS")
.define('S', Tags.Items.COBBLESTONE)
.define('A', ActuallyItems.ADVANCED_COIL.get())
.define('C', ActuallyBlocks.CRUSHER.get())
.define('I', ActuallyBlocks.IRON_CASING.get())
.save(recipeOutput);
// Energizer
Recipe.shaped(ActuallyBlocks.ENERGIZER.getItem())
.pattern("R R", "AIA", "R R")
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
.define('A', ActuallyItems.ADVANCED_COIL.get())
.define('I', ActuallyBlocks.IRON_CASING.get())
.save(recipeOutput);
// Enervator
Recipe.shaped(ActuallyBlocks.ENERVATOR.getItem())
.pattern(" R ", "AIA", " R ")
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
.define('A', ActuallyItems.ADVANCED_COIL.get())
.define('I', ActuallyBlocks.IRON_CASING.get())
.save(recipeOutput);
2024-03-11 22:18:00 +01:00
// Leaf-eating Generator
Recipe.shaped(ActuallyBlocks.LEAF_GENERATOR.getItem())
.pattern("CIC", "ELE", "CAC")
.define('C', ActuallyItems.ENORI_CRYSTAL.get())
.define('I', ActuallyBlocks.IRON_CASING.get())
.define('E', ActuallyBlocks.EMPOWERED_RESTONIA_CRYSTAL.get())
.define('L', ItemTags.LEAVES)
.define('A', ActuallyItems.ADVANCED_COIL.get())
.save(recipeOutput);
// Phantom Itemface
Recipe.shaped(ActuallyBlocks.PHANTOM_ITEMFACE.getItem())
.pattern(" C ", "DED", " A ")
.define('C', Tags.Items.CHESTS_WOODEN)
.define('D', ActuallyItems.EMPOWERED_DIAMATINE_CRYSTAL)
.define('E', ActuallyBlocks.ENDER_CASING.get())
.define('A', ActuallyItems.ADVANCED_COIL.get())
.save(recipeOutput);
// Phantom Liquiface
Recipe.shaped(ActuallyBlocks.PHANTOM_LIQUIFACE.getItem())
.pattern("BIB")
.define('B', Items.BUCKET)
.define('I', ActuallyBlocks.PHANTOM_ITEMFACE.get())
.save(recipeOutput);
// Phantom Energyface
Recipe.shaped(ActuallyBlocks.PHANTOM_ENERGYFACE.getItem())
.pattern(" R ", "RIR", " R ")
.define('R', ActuallyItems.EMPOWERED_RESTONIA_CRYSTAL)
.define('I', ActuallyBlocks.PHANTOM_ITEMFACE.get())
.save(recipeOutput);
// Phantom Redstoneface
Recipe.shaped(ActuallyBlocks.PHANTOM_REDSTONEFACE.getItem())
.pattern("DRD", "RIR", "DRD")
.define('D', Tags.Items.DUSTS_REDSTONE)
.define('R', ActuallyItems.EMPOWERED_RESTONIA_CRYSTAL)
.define('I', ActuallyBlocks.PHANTOM_ITEMFACE.get())
.save(recipeOutput);
// Phantom Booster
Recipe.shaped(ActuallyBlocks.PHANTOM_BOOSTER.getItem())
.pattern("RDR", "DCD", "RDR")
.define('D', ActuallyItems.DIAMATINE_CRYSTAL)
.define('R', ActuallyItems.RESTONIA_CRYSTAL)
.define('C', ActuallyBlocks.ENDER_CASING.getItem())
.save(recipeOutput);
2024-03-12 16:39:36 +01:00
// Automatic Feeder
Recipe.shaped(ActuallyBlocks.FEEDER.getItem())
.pattern("PGP", "BCB", "PGP")
.define('P', ItemTags.PLANKS)
.define('G', Items.GOLDEN_CARROT)
.define('B', ActuallyItems.BASIC_COIL)
.define('C', ActuallyBlocks.WOOD_CASING.getItem())
.save(recipeOutput);
}
public static class Recipe {
2024-03-02 21:23:08 +01:00
public static Shapeless shapeless(ItemLike result) {
return new Shapeless(result);
}
2024-03-02 21:23:08 +01:00
public static Shapeless shapeless(ItemLike result, int count) {
return new Shapeless(result, count);
}
2024-03-02 21:23:08 +01:00
public static Shaped shaped(ItemLike result) {
return new Shaped(result);
}
2024-03-02 21:23:08 +01:00
public static Shaped shaped(ItemLike result, int count) {
return new Shaped(result, count);
}
2024-03-04 20:21:48 +01:00
public static void stairs(ItemLike result, ItemLike resource, RecipeOutput consumer) {
Recipe.shaped(result).patternSingleKey('Q', resource, "Q ", "QQ ", "QQQ").save(consumer);
}
2024-03-04 20:21:48 +01:00
public static void wall(ItemLike result, ItemLike resource, RecipeOutput consumer) {
Recipe.shaped(result).patternSingleKey('Q', resource, "QQQ", "QQQ").save(consumer);
}
2024-03-04 20:21:48 +01:00
public static void slab(ItemLike result, ItemLike resource, RecipeOutput consumer) {
Recipe.shaped(result).patternSingleKey('Q', resource, "QQQ").save(consumer);
}
private static class Shapeless extends ShapelessRecipeBuilder {
2024-03-02 21:23:08 +01:00
public Shapeless(ItemLike result) {
this(result, 1);
}
2024-03-02 21:23:08 +01:00
public Shapeless(ItemLike result, int countIn) {
2024-03-03 01:20:53 +01:00
super(RecipeCategory.MISC, result, countIn);
}
2024-03-02 21:23:08 +01:00
public Shapeless ingredients(ItemLike... ingredients) {
Arrays.asList(ingredients).forEach(this::requires);
return this;
}
@Override
2024-03-04 20:21:48 +01:00
public void save(RecipeOutput consumer) {
this.unlockedBy("has_book", has(ActuallyItems.ITEM_BOOKLET.get()));
super.save(consumer);
}
}
private static class Shaped extends ShapedRecipeBuilder {
2024-03-02 21:23:08 +01:00
public Shaped(ItemLike resultIn) {
this(resultIn, 1);
}
2024-03-02 21:23:08 +01:00
public Shaped(ItemLike resultIn, int countIn) {
2024-03-03 01:20:53 +01:00
super(RecipeCategory.MISC, resultIn, countIn);
}
public Shaped pattern(String line1, String line2, String line3) {
this.pattern(line1);
this.pattern(line2);
this.pattern(line3);
return this;
}
public Shaped pattern(String line1, String line2) {
this.pattern(line1);
this.pattern(line2);
return this;
}
2024-03-02 21:23:08 +01:00
public Shaped patternSingleKey(char key, ItemLike resource, String... lines) {
this.define(key, resource);
for (String line : lines) {
this.pattern(line);
}
return this;
}
@Override
2024-03-04 20:21:48 +01:00
public void save(RecipeOutput consumerIn) {
this.unlockedBy("has_book", has(ActuallyItems.ITEM_BOOKLET.get()));
super.save(consumerIn);
}
}
}
}