From 8217dcfb1f8919e2a82ff8404af116c2ac8546ae Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 26 May 2024 21:16:43 +0200 Subject: [PATCH] shut the fuck up --- changelog | 13 + gradle.properties | 2 +- .../hbm/config/CustomMachineConfigJSON.java | 3 +- .../java/com/hbm/crafting/ArmorRecipes.java | 29 +- .../com/hbm/crafting/ConsumableRecipes.java | 12 +- .../java/com/hbm/crafting/RodRecipes.java | 3 +- .../com/hbm/crafting/SmeltingRecipes.java | 11 +- .../java/com/hbm/crafting/ToolRecipes.java | 33 +- .../java/com/hbm/crafting/WeaponRecipes.java | 38 +-- .../entity/missile/EntityMissileShuttle.java | 1 - .../entity/missile/EntityMissileTier0.java | 1 - .../entity/missile/EntityMissileTier1.java | 1 - .../entity/missile/EntityMissileTier2.java | 1 - .../entity/missile/EntityMissileTier3.java | 1 - .../entity/missile/EntityMissileTier4.java | 2 - .../com/hbm/entity/mob/EntityCyberCrab.java | 235 ++++++------- .../com/hbm/handler/BobmazonOfferFactory.java | 4 - .../handler/nei/SolderingStationHandler.java | 1 - .../com/hbm/inventory/OreDictManager.java | 9 +- .../java/com/hbm/inventory/RecipesCommon.java | 5 + .../container/ContainerMachineArcFurnace.java | 2 +- .../ContainerMachineArcFurnaceLarge.java | 36 +- .../container/ContainerMachineArcWelder.java | 2 +- .../ContainerMachineSolderingStation.java | 48 ++- .../inventory/recipes/AssemblerRecipes.java | 316 +++++++++--------- .../inventory/recipes/CentrifugeRecipes.java | 6 + .../hbm/inventory/recipes/MagicRecipes.java | 3 +- .../hbm/inventory/recipes/PressRecipes.java | 4 - .../inventory/recipes/ShredderRecipes.java | 2 - .../inventory/recipes/SolderingRecipes.java | 97 +++++- .../inventory/recipes/anvil/AnvilRecipes.java | 146 ++------ .../recipes/loader/SerializableRecipe.java | 2 +- .../com/hbm/itempool/ItemPoolsComponent.java | 8 +- .../com/hbm/itempool/ItemPoolsLegacy.java | 13 +- .../com/hbm/itempool/ItemPoolsSingle.java | 15 +- src/main/java/com/hbm/items/ModItems.java | 21 +- .../java/com/hbm/items/food/ItemBDCL.java | 26 +- .../com/hbm/items/machine/ItemCircuit.java | 29 ++ .../com/hbm/items/special/ItemStarterKit.java | 8 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 176 +++++----- src/main/java/com/hbm/main/MainRegistry.java | 1 + src/main/java/com/hbm/main/NEIConfig.java | 4 +- .../deco/TileEntityLanternBehemoth.java | 10 +- .../hbm/tileentity/machine/TileEntityFEL.java | 2 +- .../machine/TileEntityMachineArcFurnace.java | 8 +- .../TileEntityMachineArcFurnaceLarge.java | 68 +++- .../machine/TileEntityMachineArcWelder.java | 10 + .../TileEntityMachineSolderingStation.java | 12 +- src/main/resources/META-INF/HBM_at.cfg | 3 + src/main/resources/assets/hbm/lang/de_DE.lang | 8 + src/main/resources/assets/hbm/lang/en_US.lang | 8 + src/main/resources/assets/hbm/sounds.json | 2 + .../assets/hbm/sounds/player/groan1.ogg | Bin 0 -> 15655 bytes .../assets/hbm/sounds/player/groan2.ogg | Bin 0 -> 19212 bytes .../assets/hbm/sounds/player/groan3.ogg | Bin 0 -> 15311 bytes .../assets/hbm/sounds/player/gulp1.ogg | Bin 0 -> 27515 bytes .../assets/hbm/sounds/player/gulp2.ogg | Bin 0 -> 34757 bytes .../assets/hbm/sounds/player/gulp3.ogg | Bin 0 -> 57530 bytes .../assets/hbm/sounds/player/gulp4.ogg | Bin 0 -> 16736 bytes .../assets/hbm/textures/armor/axepack.png | Bin 2343 -> 2487 bytes .../textures/items/icf_pellet_depleted.png | Bin 0 -> 503 bytes .../textures/models/machines/arc_furnace.png | Bin 28461 -> 28482 bytes 63 files changed, 847 insertions(+), 656 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/player/groan1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/player/groan2.ogg create mode 100644 src/main/resources/assets/hbm/sounds/player/groan3.ogg create mode 100644 src/main/resources/assets/hbm/sounds/player/gulp1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/player/gulp2.ogg create mode 100644 src/main/resources/assets/hbm/sounds/player/gulp3.ogg create mode 100644 src/main/resources/assets/hbm/sounds/player/gulp4.ogg create mode 100644 src/main/resources/assets/hbm/textures/items/icf_pellet_depleted.png diff --git a/changelog b/changelog index ff9332625..51b49850a 100644 --- a/changelog +++ b/changelog @@ -4,6 +4,15 @@ * Solid mode smelts items like a furnace, however to work the recipe needs an ingredient or result that is oredicted as either an ore, block, ingot or plate * Liquid mode smelts items like a crucible would, effectively liquiefying metals. Non-castable materials are voided * Both modes have arc furnace exclusive recipes (smelting sand/quartz/fiberglass into silicon) + * Can be upgraded only with regular speed upgrades +* Soldering station + * Works similar to arc welders + * Used to assemble circuits from parts +* New circuits + * The old circuits will be phased out, the items remain but can be recycled + * Circuits use an entirely new approach for crafting, instead of upgrading tiers constantly, all circuits are made from common parts + * Circuits can be automated entirely with only autocrafters, presses and the soldering station, no assembler or chemplant required + * Legacy circuits can be recycled in any anvil, yielding the roughly equivalent new circuit ## Changed * Updated russian and italian localization @@ -18,6 +27,8 @@ * Wires now use the autogen system and are oredicted with the "wireFine" prefix (equivalent to GT fine wires, 1/8 of an ingot) * Removed the assembler recipes for wires * Increased the maximum durability for all stamps +* All upgrades now use the soldering station for their recipes, except for overdrive +* Overdrive upgrade recipes have been rebalanced ## Fixed * Fixed missing localization for meteorite ores and the new crucible materials @@ -27,3 +38,5 @@ * Fixed RBMK fuel xenon burn function being described wrong * When converting ComparableStacks to ItemStacks, there is now a check that replaces null items with the nothing placeholder, fixing crashes caused by incorrect recipe configuration * Fixed item icon lighting in the anvil's search field +* Fixed custom machine NEI handlers (again) +* Fixed FEL making sounds when turned on but not actually active diff --git a/gradle.properties b/gradle.properties index d5142bc37..8e5f10ced 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4963 +mod_build_number=4977 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index aab315abd..87c67dfd3 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -24,6 +24,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.main.CraftingManager; import com.hbm.main.MainRegistry; @@ -90,7 +91,7 @@ public class CustomMachineConfigJSON { SerializableRecipe.writeAStack(new OreDictStack(OreDictManager.STEEL.plate()), writer); writer.setIndent(""); writer.value("C"); - SerializableRecipe.writeAStack(new ComparableStack(ModItems.circuit_aluminium), writer); + SerializableRecipe.writeAStack(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), writer); writer.endArray().setIndent(" "); writer.name("components").beginArray(); diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 9db013cea..d8c87323d 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -8,6 +8,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumLegendaryType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.main.CraftingManager; import net.minecraft.init.Blocks; @@ -63,11 +64,11 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.zirconium_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ZR.ingot() }); //Power armor - CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ANY_RUBBER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'I', ANY_RUBBER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_boots }); @@ -75,12 +76,12 @@ public class ArmorRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_plate, 1), new Object[] { ModItems.ajr_plate, KEY_RED, KEY_BLACK }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_legs, 1), new Object[] { ModItems.ajr_legs, KEY_RED, KEY_BLACK }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_boots, 1), new Object[] { ModItems.ajr_boots, KEY_RED, KEY_BLACK }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', ModItems.circuit_targeting_tier4, 'I', STAR.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', ModItems.circuit_targeting_tier5 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', STAR.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.getID()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_boots }); @@ -88,7 +89,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_legs, 1), new Object[] { "MPM", "PBP", "PDP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_legs, 'D', ModItems.billet_polonium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_boots, 1), new Object[] { "PDP", "PBP", 'P', ModItems.plate_armor_fau, 'D', ModItems.billet_polonium, 'B', ModItems.starmetal_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_helmet, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_helmet, 'C', ModItems.circuit_targeting_tier6 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_helmet, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_helmet, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_plate, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_plate_jetpack, 'C', ModItems.singularity_spark }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_legs, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_legs, 'C', ModItems.coin_worm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_boots, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_boots, 'C', ModItems.demon_core_closed }); @@ -100,11 +101,11 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_plate, 1), new Object[] { "C C", "DXD", "CFC", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_plate, 'F', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_legs, 1), new Object[] { "CCC", "DXD", "C C", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_boots, 1), new Object[] { "C C", "DXD", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_helmet, 1), new Object[] { "W W", "W W", "SCS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3, 'D', ModBlocks.machine_diesel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_helmet, 1), new Object[] { "W W", "W W", "SCS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'D', ModBlocks.machine_diesel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_legs, 1), new Object[] { "M M", "S S", "W W", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_boots, 1), new Object[] { "W W", "S S", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_helmet, 1), new Object[] { "TCT", "TGT", "RRR", 'T', TI.plate(), 'C', ModItems.circuit_red_copper, 'G', KEY_ANYPANE, 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_helmet, 1), new Object[] { "TCT", "TGT", "RRR", 'T', TI.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'G', KEY_ANYPANE, 'R', RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_plate, 1), new Object[] { "T T", "TCT", "RRR", 'T', TI.plate(), 'C', TI.plateCast(), 'R', RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_legs, 1), new Object[] { "TCT", "R R", "T T", 'T', TI.plate(), 'C', TI.plateCast(), 'R', RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_boots, 1), new Object[] { "R R", "T T", 'T', TI.plate(), 'R', RUBBER.ingot() }); @@ -122,10 +123,10 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.plate_euphemium }); //Jetpacks - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', ModItems.circuit_targeting_tier1, 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', ModItems.circuit_targeting_tier2, 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', DURA.bolt() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', ModItems.circuit_targeting_tier4, 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', CU.plateCast() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', CU.plateCast() }); //Hazmat CraftingManager.addRecipeAuto(new ItemStack(ModItems.hazmat_helmet, 1), new Object[] { "EEE", "EIE", " P ", 'E', ModItems.hazmat_cloth, 'I', KEY_ANYPANE, 'P', IRON.plate() }); @@ -172,7 +173,7 @@ public class ArmorRecipes { //Capes CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_radiation, 1), new Object[] { "W W", "WIW", "WDW", 'W', new ItemStack(Blocks.wool, 1, 11), 'D', KEY_YELLOW, 'I', ModItems.nuclear_waste }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_gasmask, 1), new Object[] { "W W", "WIW", "WDW", 'W', new ItemStack(Blocks.wool, 1, 4), 'D', KEY_BLACK, 'I', ModItems.gas_mask }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_schrabidium, 1), new Object[] { "W W", "WIW", "WDW", 'W', SA326.ingot(), 'D', KEY_BLACK, 'I', ModItems.circuit_red_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_schrabidium, 1), new Object[] { "W W", "WIW", "WDW", 'W', SA326.ingot(), 'D', KEY_BLACK, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); //Configged if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleArmorRecipes) { diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index d06966b2a..6f0d2e9d8 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -2,8 +2,10 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ItemEnums; import com.hbm.items.ModItems; import com.hbm.main.CraftingManager; @@ -191,20 +193,20 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bathwater_mk2, 1), new Object[] { "MWM", "WBW", "MWM", 'M', ModItems.bottle_mercury, 'W', ModItems.nuclear_waste, 'B', ModItems.bathwater }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.back_tesla, 1), new Object[] { "DGD", "GTG", "DGD", 'D', ModItems.ducttape, 'G', GOLD.wireFine(), 'T', ModBlocks.tesla }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.medal_liquidator, 1), new Object[] { "GBG", "BFB", "GBG", 'G', AU198.nugget(), 'B', B.ingot(), 'F', ModItems.debris_fuel }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.injector_5htp, 1), new Object[] { ModItems.five_htp, ModItems.circuit_targeting_tier1, BIGMT.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.injector_5htp, 1), new Object[] { ModItems.five_htp, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), BIGMT.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.injector_knife, 1), new Object[] { ModItems.injector_5htp, Items.iron_sword }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.shackles, 1), new Object[] { "CIC", "C C", "I I", 'I', ModItems.ingot_chainsteel, 'C', ModBlocks.chain }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.black_diamond, 1), new Object[] { "NIN", "IGI", "NIN", 'N', AU198.nugget(), 'I', ModItems.ink, 'G', VOLCANIC.gem() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.protection_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', DIAMOND.gem() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteor_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', VOLCANIC.gem() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.neutrino_lens, 1), new Object[] { "PSP", "SCS", "PSP", 'P', ANY_PLASTIC.ingot(), 'S', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', ModItems.circuit_aluminium, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.neutrino_lens, 1), new Object[] { "PSP", "SCS", "PSP", 'P', ANY_PLASTIC.ingot(), 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'I', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser_gold, 1), new Object[] { "GPG", "PRP", "GPG", 'G', Items.gunpowder, 'P', GOLD.plate(), 'R', "record" }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ballistic_gauntlet, 1), new Object[] { " WS", "WRS", " RS", 'W', CU.wireFine(), 'R', ModItems.ring_starmetal, 'S', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.night_vision, 1), "P P", "GCG", 'P', ANY_PLASTIC.ingot(), 'G', KEY_ANYGLASS, 'C', ModItems.circuit_gold); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.night_vision, 1), "P P", "GCG", 'P', ANY_PLASTIC.ingot(), 'G', KEY_ANYGLASS, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC)); //Stealth boy - CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', ModItems.circuit_red_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); //RD40 Filters CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_filter, 1), new Object[] { "I", "F", 'F', ModItems.filter_coal, 'I', IRON.plate() }); diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index c60bb8236..bd15c0322 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -3,6 +3,7 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; @@ -92,7 +93,7 @@ public class RodRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_source, 1), new Object[] { " U ", "PUP", " U ", 'P', IRON.plate(), 'U', ModItems.billet_ra226be }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_boron, 1), new Object[] { " B ", " W ", " B ", 'B', B.ingot(), 'W', KEY_PLANKS }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.pile_rod_lithium, 1), new Object[] { ModItems.cell_empty, LI.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_detector, 1), new Object[] { " B ", "CM ", " B ", 'B', B.ingot(), 'C', ModItems.circuit_aluminium, 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_detector, 1), new Object[] { " B ", "CM ", " B ", 'B', B.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_fuel_empty, 1), new Object[] { "ZRZ", "Z Z", "ZRZ", 'Z', ZR.ingot(), 'R', ModItems.rod_quad_empty }); addRBMKRod(U, ModItems.rbmk_fuel_ueu); diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 56d9e1c77..0367c6a04 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -5,6 +5,7 @@ import com.hbm.blocks.BlockEnums.EnumMeteorType; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ItemEnums.EnumCokeType; @@ -108,6 +109,11 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_cadmium, new ItemStack(ModItems.ingot_cadmium), 1.0F); GameRegistry.addSmelting(ModItems.ball_resin, new ItemStack(ModItems.ingot_biorubber), 0.1F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.GRAPHITE), new ItemStack(ModItems.ingot_graphite), 3.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.LANTHANIUM), new ItemStack(ModItems.ingot_lanthanium), 3.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.DESH), new ItemStack(ModItems.ingot_desh), 3.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.SATURNITE), new ItemStack(ModItems.ingot_saturnite), 3.0F); + GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F); GameRegistry.addSmelting(ModItems.rag_damp, new ItemStack(ModItems.rag), 0.1F); GameRegistry.addSmelting(ModItems.rag_piss, new ItemStack(ModItems.rag), 0.1F); @@ -165,11 +171,6 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.casing_50, new ItemStack(ModItems.ingot_copper), 0.1F); GameRegistry.addSmelting(ModItems.casing_buckshot, new ItemStack(ModItems.ingot_copper), 0.1F); - GameRegistry.addSmelting(ModItems.circuit_schrabidium, new ItemStack(ModItems.circuit_gold, 1), 1.0F); - GameRegistry.addSmelting(ModItems.circuit_gold, new ItemStack(ModItems.circuit_red_copper, 1), 1.0F); - GameRegistry.addSmelting(ModItems.circuit_red_copper, new ItemStack(ModItems.circuit_copper, 1), 1.0F); - GameRegistry.addSmelting(ModItems.circuit_copper, new ItemStack(ModItems.circuit_aluminium, 1), 1.0F); - GameRegistry.addSmelting(ModItems.ingot_chainsteel, ItemHot.heatUp(new ItemStack(ModItems.ingot_chainsteel)), 0.0F); GameRegistry.addSmelting(ModItems.ingot_meteorite, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite)), 0.0F); GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 0.0F); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 0635c4d81..9b9f95a4d 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -10,6 +10,7 @@ import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.tool.ItemBlowtorch; import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart.EnumCartBase; @@ -73,8 +74,8 @@ public class ToolRecipes { //Drax CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax, 1), new Object[] { "BDS", "CDC", "FMF", 'B', ModItems.starmetal_pickaxe, 'S', ModItems.starmetal_shovel, 'C', CO.ingot(), 'F', ModItems.fusion_core, 'D', DESH.ingot(), 'M', ModItems.motor_desh }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk2, 1), new Object[] { "SCS", "IDI", "FEF", 'S', STAR.ingot(), 'C', ModItems.crystal_trixite, 'I', BIGMT.ingot(), 'D', ModItems.drax, 'F', ModItems.fusion_core, 'E', ModItems.circuit_targeting_tier5 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk3, 1), new Object[] { "ECE", "CDC", "SBS", 'E', ModBlocks.block_euphemium_cluster, 'C', ModItems.crystal_schrabidium, 'D', ModItems.drax_mk2, 'S', ModItems.circuit_targeting_tier6, 'B', ItemBattery.getFullBattery(ModItems.battery_spark) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk2, 1), new Object[] { "SCS", "IDI", "FEF", 'S', STAR.ingot(), 'C', ModItems.crystal_trixite, 'I', BIGMT.ingot(), 'D', ModItems.drax, 'F', ModItems.fusion_core, 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk3, 1), new Object[] { "ECE", "CDC", "SBS", 'E', ModBlocks.block_euphemium_cluster, 'C', ModItems.crystal_schrabidium, 'D', ModItems.drax_mk2, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ItemBattery.getFullBattery(ModItems.battery_spark) }); //Super pickaxes CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); @@ -117,29 +118,29 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ullapool_caber, 1), new Object[] { "ITI", " S ", " S ", 'I', IRON.plate(), 'T', Blocks.tnt, 'S', KEY_STICK }); //Utility - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', ModItems.circuit_red_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.designator, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', PB.plate(), 'B', ModItems.circuit_gold, 'C', ModItems.designator }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { "M", "C", "P", 'M', ModItems.magnetron, 'C', ModItems.circuit_gold, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', ModItems.circuit_gold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', GOLD.wireFine(), 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate528() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', GOLD.wireFine(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', GOLD.wireFine(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', GOLD.wireFine(), 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.designator, 'I', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', PB.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'C', ModItems.designator }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { "M", "C", "P", 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', GOLD.wireFine(), 'I', CU.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', STEEL.plate528() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', GOLD.wireFine(), 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', GOLD.wireFine(), 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'S', STEEL.plate528(), 'G', GOLD.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', GOLD.wireFine(), 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ANY_RUBBER.ingot(), 'G', KEY_CLEARGLASS}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron}); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_laboratory, 1), new Object[] { " C", " R ", "P ", 'C', ModItems.circuit_aluminium, 'R', RUBBER.ingot(), 'P', ModItems.pipette_boron }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_laboratory, 1), new Object[] { " C", " R ", "P ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'R', RUBBER.ingot(), 'P', ModItems.pipette_boron }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.siphon, 1), new Object[] { " GR", " GR", " G ", 'G', KEY_CLEARGLASS, 'R', ANY_RUBBER.ingot()}); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 60749a384..083042da0 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -9,6 +9,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.food.ItemConserve.EnumFoodType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92Cell; import com.hbm.main.CraftingManager; @@ -56,26 +57,23 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_15_kerosene }); //Missile warheads - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_warhead_15_boxcar, 1), new Object[] { "SNS", "CBC", "SFS", 'S', STAR.ingot(), 'N', ModBlocks.det_nuke, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.boxcar, 'F', ModItems.tritium_deuterium_cake }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_warhead_15_boxcar, 1), new Object[] { "SNS", "CBC", "SFS", 'S', STAR.ingot(), 'N', ModBlocks.det_nuke, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.boxcar, 'F', ModItems.tritium_deuterium_cake }); //Missile chips - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier1, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier2, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier3, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier4, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier5, 'S', ModBlocks.steel_scaffold }); - - //Turrets - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', ModItems.circuit_red_copper, 'D', ModItems.crt_display }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModBlocks.steel_scaffold }); //Guns CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_rpg, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', IRON.plate(), 'M', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', STEEL.shell(), 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', STEEL.pipe(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', STEEL.pipe(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', STEEL.shell(), 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', STEEL.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', AL.shell(), 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver, 1), new Object[] { "SSM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', AL.wireFine(), 'M', ModItems.mechanism_revolver_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_saturnite, 1), new Object[] { "SSM", " RW", 'S', BIGMT.plate(), 'W', KEY_PLANKS, 'R', W.wireFine(), 'M', ModItems.mechanism_revolver_2 }); @@ -121,7 +119,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', KNO.dust(), 'P', Items.snowball }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.powder_ice }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp, 1), new Object[] { "EEE", "SSM", "III", 'E', EUPH.ingot(), 'S', STEEL.plate(), 'I', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp, 1), new Object[] { "CPG", "CMF", "CPI", 'C', ModItems.coil_copper, 'P', PB.plate(), 'G', ModItems.circuit_gold, 'M', ModItems.magnetron, 'I', W.ingot(), 'F', ModItems.mechanism_special }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp, 1), new Object[] { "CPG", "CMF", "CPI", 'C', ModItems.coil_copper, 'P', PB.plate(), 'G', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', ModItems.magnetron, 'I', W.ingot(), 'F', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp_ammo, 8), new Object[] { "IGI", "IPI", "IPI", 'G', GOLD.plate(), 'I', IRON.plate(), 'P', ModItems.powder_power }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_jack, 1), new Object[] { "WW ", "TSD", " TT", 'W', "ingotWeidanium", 'T', ModItems.toothpicks, 'S', ModItems.gun_uboinik, 'D', ModItems.ducttape }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_jack_ammo, 1), new Object[] { ModItems.ammo_12gauge, ModItems.ammo_12gauge, ModItems.ammo_12gauge, ModItems.ammo_12gauge }); @@ -138,7 +136,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action, 1), new Object[] { "PPI", "SWD", 'P', STEEL.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', CU.wireFine() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action_green, 1), new Object[] { "PPI", "SWD", 'P', IRON.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', CU.wireFine() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action_saturnite, 1), new Object[] { "PPI", "SWD", 'P', BIGMT.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', W.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', ModItems.circuit_targeting_tier6, 'R', ModItems.gun_revolver_schrabidium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'R', ModItems.gun_revolver_schrabidium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b93), new Object[] { "PCE", "SEB", "PCE", 'P', ModItems.plate_dineutronium, 'C', ModItems.weaponized_starblaster_cell, 'E', ModItems.component_emitter, 'B', ModItems.gun_b92, 'S', ModItems.singularity_spark }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()), GunB92Cell.getFullCell(), CU.wireFine() }); @@ -246,7 +244,7 @@ public class WeaponRecipes { for(FluidType type : chainsawTypes) CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', type.getDict(1000), 'H', STEEL.shell(), 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); //Stinger Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', STEEL.shell()); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', STEEL.shell()); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE), new Object[] { "S", "R", 'S', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_stinger_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY), new Object[] { "S", "R", 'S', P_RED.dust(), 'R', ModItems.ammo_stinger_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR), new Object[] { "RPR", "PSP", "RPR", 'R', ModItems.neutron_reflector, 'P', PU239.nugget(), 'S', ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE) }); @@ -288,7 +286,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 7), new Object[] { "DSD", "SCS", "DSD", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 5), 'C', ModBlocks.det_cord }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 3), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 6), new Object[] { "DSD", "SCS", "DSD", 'D', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 3), 'C', ModBlocks.det_cord }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, ModItems.circuit_red_copper, ModItems.ducttape }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 8), new Object[] { " I ", " S ", "CCC", 'C', ModItems.cordite, 'I', ModItems.sphere_steel, 'S', CU.shell() }); //DGK Belts @@ -346,7 +344,7 @@ public class WeaponRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.BIOFUEL.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_lemon, 1), new Object[] { ModItems.lemon, ModItems.grenade_strong }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_moist_nugget, 12), new Object[] { Items.bread, Items.wheat, Items.cooked_chicken, Items.egg }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_smart, 4), new Object[] { " A ", "ACA", " A ", 'A', ModItems.grenade_strong, 'C', ModItems.circuit_aluminium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_smart, 4), new Object[] { " A ", "ACA", " A ", 'A', ModItems.grenade_strong, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_mirv, 1), new Object[] { "GGG", "GCG", "GGG", 'G', ModItems.grenade_smart, 'C', ModItems.grenade_generic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_breach, 1), new Object[] { "G", "G", "P", 'G', ModItems.grenade_smart, 'P', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_burst, 1), new Object[] { "GGG", "GCG", "GGG", 'G', ModItems.grenade_breach, 'C', ModItems.grenade_generic }); @@ -387,10 +385,10 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', ModItems.undefined, 'B', BIGMT.ingot() }); //Mines - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', ModItems.circuit_targeting_tier2, 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_he, 1), new Object[] { " C ", "PTP", 'C', ModItems.circuit_targeting_tier2, 'P', STEEL.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_shrap, 2), new Object[] { "LLL", " C ", "PTP", 'C', ModItems.circuit_targeting_tier2, 'P', STEEL.plate(), 'T', ModBlocks.det_cord, 'L', ModItems.pellet_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', ModItems.circuit_targeting_tier2, 'D', ModItems.ducttape, 'N', ModItems.ammo_nuke }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_he, 1), new Object[] { " C ", "PTP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_shrap, 2), new Object[] { "LLL", " C ", "PTP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate(), 'T', ModBlocks.det_cord, 'L', ModItems.pellet_buckshot }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'D', ModItems.ducttape, 'N', ModItems.ammo_nuke }); //Nuke parts CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() }); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index 48a0e375c..bdee6f5f4 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -49,7 +49,6 @@ public class EntityMissileShuttle extends EntityMissileBaseNT { list.add(new ItemStack(ModItems.plate_steel, 8)); list.add(new ItemStack(ModItems.thruster_medium, 2)); list.add(new ItemStack(ModItems.canister_empty, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); list.add(new ItemStack(Blocks.glass_pane, 2)); return list; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index 3bc56ae7c..17923d69e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -35,7 +35,6 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { list.add(new ItemStack(ModItems.plate_titanium, 4)); list.add(new ItemStack(ModItems.shell, 2, Mats.MAT_ALUMINIUM.id)); list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); return list; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 93cd9a875..a67ccfe7f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -21,7 +21,6 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { List list = new ArrayList(); list.add(new ItemStack(ModItems.plate_titanium, 4)); list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); return list; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java index 7b291a2da..202db1851 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -24,7 +24,6 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { list.add(new ItemStack(ModItems.plate_steel, 10)); list.add(new ItemStack(ModItems.plate_titanium, 6)); list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); return list; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index 2cb23dc07..d145a5a9e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -26,7 +26,6 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { list.add(new ItemStack(ModItems.plate_steel, 16)); list.add(new ItemStack(ModItems.plate_titanium, 10)); list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); return list; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index ea440d024..ab284113f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -27,7 +27,6 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { list.add(new ItemStack(ModItems.plate_steel, 20)); list.add(new ItemStack(ModItems.plate_aluminium, 12)); list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); return list; } @@ -85,7 +84,6 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { list.add(new ItemStack(ModItems.plate_steel, 20)); list.add(new ItemStack(ModItems.plate_aluminium, 12)); list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); return list; } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_mirv); } diff --git a/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java b/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java index c552a88b2..beddf15e8 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob; import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import api.hbm.entity.IRadiationImmune; @@ -18,150 +17,138 @@ import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityCyberCrab extends EntityMob implements IRangedAttackMob, IRadiationImmune { - - private static final IEntitySelector selector = new IEntitySelector() { + + private static final IEntitySelector selector = new IEntitySelector() { public boolean isEntityApplicable(Entity p_82704_1_) { return !(p_82704_1_ instanceof EntityCyberCrab || p_82704_1_ instanceof EntityCreeper); } }; - public EntityCyberCrab(World p_i1733_1_) - { - super(p_i1733_1_); - this.setSize(0.75F, 0.35F); - this.getNavigator().setAvoidsWater(true); - - if(!(this instanceof EntityTaintCrab)) - this.tasks.addTask(0, new EntityAIPanic(this, 0.75D)); - - this.tasks.addTask(1, new EntityAIWander(this, 0.5F)); - this.tasks.addTask(4, arrowAI()); - this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, true, true, selector)); - } - - protected EntityAIArrowAttack arrowAI() { - return new EntityAIArrowAttack(this, 0.5D, 60, 80, 15.0F); - } + public EntityCyberCrab(World p_i1733_1_) { + super(p_i1733_1_); + this.setSize(0.75F, 0.35F); + this.getNavigator().setAvoidsWater(true); - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(4.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.75F); - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(ModDamageSource.getIsTau(source)) - return false; - - return super.attackEntityFrom(source, amount); + if(!(this instanceof EntityTaintCrab)) + this.tasks.addTask(0, new EntityAIPanic(this, 0.75D)); + + this.tasks.addTask(1, new EntityAIWander(this, 0.5F)); + this.tasks.addTask(4, arrowAI()); + this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, true, true, selector)); } - /** - * Returns true if the newer Entity AI code should be run - */ - @Override - public boolean isAIEnabled() - { - return true; - } + protected EntityAIArrowAttack arrowAI() { + return new EntityAIArrowAttack(this, 0.5D, 60, 80, 15.0F); + } - /** - * The number of iterations PathFinder.getSafePoint will execute before giving up. - */ - @Override - public int getMaxSafePointTries() - { - return this.getAttackTarget() == null ? 3 : 3 + (int)(this.getHealth() - 1.0F); - } + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(4.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.75F); + } - @Override - protected void entityInit() - { - super.entityInit(); - } + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - super.writeEntityToNBT(p_70014_1_); - } + if(ModDamageSource.getIsTau(source)) + return false; - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - super.readEntityFromNBT(p_70037_1_); - } + return super.attackEntityFrom(source, amount); + } - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - - if(this.isInWater() || this.isWet() || this.isBurning()) - this.attackEntityFrom(DamageSource.generic, 10F); - - if(this.getHealth() <= 0) { - this.setDead(); + /** + * Returns true if the newer Entity AI code should be run + */ + @Override + public boolean isAIEnabled() { + return true; + } - if(this instanceof EntityTaintCrab) - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 3F, false); - else - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.1F, false); - } - } + /** + * The number of iterations PathFinder.getSafePoint will execute before + * giving up. + */ + @Override + public int getMaxSafePointTries() { + return this.getAttackTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F); + } - /** - * Returns the sound this mob makes when it is hurt. - */ - @Override - protected String getHurtSound() - { - return "hbm:entity.cybercrab"; - } + @Override + protected void entityInit() { + super.entityInit(); + } - /** - * Returns the sound this mob makes on death. - */ - @Override - protected String getDeathSound() - { - return "hbm:entity.cybercrab"; - } + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) { + super.writeEntityToNBT(p_70014_1_); + } - /** - * Called when the mob's health reaches 0. - */ - @Override - public void onDeath(DamageSource p_70645_1_) - { - super.onDeath(p_70645_1_); - } + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) { + super.readEntityFromNBT(p_70037_1_); + } - @Override - public boolean attackEntityAsMob(Entity p_70652_1_) - { - return true; - } + /** + * Called to update the entity's position/logic. + */ + @Override + public void onUpdate() { + super.onUpdate(); + + if(this.isInWater() || this.isWet() || this.isBurning()) + this.attackEntityFrom(DamageSource.generic, 10F); + + if(this.getHealth() <= 0) { + this.setDead(); + + if(this instanceof EntityTaintCrab) + worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 3F, false); + else + worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.1F, false); + } + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return "hbm:entity.cybercrab"; + } + + /** + * Returns the sound this mob makes on death. + */ + @Override + protected String getDeathSound() { + return "hbm:entity.cybercrab"; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) { + super.onDeath(p_70645_1_); + } + + @Override + public boolean attackEntityAsMob(Entity p_70652_1_) { + return true; + } @Override public void attackEntityWithRangedAttack(EntityLivingBase entity, float f) { @@ -169,7 +156,7 @@ public class EntityCyberCrab extends EntityMob implements IRangedAttackMob, IRad bullet.setIsCritical(true); bullet.setTau(true); bullet.damage = 3; - this.worldObj.spawnEntityInWorld(bullet); - this.playSound("hbm:weapon.sawShoot", 1.0F, 2.0F); + this.worldObj.spawnEntityInWorld(bullet); + this.playSound("hbm:weapon.sawShoot", 1.0F, 2.0F); } } diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 28b1d3d9a..1015bff96 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -63,10 +63,6 @@ public class BobmazonOfferFactory { materials.add(new Offer(new ItemStack(ModItems.gas_full, 1, Fluids.PETROLEUM.getID()), Requirement.OIL, 8 * inflation)); materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 12 * inflation)); materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 25 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 4 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 6 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 10 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 16 * inflation)); materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 4 * inflation)); materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 10 * inflation)); materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 27 * inflation)); diff --git a/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java b/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java index 739b5644a..a48f5f620 100644 --- a/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java +++ b/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java @@ -35,7 +35,6 @@ public class SolderingStationHandler extends NEIUniversalHandler { public void drawExtras(int recipe) { RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); - Object[] original = (Object[]) rec.originalInputInstance; ItemStack output = rec.output[0].item; for(SolderingRecipe sol : SolderingRecipes.recipes) { diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 0b5c5b3ef..0f20e1db2 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -98,8 +98,6 @@ public class OreDictManager { public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset"; public static final String KEY_TOOL_TORCH = "ntmtorch"; - public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; - public static final String KEY_GLYPHID_MEAT = "glyphidMeat"; /* @@ -521,12 +519,6 @@ public class OreDictManager { OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(blowtorch, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(acetylene_torch, 1, OreDictionary.WILDCARD_VALUE)); - /* - * CIRCUITS - */ - OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); - OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); - /* * GLYPHID M E A T */ @@ -631,6 +623,7 @@ public class OreDictManager { OreDictionary.registerOre("blockGlassBlack", glass_ash); OreDictionary.registerOre("container1000lubricant", bdcl); + OreDictionary.registerOre("itemSilicon", billet_silicon); MaterialShapes.registerCompatShapes(); compensateMojangSpaghettiBullshit(); diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 7b472bbda..91ba50303 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -155,6 +155,11 @@ public class RecipesCommon { this.meta = meta; } + public ComparableStack(Item item, int stacksize, Enum meta) { + this(item, stacksize); + this.meta = meta.ordinal(); + } + public ItemStack toStack() { return new ItemStack(item == null ? ModItems.nothing : item, stacksize, meta); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java index 7cf2e32e5..c3dd0c537 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java @@ -65,7 +65,7 @@ public class ContainerMachineArcFurnace extends Container { if(!this.mergeItemStack(stack, 5, 6, false)) return null; - } else if(rStack.getItem() == ModItems.arc_electrode_desh || rStack.getItem() == ModItems.arc_electrode) { + } else if(rStack.getItem() == ModItems.arc_electrode) { if(!this.mergeItemStack(stack, 2, 5, false)) return null; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java index 6354c6afc..d445788e7 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java @@ -1,8 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotNonRetarded; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -39,7 +42,38 @@ public class ContainerMachineArcFurnaceLarge extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - return null; + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 24) { + if(!this.mergeItemStack(stack, 25, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 3, 4, false)) return null; + } else if(rStack.getItem() == ModItems.arc_electrode) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 0, 3, false)) return null; + } else { + if(!this.mergeItemStack(stack, 5, 25, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java index 19ff1155c..17d2b28c8 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java @@ -70,7 +70,7 @@ public class ContainerMachineArcWelder extends Container { if(!this.mergeItemStack(stack, 4, 5, false)) return null; } else if(rStack.getItem() instanceof IItemFluidIdentifier) { if(!this.mergeItemStack(stack, 5, 6, false)) return null; - } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { if(!this.mergeItemStack(stack, 6, 8, false)) return null; } else { if(!this.mergeItemStack(stack, 0, 3, false)) return null; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java index 7d320578c..abb9cba02 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java @@ -1,9 +1,15 @@ package com.hbm.inventory.container; +import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; +import com.hbm.inventory.recipes.SolderingRecipes; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineSolderingStation; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -41,12 +47,46 @@ public class ContainerMachineSolderingStation extends Container { } @Override - public boolean canInteractWith(EntityPlayer player) { - return solderer.isUseableByPlayer(player); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 10) { + if(!this.mergeItemStack(stack, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 7, 8, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 8, 9, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 9, 11, false)) return null; + } else { + for(AStack t : SolderingRecipes.toppings) if(t.matchesRecipe(stack, false)) if(!this.mergeItemStack(stack, 0, 3, false)) return null; + for(AStack t : SolderingRecipes.pcb) if(t.matchesRecipe(stack, false)) if(!this.mergeItemStack(stack, 3, 5, false)) return null; + for(AStack t : SolderingRecipes.solder) if(t.matchesRecipe(stack, false)) if(!this.mergeItemStack(stack, 5, 6, false)) return null; + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; } @Override - public ItemStack transferStackInSlot(EntityPlayer player, int index) { - return null; + public boolean canInteractWith(EntityPlayer player) { + return solderer.isUseableByPlayer(player); } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 1b4555128..bf1370413 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -75,15 +75,15 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 4), new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); - makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new OreDictStack(CU.plateCast(), 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); + makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new OreDictStack(CU.plateCast(), 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); - makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new OreDictStack(AL.shell(), 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200); - makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100); - makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150); - makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4) },200); + makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new OreDictStack(AL.shell(), 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), }, 200); + makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP) },100); + makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) },150); + makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED) },200); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new OreDictStack(P_RED.dust(), 4), },100); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new OreDictStack(P_RED.dust(), 8), },150); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new OreDictStack(P_RED.dust(), 16), },200); @@ -93,55 +93,31 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.warhead_buster_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModBlocks.det_cord, 8), },100); makeRecipe(new ComparableStack(ModItems.warhead_buster_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModBlocks.det_charge, 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_buster_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModBlocks.det_charge, 8), },200); - makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new OreDictStack(MINGRADE.wireFine(), 6), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.circuit_targeting_tier4, 1) },300); - makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3) },500); - makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); - makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_gold), new OreDictStack(STEEL.bolt(), 32) },1200); - makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); - makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new OreDictStack(CU.plateCast(), 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); - makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit_gold, 6), new OreDictStack(RUBBER.ingot(), 6), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(MINGRADE.wireFine(), 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(CU.plateCast(), 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); - makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); - makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); - makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new ComparableStack(ModItems.circuit_gold, 3), new OreDictStack(CMB.ingot(), 22), new OreDictStack(MAGTUNG.wireFine(), 4), },300); + makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new OreDictStack(MINGRADE.wireFine(), 6), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED) },300); + makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED) },500); + makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.CAPACITOR_BOARD.ordinal()) }, 600); + makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(STEEL.bolt(), 32) },1200); + makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel) },600); + makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new OreDictStack(CU.plateCast(), 12), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); + makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); + makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(RUBBER.ingot(), 6), new ComparableStack(Items.diamond, 1), },400); + makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(MINGRADE.wireFine(), 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new ComparableStack(Items.diamond, 1), },400); + makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(CU.plateCast(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); + makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED) },1000); + makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); + makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); + makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); + makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new OreDictStack(CMB.ingot(), 22), new OreDictStack(MAGTUNG.wireFine(), 4), },300); makeRecipe(new ComparableStack(ModItems.chopper_gun, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(CMB.ingot(), 2), new OreDictStack(W.wireFine(), 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 1), new ComparableStack(ModItems.motor, 1), },150); - makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new ComparableStack(ModItems.circuit_gold, 3), new OreDictStack(MAGTUNG.wireFine(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); + makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new OreDictStack(MAGTUNG.wireFine(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); makeRecipe(new ComparableStack(ModItems.chopper_tail, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(CMB.ingot(), 5), new OreDictStack(MAGTUNG.wireFine(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.chopper_blades, 2), },200); makeRecipe(new ComparableStack(ModItems.chopper_wing, 1), new AStack[] {new OreDictStack(CMB.plate(), 6), new OreDictStack(CMB.ingot(), 3), new OreDictStack(MAGTUNG.wireFine(), 2), },150); makeRecipe(new ComparableStack(ModItems.chopper_blades, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CMB.ingot(), 2), },200); - makeRecipe(new ComparableStack(ModItems.circuit_aluminium, 1), new AStack[] {new ComparableStack(ModItems.circuit_raw, 1), },50); - makeRecipe(new ComparableStack(ModItems.circuit_copper, 1), new AStack[] {new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(CU.wireFine(), 4), new OreDictStack(NETHERQUARTZ.dust(), 1), new OreDictStack(CU.plate(), 1), },100); - makeRecipe(new ComparableStack(ModItems.circuit_red_copper, 1), new AStack[] {new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(GOLD.dust(), 1), new ComparableStack(ModItems.plate_polymer, 1), },150); makeRecipe(new ComparableStack(ModItems.crt_display, 8), new AStack[] {new OreDictStack(AL.dust(), 2), new ComparableStack(Blocks.glass_pane, 2), new OreDictStack(W.wireFine(), 4), new OreDictStack(STEEL.shell(), 1) }, 100); makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new OreDictStack(W.wireFine(), 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); - makeRecipe(new ComparableStack(ModItems.upgrade_template, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 1), new OreDictStack(IRON.plate528(), 4), new OreDictStack(CU.plate528(), 2), new OreDictStack(CU.wireFine(), 6), },100); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(MINGRADE.dust(), 4), new OreDictStack(REDSTONE.dust(), 6), new OreDictStack(MINGRADE.wireFine(), 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_2, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DURA.dust(), 4), new OreDictStack(STEEL.dust(), 6), new OreDictStack(MINGRADE.wireFine(), 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_1, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_2, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_power_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(LAPIS.dust(), 4), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(MINGRADE.wireFine(), 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_power_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_1, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 4), new ComparableStack(ModItems.circuit_red_copper, 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_power_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_2, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DIAMOND.dust(), 4), new OreDictStack(IRON.dust(), 6), new OreDictStack(MINGRADE.wireFine(), 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_2, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(ANY_PLASTIC.dust(), 4), new OreDictStack(W.dust(), 6), new OreDictStack(MINGRADE.wireFine(), 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_radius, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DIAMOND.dust(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(DESH.ingot(), 8), new ComparableStack(ModItems.powder_power, 16), new ComparableStack(ModItems.crystal_lithium, 4), new ComparableStack(ModItems.circuit_schrabidium, 1), }, 200); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_1, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 8), new ComparableStack(ModItems.circuit_tantalium, 16), }, 300); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new OreDictStack(ALLOY.wireFine(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); @@ -155,8 +131,8 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] {new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), },200); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(AL.wireFine(), 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); - makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); + makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE.ordinal()), }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); @@ -169,18 +145,18 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.shell(), 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.shell(), 4), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.VACUUM_TUBE.ordinal()) },350); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()) }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), new ComparableStack(ModItems.plate_polymer, 8), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.shell(), 4), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC.ordinal()), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new OreDictStack(DURA.pipe(), 4), new OreDictStack(MINGRADE.ingot(), 12), new OreDictStack(MINGRADE.wireFine(), 24), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(ALLOY.wireFine(), 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); @@ -188,20 +164,20 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); - makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 1), new OreDictStack(GOLD.wireFine(), 6), new OreDictStack("dyeGray", 6), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new OreDictStack(AL.wireFine(), 6), new OreDictStack("dyeBlue", 4), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new OreDictStack(CU.wireFine(), 6), new OreDictStack("dyeYellow", 6), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_mike, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(AL.shell(), 4), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack(GOLD.wireFine(), 18), new OreDictStack("dyeLightGray", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_tsar, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 5), new OreDictStack(GOLD.wireFine(), 24), new OreDictStack(W.wireFine(), 12), new OreDictStack("dyeBlack", 6), },600); - makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] {new ComparableStack(ModItems.dysfunctional_reactor, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new OreDictStack(GOLD.wireFine(), 16), },500); - makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new OreDictStack(AL.shell(), 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new OreDictStack(GOLD.wireFine(), 8), new OreDictStack("dyeWhite", 4), },400); - makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack(GOLD.wireFine(), 10), new OreDictStack(STEEL.pipe(), 16), new OreDictStack("dyeGray", 4), },400); - makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new OreDictStack(STEEL.shell(), 6), new OreDictStack(MAGTUNG.wireFine(), 12), new OreDictStack(STEEL.pipe(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack("dyeBlack", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new OreDictStack(GOLD.wireFine(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600, ModItems.journal_pip, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new OreDictStack(GOLD.wireFine(), 12), new OreDictStack("dyeGray", 4), },300); - makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new OreDictStack(GOLD.wireFine(), 6), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); + makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(GOLD.wireFine(), 6), new OreDictStack("dyeGray", 6), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(AL.wireFine(), 6), new OreDictStack("dyeBlue", 4), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(CU.wireFine(), 6), new OreDictStack("dyeYellow", 6), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_mike, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(AL.shell(), 4), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.circuit, 10, EnumCircuitType.ADVANCED), new OreDictStack(GOLD.wireFine(), 18), new OreDictStack("dyeLightGray", 12), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_tsar, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new OreDictStack(GOLD.wireFine(), 24), new OreDictStack(W.wireFine(), 12), new OreDictStack("dyeBlack", 6), },600); + makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] {new ComparableStack(ModItems.dysfunctional_reactor, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), new OreDictStack(GOLD.wireFine(), 16), },500); + makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new OreDictStack(AL.shell(), 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(GOLD.wireFine(), 8), new OreDictStack("dyeWhite", 4), },400); + makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(GOLD.wireFine(), 10), new OreDictStack(STEEL.pipe(), 16), new OreDictStack("dyeGray", 4), },400); + makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new OreDictStack(STEEL.shell(), 6), new OreDictStack(MAGTUNG.wireFine(), 12), new OreDictStack(STEEL.pipe(), 16), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack("dyeBlack", 12), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new OreDictStack(GOLD.wireFine(), 12), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), new OreDictStack("dyeGray", 6), },600, ModItems.journal_pip, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(GOLD.wireFine(), 12), new OreDictStack("dyeGray", 4), },300); + makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(GOLD.wireFine(), 6), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new ComparableStack(ModItems.coil_gold, 4), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); @@ -210,7 +186,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.grenade_shrapnel, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_buckshot, 1), new OreDictStack(STEEL.plate(), 2), },150); makeRecipe(new ComparableStack(ModItems.grenade_cluster, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_cluster, 1), new OreDictStack(STEEL.plate(), 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_flare, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(Items.glowstone_dust, 1), new OreDictStack(AL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.grenade_electric, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(GOLD.plate(), 2), },200); + makeRecipe(new ComparableStack(ModItems.grenade_electric, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CAPACITOR.ordinal()), new OreDictStack(GOLD.plate(), 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_pulse, 4), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(IRON.plate(), 3), new OreDictStack(MINGRADE.wireFine(), 6), new ComparableStack(Items.diamond, 1), },300); makeRecipe(new ComparableStack(ModItems.grenade_plasma, 2), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.cell_deuterium, 1), new ComparableStack(ModItems.cell_tritium, 1), },300); makeRecipe(new ComparableStack(ModItems.grenade_tau, 2), new AStack[] {new OreDictStack(PB.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.gun_xvl1456_ammo, 1), },300); @@ -226,23 +202,23 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.boy_target, 1), new AStack[] {new OreDictStack(U235.nugget(), 18), },200); makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 9), },100); makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate528(), 8), new OreDictStack(AL.plate528(), 4), new OreDictStack(MINGRADE.wireFine(), 4), },100); - makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate528(), 6), new OreDictStack(STEEL.plate528(), 1), new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(MINGRADE.wireFine(), 3), },150); //HE for gating purposes - makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(MINGRADE.wireFine(), 9), },150); + makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate528(), 6), new OreDictStack(STEEL.plate528(), 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 3), },150); //HE for gating purposes + makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 9), },150); makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250); makeRecipe(new ComparableStack(ModItems.mike_core, 1), new AStack[] {new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.ingot(), 6), },250); makeRecipe(new ComparableStack(ModItems.mike_deut, 1), new AStack[] {new OreDictStack(IRON.plate528(), 12), new OreDictStack(STEEL.plate528(), 16), new ComparableStack(ModItems.cell_deuterium, 10), },200); makeRecipe(new ComparableStack(ModItems.mike_cooling_unit, 1), new AStack[] {new OreDictStack(IRON.plate528(), 8), new ComparableStack(ModItems.coil_copper, 5), new ComparableStack(ModItems.coil_tungsten, 5), new ComparableStack(ModItems.motor, 2), },200); - makeRecipe(new ComparableStack(ModItems.fleija_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 6), new OreDictStack(SA326.wireFine(), 2), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); + makeRecipe(new ComparableStack(ModItems.fleija_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 6), new OreDictStack(SA326.wireFine(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), },300); makeRecipe(new ComparableStack(ModItems.fleija_core, 1), new AStack[] {new OreDictStack(U235.nugget(), 8), new OreDictStack(NP237.nugget(), 2), new OreDictStack(BE.nugget(), 4), new ComparableStack(ModItems.coil_copper, 2), },500); makeRecipe(new ComparableStack(ModItems.fleija_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(SA326.plate(), 8), },400); - makeRecipe(new ComparableStack(ModItems.solinium_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 4), new OreDictStack(ALLOY.wireFine(), 2), new ComparableStack(ModItems.circuit_schrabidium, 1), new ComparableStack(ModItems.coil_gold, 1), },400); + makeRecipe(new ComparableStack(ModItems.solinium_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 4), new OreDictStack(ALLOY.wireFine(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new ComparableStack(ModItems.coil_gold, 1), },400); makeRecipe(new ComparableStack(ModItems.solinium_core, 1), new AStack[] {new OreDictStack(SA327.nugget(), 9), new OreDictStack(EUPH.nugget(), 1), },400); makeRecipe(new ComparableStack(ModItems.solinium_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.plate_polymer, 6), new OreDictStack(W.wireFine(), 6), new ComparableStack(ModItems.biomass_compressed, 4), },350); makeRecipe(new ComparableStack(ModItems.schrabidium_hammer, 1), new AStack[] {new OreDictStack(SA326.block(), 35), new ComparableStack(ModItems.billet_yharonite, 128), new ComparableStack(Items.nether_star, 3), new ComparableStack(ModItems.fragment_meteorite, 512), },1000); - makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new OreDictStack(STEEL.shell(), 3), new OreDictStack(AL.shell(), 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModItems.crystal_xen, 1), },2500); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); - makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); - makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); + makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new OreDictStack(STEEL.shell(), 3), new OreDictStack(AL.shell(), 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModItems.crystal_xen, 1), },2500); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); + makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.arc_electrode, 4), },100); @@ -277,23 +253,49 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(BIGMT.plate(), 9), },500); makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(STEEL.plate(), 16), },600); makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(AL.plate(), 16), },600); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },300); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), },200); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit,3, EnumCircuitType.ADVANCED), },300); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100, ModItems.journal_pip); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100, ModItems.journal_pip); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new OreDictStack(TI.shell(), 32), new OreDictStack(STEEL.shell(), 18), new OreDictStack(FIBER.ingot(), 64), },600); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new OreDictStack(AL.shell(), 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), },500); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), },400); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), }, 60, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.ADVANCED), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new OreDictStack(TI.shell(), 32), new OreDictStack(STEEL.shell(), 18), new OreDictStack(FIBER.ingot(), 64), },600); + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new OreDictStack(ANY_RUBBER.ingot(), 32), new OreDictStack(AL.shell(), 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); + + + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] { + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(DESH.ingot(), 16), + new ComparableStack(ModItems.crystal_lithium, 4), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), + }, 200); + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new AStack[] { + new ComparableStack(ModItems.upgrade_overdrive_1, 1), + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(BIGMT.ingot(), 16), + new ComparableStack(ModItems.crystal_lithium, 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD), + }, 300); + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] { + new ComparableStack(ModItems.upgrade_overdrive_2, 1), + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(STAR.ingot(), 16), + new ComparableStack(ModItems.crystal_lithium, 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + }, 500); + makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), @@ -313,8 +315,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit_red_copper, 8), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] { new OreDictStack(STEEL.plate528(), 12), @@ -324,7 +325,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.tank_steel, 2), new OreDictStack(W.bolt(), 16), new OreDictStack(MINGRADE.wireFine(), 24), - new ComparableStack(ModItems.circuit_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_strand_caster, 1), new AStack[] { @@ -373,12 +374,10 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_excavator, 1), new AStack[] { new ComparableStack(Blocks.stonebrick, 8), - new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(IRON.ingot(), 16), - new ComparableStack(ModBlocks.steel_scaffold, 16), + new OreDictStack(STEEL.ingot(), 8), + new OreDictStack(IRON.ingot(), 8), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.tank_steel, 1), - new ComparableStack(ModItems.circuit_red_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) }, 300); makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL.ordinal()), new AStack[] { new OreDictStack(STEEL.ingot(), 12), @@ -436,7 +435,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(GOLD.wireDense(), 6), new OreDictStack(DURA.pipe(), 3), new OreDictStack(STEEL.pipe(), 4), - new ComparableStack(ModItems.circuit_aluminium, 1), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] { new OreDictStack(STEEL.shell(), 6), @@ -486,8 +485,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), - new ComparableStack(ModItems.circuit_red_copper, 8), - new ComparableStack(ModItems.circuit_gold, 3), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 600); makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { @@ -498,7 +496,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(ANY_CONCRETE.any(), 16), new ComparableStack(ModBlocks.steel_scaffold, 4), - new ComparableStack(ModItems.circuit_red_copper, 3) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) }, 600); makeRecipe(new ComparableStack(ModItems.gun_zomg, 1), new AStack[] { @@ -600,7 +598,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_targeting_tier3, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.mechanism_rifle_2, 1), new ComparableStack(ModBlocks.crate_iron, 1), @@ -611,7 +609,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_targeting_tier2, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.mechanism_rifle_1, 1), new ComparableStack(ModBlocks.crate_iron, 1), @@ -622,7 +620,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.mechanism_launcher_2, 1), @@ -634,7 +632,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new ComparableStack(ModItems.mechanism_special, 1), @@ -646,7 +644,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new ComparableStack(ModItems.mechanism_launcher_2, 1), @@ -659,7 +657,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.circuit_targeting_tier3, 2), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new ComparableStack(ModItems.mechanism_rifle_2, 2), new ComparableStack(ModBlocks.crate_steel, 1), @@ -670,7 +668,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 24), new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 2), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(ModItems.magnetron, 16), @@ -682,7 +680,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_targeting_tier3, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.mechanism_launcher_1, 1), new ComparableStack(ModBlocks.barrel_steel, 1), @@ -693,7 +691,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 128), new OreDictStack(DURA.ingot(), 32), new ComparableStack(ModItems.motor_desh, 5), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.mechanism_launcher_2, 3), new ComparableStack(ModBlocks.machine_radar, 1), @@ -705,7 +703,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), - new ComparableStack(ModItems.circuit_targeting_tier4, 3), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.mechanism_launcher_2, 5), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) @@ -716,7 +714,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_HE), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -724,7 +722,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 18), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_WP), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -732,7 +730,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(P_WHITE.ingot(), 18), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_TB), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -741,7 +739,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.ball_tatb, 32), new OreDictStack(Fluids.KEROSENE_REFORM.getDict(1_000), 12), new OreDictStack(Fluids.ACID.getDict(1_000), 12), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_MINI_NUKE), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -750,7 +748,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.ball_tatb, 6), new OreDictStack(PU239.nugget(), 12), new OreDictStack(OreDictManager.getReflector(), 12), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_LAVA), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -758,14 +756,14 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.rocket_fuel, 32), new ComparableStack(ModItems.ball_tatb, 4), new OreDictStack(VOLCANIC.gem(), 1), - new ComparableStack(ModItems.circuit_copper, 6) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.LARGE), new AStack[] { new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 36), new ComparableStack(ModItems.ball_tatb, 16), - new ComparableStack(ModItems.circuit_gold, 2), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.LARGE_TB), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -774,7 +772,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.ball_tatb, 24), new OreDictStack(Fluids.KEROSENE_REFORM.getDict(1_000), 16), new OreDictStack(Fluids.ACID.getDict(1_000), 16), - new ComparableStack(ModItems.circuit_gold, 2), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] { @@ -792,9 +790,9 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ALLOY.wireDense(), 64), !exp ? new OreDictStack(STEEL.plate528(), 24) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(ANY_PLASTIC.ingot(), 16), - new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.coil_advanced_torus, 16), - new ComparableStack(ModItems.circuit_gold, 1) + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) }, 400); makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { @@ -809,7 +807,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.plate(), 4), new OreDictStack(GOLD.wireFine(), 12), new ComparableStack(ModItems.motor, 4), - new ComparableStack(ModItems.circuit_tantalium, 16) + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { @@ -821,7 +819,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.motor, 18), new OreDictStack(W.bolt(), 16), new OreDictStack(STEEL.pipe(), 8), - new ComparableStack(ModItems.circuit_gold, 3) + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { @@ -834,7 +832,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.motor_desh, 4), new ComparableStack(ModItems.coil_tungsten, 24), new OreDictStack(STEEL.pipe(), 8), - new ComparableStack(ModItems.circuit_gold, 3) + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 400); makeRecipe(new ComparableStack(ModItems.missile_shuttle, 1), new AStack[] { @@ -843,7 +841,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(KEY_ORANGE, 5), new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), - new ComparableStack(ModItems.circuit_copper, 2), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(STEEL.plate(), 4), @@ -865,7 +863,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_BISMOID) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), new AStack[] { !exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 4), @@ -875,7 +873,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.shell(), 3), new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor, 1), - new ComparableStack(ModItems.circuit_red_copper, 3) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_hydrotreater, 1), new AStack[] { !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 4), @@ -885,7 +883,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.shell(), 2), new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.circuit_red_copper, 3) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_compressor, 1), new AStack[] { @@ -893,7 +891,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(CU.plate528(), 4), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_red_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_electrolyser, 1), new AStack[] { @@ -903,7 +901,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.ingot_firebrick, 16), new ComparableStack(ModItems.tank_steel, 3), new ComparableStack(ModItems.coil_copper, 16), - new ComparableStack(ModItems.circuit_gold, 2) + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] { @@ -912,7 +910,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.circuit_gold, 3), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.glass_quartz, 16) }, 200); @@ -923,20 +921,20 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_CONCRETE.any(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 24), - new ComparableStack(ModItems.circuit_red_copper, 3) + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED) }, 200); makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] { new OreDictStack(STEEL.plateWelded(), 8), new OreDictStack(ANY_CONCRETE.any(), 8), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), - new ComparableStack(ModItems.circuit_gold, 1) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED) }, 400); makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { new OreDictStack(NB.ingot(), 4), new ComparableStack(ModItems.redcoil_capacitor, 1), new ComparableStack(ModItems.ingot_euphemium, 4), - new ComparableStack(ModItems.circuit_tantalium, 6), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.powder_nitan_mix, 18), }, 600); @@ -974,7 +972,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 4) + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID) }, 200); makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 0), new AStack[] { @@ -996,13 +994,13 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 32), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 16), - new ComparableStack(ModItems.circuit_schrabidium, 24), + new ComparableStack(ModItems.circuit, 64, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_icf_press, 1), new AStack[] { new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) }, 100); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.NUKA)), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); @@ -1014,9 +1012,9 @@ public class AssemblerRecipes extends SerializableRecipe { if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new OreDictStack(STEEL.pipe(), 12), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); - makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(MAGTUNG.wireFine(), 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); + makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(MAGTUNG.wireFine(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); - makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); + makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), },300); } else { addTantalium(new ComparableStack(ModBlocks.machine_centrifuge, 1), 5); @@ -1051,17 +1049,16 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), - new ComparableStack(ModItems.circuit_red_copper, 8), - new ComparableStack(ModItems.circuit_gold, 3), - new ComparableStack(ModItems.circuit_tantalium, 50), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), + new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD) }, 600); makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_RUBBER.ingot(), 16), - new ComparableStack(ModItems.circuit_gold, 5), - new ComparableStack(ModItems.circuit_tantalium, 20), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC), + new ComparableStack(ModItems.circuit, 20, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.crt_display, 8), }, 300); @@ -1069,8 +1066,8 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), - new ComparableStack(ModItems.circuit_gold, 1), - new ComparableStack(ModItems.circuit_tantalium, 10), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), + new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD), }, 300); makeRecipe(new ComparableStack(ModBlocks.hadron_core, 1), new AStack[] { @@ -1078,9 +1075,8 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), - new ComparableStack(ModItems.circuit_gold, 5), - new ComparableStack(ModItems.circuit_schrabidium, 5), - new ComparableStack(ModItems.circuit_tantalium, 192), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.circuit, 192, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.crt_display, 1), }, 300); @@ -1089,8 +1085,8 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit_red_copper, 5), - new ComparableStack(ModItems.circuit_tantalium, 15), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD), }, 200); makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] { @@ -1098,8 +1094,8 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), - new ComparableStack(ModItems.circuit_gold, 5), - new ComparableStack(ModItems.circuit_tantalium, 25), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD), }, 200); makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] { @@ -1107,9 +1103,9 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModBlocks.steel_scaffold, 24), new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), - new ComparableStack(ModItems.circuit_gold, 5), + new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.upgrade_power_3, 3), - new ComparableStack(ModItems.circuit_tantalium, 100), + new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD), }, 200); } @@ -1119,7 +1115,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 2), !exp ? new ComparableStack(ModItems.plate_desh, 6) : new OreDictStack(DESH.heavyComp()), - new OreDictStack(NB.ingot(), 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.tank_steel, 24), new ComparableStack(ModItems.pipes_steel, 2) }, 600); @@ -1135,9 +1131,9 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_liquefactor), new AStack[] { new OreDictStack(STEEL.ingot(), 8), - new OreDictStack(NB.ingot(), 2), new OreDictStack(CU.plate528(), 12), new OreDictStack(ANY_TAR.any(), 8), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.tank_steel, 2) @@ -1145,10 +1141,10 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { new OreDictStack(ANY_CONCRETE.any(), 8), - new OreDictStack(NB.ingot(), 2), new OreDictStack(AL.plate528(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(STEEL.shell(), 3), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.tank_steel, 2) @@ -1204,7 +1200,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.plateWelded(), 32), new OreDictStack(CU.plateWelded(), 24), new ComparableStack(ModItems.pipes_steel, 8), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 4), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), new ComparableStack(ModItems.wire_dense, 32, Mats.MAT_ALLOY.id), new ComparableStack(ModBlocks.fusion_conductor, 12), new ComparableStack(ModBlocks.capacitor_tantalium, 53), @@ -1368,7 +1364,7 @@ public class AssemblerRecipes extends SerializableRecipe { for(int i = 0; i < recipe.ingredients.length; i++) news[i] = recipe.ingredients[i]; - news[news.length - 1] = new ComparableStack(ModItems.circuit_tantalium, amount); + news[news.length - 1] = new ComparableStack(ModItems.circuit, amount, EnumCircuitType.CAPACITOR_BOARD); recipe.ingredients = news; } } diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index b9f9066d5..5896e1a7e 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -267,6 +267,12 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_bismuth, 6), new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.icf_pellet_depleted), new ItemStack[] { + new ItemStack(ModItems.icf_pellet_empty, 1), + new ItemStack(ModItems.pellet_charged, 1), + new ItemStack(ModItems.pellet_charged, 1), + new ItemStack(ModItems.powder_iron, 1) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)), new ItemStack[] { new ItemStack(ModItems.powder_cobalt_tiny, 2), new ItemStack(ModItems.powder_boron_tiny, 2), diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 1cee88f3f..f1333cd0c 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -11,6 +11,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.init.Items; import net.minecraft.inventory.InventoryCrafting; @@ -101,7 +102,7 @@ public class MagicRecipes { recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), new OreDictStack(ANY_RUBBER.ingot()), new ComparableStack(ModItems.nugget_pu239), - new ComparableStack(ModItems.circuit_aluminium))); + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP))); } public static List getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 06ef2cd13..204553081 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -93,10 +93,6 @@ public class PressRecipes extends SerializableRecipe { } } - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_raw), ModItems.circuit_aluminium); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_bismuth_raw), ModItems.circuit_bismuth); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), ModItems.circuit_tantalium); makeRecipe(StampType.CIRCUIT, new OreDictStack(SI.billet()), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON)); makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.IRON)); diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 74de1cc03..f9a436189 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -184,8 +184,6 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModItems.fragment_meteorite, new ItemStack(ModItems.powder_meteorite_tiny, 1)); ShredderRecipes.setRecipe(ModBlocks.block_meteor, new ItemStack(ModItems.powder_meteorite, 10)); ShredderRecipes.setRecipe(Items.enchanted_book, new ItemStack(ModItems.powder_magic, 1)); - ShredderRecipes.setRecipe(ModItems.arc_electrode_burnt, new ItemStack(ModItems.powder_coal, 1)); - ShredderRecipes.setRecipe(ModItems.arc_electrode_desh, new ItemStack(ModItems.powder_desh, 2)); ShredderRecipes.setRecipe(ModBlocks.meteor_polished, new ItemStack(ModItems.powder_meteorite, 1)); ShredderRecipes.setRecipe(ModBlocks.meteor_brick, new ItemStack(ModItems.powder_meteorite, 1)); ShredderRecipes.setRecipe(ModBlocks.meteor_brick_mossy, new ItemStack(ModItems.powder_meteorite, 1)); diff --git a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java index e747ff959..bd2847d0e 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java @@ -19,6 +19,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class SolderingRecipes extends SerializableRecipe { @@ -30,19 +31,19 @@ public class SolderingRecipes extends SerializableRecipe { recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 100, 100, new AStack[] { - new ComparableStack(ModItems.circuit, 3, EnumCircuitType.VACUUM_TUBE.ordinal()), - new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CAPACITOR.ordinal())}, + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.VACUUM_TUBE), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CAPACITOR)}, new AStack[] { - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.PCB.ordinal())}, + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.PCB)}, new AStack[] { new OreDictStack(PB.wireFine(), 4)} )); recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()), 200, 250, new AStack[] { - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP.ordinal())}, + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP)}, new AStack[] { - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.PCB.ordinal())}, + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.PCB)}, new AStack[] { new OreDictStack(PB.wireFine(), 4)} )); @@ -50,10 +51,10 @@ public class SolderingRecipes extends SerializableRecipe { recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), 300, 1_000, new FluidStack(Fluids.SULFURIC_ACID, 1_000), new AStack[] { - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP.ordinal()), - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR.ordinal())}, + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, new AStack[] { - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.PCB.ordinal()), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.PCB), new OreDictStack(RUBBER.ingot(), 2)}, new AStack[] { new OreDictStack(PB.wireFine(), 8)} @@ -62,9 +63,9 @@ public class SolderingRecipes extends SerializableRecipe { recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR_BOARD.ordinal()), 200, 300, new FluidStack(Fluids.ACID, 250), new AStack[] { - new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CAPACITOR_TANTALIUM.ordinal())}, + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CAPACITOR_TANTALIUM)}, new AStack[] { - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.PCB.ordinal())}, + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.PCB)}, new AStack[] { new OreDictStack(PB.wireFine(), 3)} )); @@ -72,15 +73,83 @@ public class SolderingRecipes extends SerializableRecipe { recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BISMOID.ordinal()), 400, 10_000, new FluidStack(Fluids.SOLVENT, 1_000), new AStack[] { - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_BISMOID.ordinal()), - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP.ordinal()), - new ComparableStack(ModItems.circuit, 24, EnumCircuitType.CAPACITOR.ordinal())}, + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_BISMOID), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, 24, EnumCircuitType.CAPACITOR)}, new AStack[] { - new ComparableStack(ModItems.circuit, 12, EnumCircuitType.PCB.ordinal()), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.PCB), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)}, new AStack[] { new OreDictStack(PB.wireFine(), 12)} )); + + /* + * UPGRADES + */ + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_speed_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(MINGRADE.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_effect_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(EMERALD.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_power_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(GOLD.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_fortune_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(NB.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_afterburn_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(W.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_radius), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack("dustGlowstone", 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_health), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(LI.dust(), 4)}, + new AStack[] {} + )); + + addFirstUpgrade(ModItems.upgrade_speed_1, ModItems.upgrade_speed_2); + addSecondUpgrade(ModItems.upgrade_speed_2, ModItems.upgrade_speed_3); + addFirstUpgrade(ModItems.upgrade_effect_1, ModItems.upgrade_effect_2); + addSecondUpgrade(ModItems.upgrade_effect_2, ModItems.upgrade_effect_3); + addFirstUpgrade(ModItems.upgrade_power_1, ModItems.upgrade_power_2); + addSecondUpgrade(ModItems.upgrade_power_2, ModItems.upgrade_power_3); + addFirstUpgrade(ModItems.upgrade_fortune_1, ModItems.upgrade_fortune_2); + addSecondUpgrade(ModItems.upgrade_fortune_2, ModItems.upgrade_fortune_3); + addFirstUpgrade(ModItems.upgrade_afterburn_1, ModItems.upgrade_afterburn_2); + addSecondUpgrade(ModItems.upgrade_afterburn_2, ModItems.upgrade_afterburn_3); + } + + public static void addFirstUpgrade(Item lower, Item higher) { + recipes.add(new SolderingRecipe(new ItemStack(higher), 300, 10_000, + new AStack[] {new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(lower), new OreDictStack(ANY_PLASTIC.ingot(), 4)}, + new AStack[] {} + )); + } + + public static void addSecondUpgrade(Item lower, Item higher) { + recipes.add(new SolderingRecipe(new ItemStack(higher), 400, 25_000, + new FluidStack(Fluids.SOLVENT, 500), + new AStack[] {new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(lower), new OreDictStack(RUBBER.ingot(), 4)}, + new AStack[] {} + )); } public static SolderingRecipe getRecipe(ItemStack[] inputs) { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 615901920..0eaeeb747 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.OreNames; +import com.hbm.inventory.OreDictManager.DictFrame; import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.RecipesCommon.AStack; @@ -225,7 +226,7 @@ public class AnvilRecipes { new OreDictStack(STEEL.ingot(), 8 * ukModifier), new OreDictStack(CU.ingot(), 8 * ukModifier), new ComparableStack(ModItems.motor, 2 * ukModifier), - new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier) + new ComparableStack(ModItems.circuit, 4 * ukModifier, EnumCircuitType.VACUUM_TUBE.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -242,7 +243,7 @@ public class AnvilRecipes { new OreDictStack(STEEL.plate(), 16), new OreDictStack(PB.pipe(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_copper, 1) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.pump_electric))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -280,7 +281,7 @@ public class AnvilRecipes { new OreDictStack(CU.ingot(), 8), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 8), - new ComparableStack(ModItems.circuit_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.heater_electric))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -386,7 +387,7 @@ public class AnvilRecipes { new OreDictStack(STEEL.plate(), 4), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.ingot(), 2), - new ComparableStack(ModItems.circuit_aluminium), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.VACUUM_TUBE.ordinal()), new ComparableStack(ModItems.sawblade) }, new AnvilOutput(new ItemStack(ModBlocks.machine_autosaw))).setTier(2)); @@ -432,7 +433,7 @@ public class AnvilRecipes { new OreDictStack(STEEL.shell(), 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.turbine_titanium, 1), - new ComparableStack(ModItems.circuit_aluminium, 1) + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); @@ -537,10 +538,6 @@ public class AnvilRecipes { pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3); - constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(AS.ingot()), new OreDictStack(REDSTONE.dust(), 4), new OreDictStack(ASBESTOS.ingot(), 2)}, - new AnvilOutput(new ItemStack(ModItems.circuit_arsenic_raw))).setTier(5)); - constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.missile_doomsday_rusted, 1), @@ -821,8 +818,8 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.crt_display, 1)), new AnvilOutput(new ItemStack(ModItems.scrap, 3)), new AnvilOutput(new ItemStack(ModItems.wire_fine, 4, Mats.MAT_COPPER.id)), - new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 2)) + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.25F), + new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.PCB.ordinal())) } ).setTier(2)); @@ -833,7 +830,7 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.scrap, 2)), new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_COPPER.id)), new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_GOLD.id), 0.25F), - new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1), 0.25F) + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.25F) } ).setTier(2)); @@ -882,7 +879,7 @@ public class AnvilRecipes { new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.plate_steel, 4)), new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_COPPER.id)), - new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()), 0.5F), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.25F), } ).setTier(2)); @@ -907,7 +904,7 @@ public class AnvilRecipes { new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.ingot_steel, 3)), new AnvilOutput(new ItemStack(ModItems.ingot_steel, 2), 0.5F), - new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.5F), new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_MINGRADE.id)), } ).setTier(2)); @@ -922,107 +919,6 @@ public class AnvilRecipes { } ).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_raw), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.plate_steel, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_ALUMINIUM.id)), - new AnvilOutput(new ItemStack(Items.redstone, 1)) - } - ).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_aluminium), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.plate_steel, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_ALUMINIUM.id), 0.5F), - new AnvilOutput(new ItemStack(Items.redstone, 1), 0.25F) - } - ).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_copper), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_COPPER.id)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_COPPER.id), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_COPPER.id), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_quartz, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.plate_copper, 1), 0.5F) - } - ).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_red_copper), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_MINGRADE.id)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_MINGRADE.id), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_MINGRADE.id), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_gold, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.plate_polymer, 1), 0.5F) - } - ).setTier(3)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_gold), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_GOLD.id)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_GOLD.id), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_GOLD.id), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_lapis, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_schrabidium), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_gold, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_SCHRABIDIUM.id)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_SCHRABIDIUM.id), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_SCHRABIDIUM.id), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_diamond, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.ingot_desh, 1), 0.5F) - } - ).setTier(6)); - - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_tantalium_raw), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 4)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_GOLD.id)), - new AnvilOutput(new ItemStack(ModItems.plate_copper, 2)), - new AnvilOutput(new ItemStack(ModItems.nugget_tantalium, 1)) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_tantalium), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 2)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_GOLD.id)), - new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_GOLD.id), 0.5F), - new AnvilOutput(new ItemStack(ModItems.plate_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.nugget_tantalium, 1), 0.75F) - } - ).setTier(4)); - - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_bismuth_raw), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 4)), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 2)), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_tantalium : ModItems.ingot_asbestos, 2)), - new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1)) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_bismuth), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 2)), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1)), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_tantalium : ModItems.ingot_asbestos, 1)), - new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1), 0.75F) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_uranium), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.billet_uranium, 3)), @@ -1042,7 +938,7 @@ public class AnvilRecipes { new ComparableStack(ModItems.pile_rod_detector), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)), new AnvilOutput(new ItemStack(ModItems.motor, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1)) + new AnvilOutput(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)) }).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_lithium), new AnvilOutput[] { @@ -1081,7 +977,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_control_auto), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_control, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_targeting_tier1, 1)), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal())), new AnvilOutput(new ItemStack(ModItems.crt_display, 1)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -1142,8 +1038,8 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.ingot_boron, 5)), new AnvilOutput(new ItemStack(ModItems.plate_lead, 8)), new AnvilOutput(new ItemStack(ModItems.crt_display, 3)), - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal())), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()), 0.5F), }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] { @@ -1202,6 +1098,18 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(Items.bone, 1), 0.75F), new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F) }).setTier(1)); + + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_aluminium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.ANALOG.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_red_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_gold), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_schrabidium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.BISMOID.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier1), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier2), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier3), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier5), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier6), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.BISMOID.ordinal()))}).setTier(1)); } public static void pullFromAssembler(ComparableStack result, int tier) { diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index d3aa5fccf..807c78765 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -45,6 +45,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new PressRecipes()); recipeHandlers.add(new BlastFurnaceRecipes()); recipeHandlers.add(new ShredderRecipes()); + recipeHandlers.add(new SolderingRecipes()); recipeHandlers.add(new ChemplantRecipes()); recipeHandlers.add(new CombinationRecipes()); recipeHandlers.add(new CrucibleRecipes()); @@ -67,7 +68,6 @@ public abstract class SerializableRecipe { recipeHandlers.add(new ElectrolyserFluidRecipes()); recipeHandlers.add(new ElectrolyserMetalRecipes()); recipeHandlers.add(new ArcWelderRecipes()); - recipeHandlers.add(new SolderingRecipes()); recipeHandlers.add(new ExposureChamberRecipes()); recipeHandlers.add(new AssemblerRecipes()); diff --git a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java index e7593fd25..05bfdeb52 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java @@ -5,6 +5,7 @@ import static com.hbm.lib.HbmChestContents.weighted; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.material.Mats; import com.hbm.items.ItemEnums.EnumCokeType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemBlowtorch; @@ -40,10 +41,9 @@ public class ItemPoolsComponent { weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 1, 8, 5), weighted(ModItems.piston_selenium, 0, 1, 1, 3), weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), - weighted(ModItems.circuit_raw, 0, 1, 3, 5), - weighted(ModItems.circuit_aluminium, 0, 1, 2, 4), - weighted(ModItems.circuit_copper, 0, 1, 1, 3), - weighted(ModItems.circuit_red_copper, 0, 1, 1, 2), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 2, 4), + weighted(ModItems.circuit, EnumCircuitType.PCB.ordinal(), 1, 3, 5), + weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3), weighted(ModItems.blade_titanium, 0, 1, 8, 1) }; }}; diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index aae4a1a7d..52ba8708d 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -6,6 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import static com.hbm.lib.HbmChestContents.*; @@ -41,7 +42,7 @@ public class ItemPoolsLegacy { weighted(ModItems.ingot_steel, 0, 2, 5, 7), weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), weighted(ModItems.ingot_titanium, 0, 1, 1, 3), - weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 5), weighted(ModItems.gun_revolver, 0, 1, 1, 3), weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), weighted(ModItems.gun_kit_1, 0, 1, 3, 4), @@ -74,8 +75,8 @@ public class ItemPoolsLegacy { weighted(ModItems.ingot_red_copper, 0, 1, 1, 4), weighted(ModItems.ingot_titanium, 0, 1, 3, 5), weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 2, 3, 7), - weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 4), - weighted(ModItems.circuit_copper, 0, 1, 1, 4), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4), + weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 2), weighted(ModItems.battery_generic, 0, 1, 1, 4), weighted(ModItems.battery_advanced, 0, 1, 1, 3), weighted(ModItems.powder_iodine, 0, 1, 1, 1), @@ -100,9 +101,9 @@ public class ItemPoolsLegacy { new ItemPool(POOL_EXPENSIVE) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.chlorine_pinwheel, 0, 1, 1, 1), - weighted(ModItems.circuit_targeting_tier3, 0, 1, 1, 4), - weighted(ModItems.circuit_gold, 0, 1, 2, 3), - weighted(ModItems.circuit_targeting_tier4, 0, 1, 1, 2), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4), + weighted(ModItems.circuit, EnumCircuitType.ANALOG.ordinal(), 1, 1, 3), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 1, 1, 2), weighted(ModItems.gun_kit_1, 0, 1, 3, 6), weighted(ModItems.gun_kit_2, 0, 1, 2, 3), weighted(ModItems.gun_rpg, 0, 1, 1, 4), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java index 347f6eeba..61afecf6b 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -5,6 +5,7 @@ import static com.hbm.lib.HbmChestContents.weighted; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.init.Items; import net.minecraft.util.WeightedRandomChestContent; @@ -48,7 +49,7 @@ public class ItemPoolsSingle { weighted(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), weighted(ModItems.ammo_50bmg, 0, 24, 48, 1), weighted(ModItems.ammo_45, 0, 48, 64, 2), - weighted(ModItems.circuit_red_copper, 0, 6, 12, 1), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 3, 6, 1), weighted(ModItems.gas_mask_m65, 0, 1, 1, 1), weighted(ModItems.grenade_if_he, 0, 1, 1, 1), weighted(ModItems.grenade_if_incendiary, 0, 1, 1, 1), @@ -70,8 +71,8 @@ public class ItemPoolsSingle { weighted(ModItems.gun_uzi, 0, 1, 1, 1), weighted(ModItems.gun_uzi_silencer, 0, 1, 1, 1), weighted(ModItems.clip_uzi, 0, 1, 3, 1), - weighted(ModItems.circuit_red_copper, 0, 12, 16, 1), - weighted(ModItems.circuit_gold, 0, 2, 6, 1) + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 12, 16, 1), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 2, 6, 1) }; }}; @@ -92,8 +93,8 @@ public class ItemPoolsSingle { weighted(ModItems.gun_fatman, 0, 1, 1, 1), weighted(ModItems.gun_revolver_pip, 0, 1, 1, 1), weighted(ModItems.clip_revolver_pip, 0, 2, 4, 1), - weighted(ModItems.circuit_red_copper, 0, 18, 32, 1), - weighted(ModItems.circuit_gold, 0, 6, 12, 1) + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 18, 32, 1), + weighted(ModItems.circuit, EnumCircuitType.BASIC.ordinal(), 6, 12, 1) }; }}; @@ -126,8 +127,8 @@ public class ItemPoolsSingle { weighted(ModItems.ingot_boron, 0, 1, 16, 10), weighted(ModItems.ingot_starmetal, 0, 1, 1, 5), weighted(ModItems.crystal_gold, 0, 1, 4, 10), - weighted(ModItems.circuit_copper, 0, 4, 8, 10), - weighted(ModItems.circuit_red_copper, 0, 2, 4, 10), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 4, 8, 10), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 2, 4, 10), weighted(ModItems.definitelyfood, 0, 16, 32, 25), weighted(ModBlocks.crate_can, 0, 1, 3, 10), weighted(ModItems.pill_herbal, 0, 1, 2, 10), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3b7cb400f..0d379ae56 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -598,6 +598,7 @@ public class ModItems { public static Item parts_legendary; public static Item circuit; + public static Item circuit_raw; public static Item circuit_aluminium; public static Item circuit_copper; @@ -610,6 +611,14 @@ public class ModItems { public static Item circuit_arsenic; public static Item circuit_tantalium_raw; public static Item circuit_tantalium; + + public static Item circuit_targeting_tier1; + public static Item circuit_targeting_tier2; + public static Item circuit_targeting_tier3; + public static Item circuit_targeting_tier4; + public static Item circuit_targeting_tier5; + public static Item circuit_targeting_tier6; + public static Item crt_display; public static ItemEnumMulti circuit_star_piece; public static ItemEnumMulti circuit_star_component; @@ -653,13 +662,6 @@ public class ModItems { public static Item folly_bullet_nuclear; public static Item folly_bullet_du; - public static Item circuit_targeting_tier1; - public static Item circuit_targeting_tier2; - public static Item circuit_targeting_tier3; - public static Item circuit_targeting_tier4; - public static Item circuit_targeting_tier5; - public static Item circuit_targeting_tier6; - public static Item wiring_red_copper; public static Item shell; public static Item pipe; @@ -1837,7 +1839,6 @@ public class ModItems { public static Item overfuse; public static Item arc_electrode; public static Item arc_electrode_burnt; - public static Item arc_electrode_desh; /*public static Item factory_core_titanium; public static Item factory_core_advanced;*/ @@ -3850,7 +3851,7 @@ public class ModItems { icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty"); icf_pellet = new ItemICFPellet().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); - icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet"); + icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet_depleted"); trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); @@ -4447,7 +4448,6 @@ public class ModItems { overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); arc_electrode = new ItemArcElectrode().setUnlocalizedName("arc_electrode").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode"); arc_electrode_burnt = new ItemArcElectrodeBurnt().setUnlocalizedName("arc_electrode_burnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); - arc_electrode_desh = new ItemCustomLore().setUnlocalizedName("arc_electrode_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_desh"); ams_focus_blank = new Item().setUnlocalizedName("ams_focus_blank").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_blank"); ams_focus_limiter = new ItemCustomLore().setUnlocalizedName("ams_focus_limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_limiter"); @@ -6584,7 +6584,6 @@ public class ModItems { GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); - GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName()); //Particle Collider Fuel GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemBDCL.java b/src/main/java/com/hbm/items/food/ItemBDCL.java index 1ec41d032..3555dc71d 100644 --- a/src/main/java/com/hbm/items/food/ItemBDCL.java +++ b/src/main/java/com/hbm/items/food/ItemBDCL.java @@ -9,12 +9,12 @@ import net.minecraft.world.World; public class ItemBDCL extends Item { @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 32; + public int getMaxItemUseDuration(ItemStack stack) { + return 40; } @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { + public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.drink; } @Override @@ -31,4 +31,24 @@ public class ItemBDCL extends Item { } return stack; } + + @Override + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { + + if(count % 5 == 0 && count >= 10) { + player.playSound("hbm:player.gulp", 1F, 1F); + } + + if(count == 1) { + this.onEaten(stack, player.worldObj, player); + player.clearItemInUse(); + player.itemInUseCount = 10; + player.playSound("hbm:player.groan", 1F, 1F); + return; + } + + if(count <= 24 && count % 4 == 0) { + player.itemInUseCount--; + } + } } diff --git a/src/main/java/com/hbm/items/machine/ItemCircuit.java b/src/main/java/com/hbm/items/machine/ItemCircuit.java index 8b8fcebfd..368af5647 100644 --- a/src/main/java/com/hbm/items/machine/ItemCircuit.java +++ b/src/main/java/com/hbm/items/machine/ItemCircuit.java @@ -1,7 +1,12 @@ package com.hbm.items.machine; +import java.util.List; + import com.hbm.items.ItemEnumMulti; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + public class ItemCircuit extends ItemEnumMulti { public ItemCircuit() { @@ -22,4 +27,28 @@ public class ItemCircuit extends ItemEnumMulti { CAPACITOR_BOARD, BISMOID, } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + /*List lines = new ArrayList(); + + switch(stack.getItemDamage()) { + case 0: lines.add("We taught this filament how to think."); break; + case 1: lines.add("3300µF"); break; + case 2: lines.add("Sorry, we were out of flux capacitors, this is a regular one."); break; + case 3: lines.add("Laminated Sandwich Structure™"); break; + case 4: lines.add("Microscopic arcane sigils have given this rock anima."); break; + case 5: lines.add("Less tasty than it sounds."); break; + case 6: lines.add("The ALU is probably wired together correctly. Probably."); break; + case 7: lines.add("One final act of goodwill."); lines.add("If I have to hear the words \"Interplay\" or"); lines.add("\"objectively better\" one more time I'll blow"); lines.add("up Chris Avellone with a bazooka."); break; + case 8: lines.add("100% lead solder (not RoHS compliant)"); break; + case 9: lines.add("It's red, that means it's better."); break; + case 10: lines.add("Uses that exceptionally stanky 90s yellow PCB."); break; + case 11: lines.add("Can do up to three different things (instead of two)!"); break; + } + + for(String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + }*/ + } } diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index db26b21dd..67cebf52f 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -4,10 +4,12 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.Spaghetti; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.util.ShadyUtil; import cpw.mods.fml.relauncher.Side; @@ -199,9 +201,9 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_gold, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_tungsten, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 4)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_aluminium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_copper, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_red_copper, 4)); + player.inventory.addItemStackToInventory(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE, 16)); + player.inventory.addItemStackToInventory(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR, 16)); + player.inventory.addItemStackToInventory(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.wiring_red_copper, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.magnetron, 5)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index cd0a38dc4..2bdcf4112 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4963)"; + public static final String VERSION = "1.0.27 BETA (4977)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 937696fc4..90194bca4 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -28,6 +28,7 @@ import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.food.ItemConserve.EnumFoodType; +import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; @@ -109,21 +110,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotBrick" }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotNetherBrick" }); - addRecipeAuto(new ItemStack(ModItems.circuit_raw, 1), new Object[] { "A", "R", "S", 'S', STEEL.plate(), 'R', REDSTONE.dust(), 'A', AL.wireFine() }); - addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', ANY_PLASTIC.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); - addRecipeAuto(new ItemStack(ModItems.circuit_tantalium_raw, 1), new Object[] { "RWR", "PTP", "RWR", 'R', REDSTONE.dust(), 'W', GOLD.wireFine(), 'P', CU.plate(), 'T', TA.nugget() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier1, 1), new Object[] { "CPC", 'C', ModItems.circuit_aluminium, 'P', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier2, 1), new Object[] { "CPC", 'C', ModItems.circuit_copper, 'P', NETHERQUARTZ.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier3, 1), new Object[] { "CPC", 'C', ModItems.circuit_red_copper, 'P', GOLD.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier4, 1), new Object[] { "CPC", 'C', ModItems.circuit_gold, 'P', LAPIS.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier5, 1), new Object[] { "CPC", 'C', ModItems.circuit_schrabidium, 'P', DIAMOND.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier6, 1), new Object[] { "P", "D", "C", 'C', ModItems.circuit_targeting_tier5, 'D', ModItems.battery_potatos, 'P', ModItems.powder_spark_mix }); - addShapelessAuto(new ItemStack(ModItems.circuit_aluminium, 2), new Object[] { ModItems.circuit_targeting_tier1 }); - addShapelessAuto(new ItemStack(ModItems.circuit_copper, 2), new Object[] { ModItems.circuit_targeting_tier2 }); - addShapelessAuto(new ItemStack(ModItems.circuit_red_copper, 2), new Object[] { ModItems.circuit_targeting_tier3 }); - addShapelessAuto(new ItemStack(ModItems.circuit_gold, 2), new Object[] { ModItems.circuit_targeting_tier4 }); - addShapelessAuto(new ItemStack(ModItems.circuit_schrabidium, 2), new Object[] { ModItems.circuit_targeting_tier5 }); - addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), new Object[] { "G", "W", "I", 'G', KEY_ANYPANE, 'W', W.wireFine(), 'I', ModItems.plate_polymer }); addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), new Object[] { "G", "W", "I", 'G', KEY_ANYPANE, 'W', CARBON.wireFine(), 'I', ModItems.plate_polymer }); addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), new Object[] { "I", "N", "W", 'I', ModItems.plate_polymer, 'N', NB.nugget(), 'W', AL.wireFine() }); @@ -240,9 +226,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', NETHERQUARTZ.gem() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.radio_torch_logic, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_aluminium }); - addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.radio_torch_logic, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); + addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); @@ -268,7 +254,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', MINGRADE.wireFine() }); addShapelessAuto(new ItemStack(ModBlocks.red_cable_classic, 1), new Object[] { ModBlocks.red_cable }); addShapelessAuto(new ItemStack(ModBlocks.red_cable, 1), new Object[] { ModBlocks.red_cable_classic }); - addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), ModItems.circuit_aluminium }); + addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_wood, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); @@ -293,15 +279,15 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 3), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); + addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); - addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', STEEL.shell(), 'D', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.solar_mirror, 3), new Object[] { "AAA", " B ", "SSS", 'A', AL.plate(), 'B', ModBlocks.steel_beam, 'S', STEEL.ingot() }); @@ -312,21 +298,27 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', STEEL.shell(), 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.machine_furnace_brick_off), new Object[] { "III", "I I", "BBB", 'I', Items.brick, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); - addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() }); - + addRecipeAuto(new ItemStack(ModItems.upgrade_muffler, 16), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModItems.upgrade_template, 1), new Object[] { "WIW", "ICI", "WIW", 'W', CU.wireFine(), 'I', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', W.bolt() }); - addRecipeAuto(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', DESH.dust(), 'T', ModItems.arc_electrode }); - addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', MINGRADE.wireFine(), 'C', ModItems.circuit_red_copper, 'E', STEEL.ingot() }); - addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', ModItems.circuit_targeting_tier3, 'D', DIAMOND.gem(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', ModItems.circuit_targeting_tier3, 'D', EMERALD.gem(), 'I', STEEL.ingot() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.GRAPHITE), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', STEEL.bolt() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.GRAPHITE), new Object[] { "C", "T", "C", 'C', PETCOKE.gem(), 'T', ANY_TAR.any() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.LANTHANIUM), new Object[] { "C", "T", "C", 'C', LA.ingot(), 'T', KEY_BRICK }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.DESH), new Object[] { "C", "T", "C", 'C', DESH.ingot(), 'T', TI.ingot() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.DESH), new Object[] { "C", "T", "C", 'C', DESH.ingot(), 'T', W.ingot() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.SATURNITE), new Object[] { "C", "T", "C", 'C', BIGMT.ingot(), 'T', NB.ingot() }); + + addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'E', STEEL.ingot() }); + addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', DIAMOND.gem(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', EMERALD.gem(), 'I', STEEL.ingot() }); addShapelessAuto(new ItemStack(ModItems.detonator_deadman, 1), new Object[] { ModItems.detonator, ModItems.defuser, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.detonator_de, 1), new Object[] { "T", "D", "T", 'T', Blocks.tnt, 'D', ModItems.detonator_deadman }); @@ -372,9 +364,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ATA", "MDM", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot(), 'M', ModItems.mechanism_revolver_2 }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', W.bolt(), 'I', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', W.bolt(), 'I', DESH.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); + addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); - addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.reinforced_stone, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.cobblestone, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.brick_light, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); @@ -457,7 +449,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.tape_recorder), 4), new Object[] { "TST", "SSS", 'T', W.ingot(), 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_poles), 16), new Object[] { "S S", "SSS", "S S", 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_top), 1), new Object[] { "T T", "TRT", "BBB", 'T', W.ingot(), 'B', BE.ingot(), 'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 1), new Object[] { "SS ", "SCR", "SS ", 'S', STEEL.ingot(), 'C', ModItems.circuit_red_copper, 'R', MINGRADE.wireFine() }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 1), new Object[] { "SS ", "SCR", "SS ", 'S', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'R', MINGRADE.wireFine() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_beam), 8), new Object[] { "S", "S", "S", 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_wall), 4), new Object[] { "SSS", "SSS", 'S', STEEL.ingot() }); addShapelessAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_corner)), new Object[] { ModBlocks.steel_wall, ModBlocks.steel_wall }); @@ -510,7 +502,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch), new Object[] { ModBlocks.rail_large_switch_flipped }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', AL.wireFine(), 'C', ModItems.circuit_aluminium, 'H', AL.shell(), 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', AL.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'H', AL.shell(), 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.powder_poison, 4), new Object[] { Items.spider_eye, REDSTONE.dust(), NETHERQUARTZ.gem() }); addShapelessAuto(new ItemStack(ModItems.pellet_gas, 2), new Object[] { Items.water_bucket, "dustGlowstone", STEEL.plate() }); @@ -531,7 +523,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PDP", "DCD", "PDP", 'P', ModItems.plate_desh, 'D', ModBlocks.det_charge, 'C', ModItems.man_core }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addShapelessAuto(new ItemStack(ModBlocks.charge_dynamite, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.charge_miner, 1), new Object[] { " F ", "FCF", " F ", 'F', Items.flint, 'C', ModBlocks.charge_dynamite }); addShapelessAuto(new ItemStack(ModBlocks.charge_semtex, 1), new Object[] { ModItems.stick_semtex, ModItems.stick_semtex, ModItems.stick_semtex, ModItems.ducttape }); @@ -599,7 +591,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', Fluids.LUBRICANT.getDict(1000), 'B', STEEL.bolt(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ANY_RUBBER.ingot(), 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', SA326.wireFine(), 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', SA326.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', STEEL.bolt() }); @@ -626,7 +618,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 1), new Object[] { "IAI", " ", "IAI", 'I', IRON.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 2), new Object[] { "ASA", " ", "ASA", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_paintable, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() }); - addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), ModItems.circuit_aluminium }); + addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape }); addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "ADA", "SAS", 'S', STEEL.ingot(), 'A', AL.plate(), 'D', ModItems.ducttape }); @@ -652,10 +644,10 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_wormhole, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.plate_dineutronium, 'P', ModItems.powder_spark_mix, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_eyeofharmony, 1), new Object[] { "ALA", "LSL", "ALA", 'A', ModItems.plate_dalekanium, 'L', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.LAVA.getID()), 'S', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); - addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); addRecipeAuto(new ItemStack(ModItems.sat_scanner), new Object[] { "H", "B", 'H', ModItems.sat_head_scanner, 'B', ModItems.sat_base }); addRecipeAuto(new ItemStack(ModItems.sat_radar), new Object[] { "H", "B", 'H', ModItems.sat_head_radar, 'B', ModItems.sat_base }); @@ -674,14 +666,12 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.sat_laser), new Object[] { ModItems.sat_laser }); addShapelessAuto(new ItemStack(ModBlocks.sat_resonator), new Object[] { ModItems.sat_resonator }); addShapelessAuto(new ItemStack(ModBlocks.sat_foeq), new Object[] { ModItems.sat_foeq }); - addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_gold }); - addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_red_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', MAGTUNG.wireDense(), 'C', ModItems.circuit_targeting_tier6 }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ALLOY.wireDense(), 'C', ModItems.circuit_targeting_tier6 }); + addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SCS", "MDM", "SCS", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR) }); + addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', MAGTUNG.wireDense(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); - addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', CU.wireFine(), 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', CU.wireFine(), 'P', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser }); @@ -689,8 +679,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "BBB", "BBB", "TTT", 'B', STEEL.bolt(), 'T', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', STEEL.shell(), 'W', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 }); + addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'H', STEEL.shell(), 'W', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); @@ -759,7 +749,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.sand_lead, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", PB.dust() }); addShapelessAuto(new ItemStack(ModBlocks.sand_quartz, 1), new Object[] { "sand", "sand", NETHERQUARTZ.dust(), NETHERQUARTZ.dust() }); - addRecipeAuto(new ItemStack(ModItems.rune_blank, 1), new Object[] { "PSP", "SDS", "PSP", 'P', ModItems.powder_magic, 'S', STAR.ingot(), 'D', KEY_CIRCUIT_BISMUTH }); + addRecipeAuto(new ItemStack(ModItems.rune_blank, 1), new Object[] { "PSP", "SDS", "PSP", 'P', ModItems.powder_magic, 'S', STAR.ingot(), 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); addShapelessAuto(new ItemStack(ModItems.rune_isa, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity_counter_resonant }); addShapelessAuto(new ItemStack(ModItems.rune_dagaz, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity }); addShapelessAuto(new ItemStack(ModItems.rune_hagalaz, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity_super_heated }); @@ -784,7 +774,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, EUPH.dust(), EUPH.dust(), EUPH.dust(), EUPH.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', STEEL.shell() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); @@ -796,8 +786,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); - addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler }); + addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); + addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() }); @@ -806,13 +796,13 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_smelter, 1), new Object[] { "PHP", "CUC", "DTD", 'P', CU.plate(), 'H', Blocks.hopper, 'C', ModItems.coil_tungsten, 'U', ModItems.upgrade_template, 'D', ModItems.coil_copper, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_shredder, 1), new Object[] { "PHP", "CUC", "DTD", 'P', ModItems.motor, 'H', Blocks.hopper, 'C', ModItems.blades_advanced_alloy, 'U', ModItems.upgrade_smelter, 'D', TI.plate(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer }); - addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); + addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', NB.ingot(), 'U', ModItems.upgrade_template}); - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_aluminium, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_red_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_copper, 'P', ModItems.motor, 'U', ModItems.upgrade_template }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_gold, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_saturnite, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 1) }); @@ -835,7 +825,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SW", "WS", 'W', SBD.wireDense(), 'S', STAR.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TCT", "TST", "TCT", 'T', ModItems.coil_tungsten, 'C', ModItems.powder_chlorophyte, 'S', ModBlocks.hadron_coil_starmetal }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TC", "CT", 'T', W.wireDense(), 'C', ModItems.powder_chlorophyte }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModBlocks.hadron_plating, 16), new Object[] { "CC", "CC", 'C', STEEL.plateCast()}); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_blue, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLUE }); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_black, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLACK }); @@ -848,10 +838,10 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_power_100m, 1), new Object[] { "HF", 'H', ModBlocks.hadron_power_10m, 'F', ModItems.fuse }); addRecipeAuto(new ItemStack(ModBlocks.hadron_power_1g, 1), new Object[] { "HF", 'H', ModBlocks.hadron_power_100m, 'F', ModItems.fuse }); addRecipeAuto(new ItemStack(ModBlocks.hadron_power_10g, 1), new Object[] { "HF", 'H', ModBlocks.hadron_power_1g, 'F', ModItems.fuse }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addShapelessAuto(new ItemStack(ModBlocks.hadron_analysis_glass, 1), new Object[] { ModBlocks.hadron_analysis, KEY_ANYGLASS }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', ModItems.circuit_gold, 'H', Fluids.HELIUM4.getDict(16_000) }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'H', Fluids.HELIUM4.getDict(16_000) }); addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 1), new Object[] { "PCP", "CHC", "PCP", 'P', GOLD.plateCast(), 'C', ModItems.motor_bismuth, 'H', new ItemStack(ModBlocks.hadron_cooler, 1, 0) }); addRecipeAuto(new ItemStack(ModBlocks.fireworks, 1), new Object[] { "PPP", "PPP", "WIW", 'P', Items.paper, 'W', KEY_PLANKS, 'I', IRON.ingot() }); @@ -870,7 +860,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_control, 1), new Object[] { "CBC", "GRG", "CBC", 'G', GRAPHITE.ingot(), 'B', ModItems.motor, 'R', ModBlocks.rbmk_absorber, 'C', CD.ingot() }); } addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_control, 'B', ModItems.nugget_bismuth }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "D", 'C', ModItems.circuit_targeting_tier1, 'R', ModBlocks.rbmk_control, 'D', ModItems.crt_display }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "D", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'R', ModBlocks.rbmk_control, 'D', ModItems.crt_display }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank, 'Z', ZR.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod_reasim, 'B', ANY_RESISTANTALLOY.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_outgasser, 1), new Object[] { "GHG", "GRG", "GTG", 'G', ModBlocks.steel_grate, 'H', Blocks.hopper, 'T', ModItems.tank_steel, 'R', ModBlocks.rbmk_blank }); @@ -887,7 +877,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.pwr_heatsink, 4), new Object[] { "SCS", "CRC", "SCS", 'S', BIGMT.plateCast(), 'C', CU.plate(), 'R', RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? ModItems.circuit_gold : STEEL.heavyComp() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) : STEEL.heavyComp() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); @@ -960,11 +950,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.charger), new Object[] { "G", "S", "C", 'G', Items.glowstone_dust, 'S', STEEL.ingot(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.charger, 16), new Object[] { "G", "S", "C", 'G', Blocks.glowstone, 'S', STEEL.block(), 'C', ModItems.coil_copper_torus }); addRecipeAuto(new ItemStack(ModBlocks.press_preheater), new Object[] { "CCC", "SLS", "TST", 'C', CU.plate(), 'S', Blocks.stone, 'L', Fluids.LAVA.getDict(1000), 'T', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.fluid_identifier_multi), new Object[] { "D", "C", "P", 'D', "dye", 'C', ModItems.circuit_aluminium, 'P', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.fluid_identifier_multi), new Object[] { "D", "C", "P", 'D', "dye", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', ANY_PLASTIC.ingot() }); - addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, ModItems.circuit_red_copper }); + addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.teleanchor), new Object[] { "ODO", "EAE", "ODO", 'O', Blocks.obsidian, 'D', DIAMOND.gem(), 'E', ModItems.powder_magic, 'A', ModItems.gem_alexandrite }); - addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH, 'A', ModItems.gem_alexandrite }); + addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'A', ModItems.gem_alexandrite }); addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModItems.upgrade_muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); @@ -989,30 +979,30 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crane_boxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_PLANKS, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'C', ModBlocks.conveyor }); addRecipeAuto(new ItemStack(ModBlocks.crane_unboxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_STICK, 'P', Items.shears, 'C', ModBlocks.conveyor }); - addRecipeAuto(new ItemStack(ModBlocks.crane_router), new Object[] { "PIP", "ICI", "PIP", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.crane_router), new Object[] { "PIP", "ICI", "PIP", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', ModItems.plate_polymer, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); - addRecipeAuto(new ItemStack(ModBlocks.radar_screen), new Object[] { "PCP", "SRS", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_aluminium, 'S', STEEL.plate(), 'R', ModItems.crt_display }); - addRecipeAuto(new ItemStack(ModItems.radar_linker), new Object[] { "S", "C", "P", 'S', ModItems.crt_display, 'C', ModItems.circuit_copper, 'P', STEEL.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.radar_screen), new Object[] { "PCP", "SRS", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'S', STEEL.plate(), 'R', ModItems.crt_display }); + addRecipeAuto(new ItemStack(ModItems.radar_linker), new Object[] { "S", "C", "P", 'S', ModItems.crt_display, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate() }); - addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', STEEL.shell(), 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', STEEL.shell(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'B', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()) }); - addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), new Object[] { "E", "D", 'E', ModItems.circuit_red_copper, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), new Object[] { "E", "D", 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); - addRecipeAuto(new ItemStack(ModItems.drone_linker), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint, 4), new Object[] { "G", "T", "C", 'G', KEY_GREEN, 'T', Blocks.redstone_torch, 'C', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModItems.drone_linker), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint, 4), new Object[] { "G", "T", "C", 'G', KEY_GREEN, 'T', Blocks.redstone_torch, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModBlocks.crate_steel }); - addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint_request, 4), new Object[] { "G", "T", "C", 'G', KEY_BLUE, 'T', Blocks.redstone_torch, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_red_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint_request, 4), new Object[] { "G", "T", "C", 'G', KEY_BLUE, 'T', Blocks.redstone_torch, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); - addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.ball_resin), new Object[] { "DD", "DD", 'D', Blocks.yellow_flower }); @@ -1085,17 +1075,17 @@ public class CraftingManager { } if(!GeneralConfig.enable528) { - addRecipeAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { "MDM", "LCL", "LWL", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); - addRecipeAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { "LWL", "LCL", "MDM", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { "MDM", "LCL", "LWL", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'W', ModItems.coil_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { "LWL", "LCL", "MDM", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'W', ModItems.coil_magnetized_tungsten }); addShapelessAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { ModBlocks.machine_spp_top }); addShapelessAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { ModBlocks.machine_spp_bottom }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier3, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', ModItems.circuit_red_copper, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', ModItems.circuit_targeting_tier4, 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); - addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.magnetron }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', ModItems.circuit_schrabidium }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); + addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); + addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod, 'B', ModItems.nugget_bismuth }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', CU.pipe(), 'P', CU.shell(), 'R', ModBlocks.rbmk_blank }); @@ -1108,7 +1098,7 @@ public class CraftingManager { new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), - new ItemStack(ModItems.circuit_aluminium) + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CHIPSET), new Object[] { @@ -1172,11 +1162,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor); addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor_desh); addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor_bismuth); - addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_aluminium); - addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_copper); - addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_red_copper); - addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 3), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_gold); - addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_schrabidium); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 3), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID)); addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NNN", "ZCZ", "NNN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 655ab18f0..de8468791 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1329,6 +1329,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.ore_meteor_starmetal"); ignoreMappings.add("hbm:tile.machine_generator"); ignoreMappings.add("hbm:item.v1"); + ignoreMappings.add("hbm:item.arc_electrode_desh"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index a2b264190..f40158fe1 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -29,7 +29,9 @@ public class NEIConfig implements IConfigureNEI { registerHandler(handler); } - for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandler(new CustomMachineHandler(conf)); + for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) { + registerHandlerBypass(new CustomMachineHandler(conf)); + } //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java index 3a4b8a49e..758f1727d 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -6,10 +6,12 @@ import java.util.List; import com.hbm.entity.missile.EntityBobmazon; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.special.ItemKitCustom; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IRepairable; @@ -49,10 +51,8 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR shuttle.posY = 300; shuttle.posZ = zCoord + 0.5 + worldObj.rand.nextGaussian() * 10; ItemStack payload = ItemKitCustom.create("Supplies", null, 0xffffff, 0x008000, - new ItemStack(ModItems.circuit_aluminium, 4 + worldObj.rand.nextInt(4)), - new ItemStack(ModItems.circuit_copper, 4 + worldObj.rand.nextInt(2)), - new ItemStack(ModItems.circuit_red_copper, 2 + worldObj.rand.nextInt(3)), - new ItemStack(ModItems.circuit_gold, 1 + worldObj.rand.nextInt(2)), + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC, 4 + worldObj.rand.nextInt(4)), + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED, 4 + worldObj.rand.nextInt(2)), bonus ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), new ItemStack(Blocks.red_flower)); shuttle.payload = payload; @@ -112,7 +112,7 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR return repair; repair.add(new OreDictStack(OreDictManager.STEEL.plate(), 2)); - repair.add(new ComparableStack(ModItems.circuit_copper, 1)); + repair.add(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC)); return repair; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index d34054398..e48dfd33a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -185,7 +185,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyRecei this.networkPack(data, 250); } else { - if(isOn) { + if(power > powerReq * Math.pow(2, mode.ordinal()) && isOn && !(mode == EnumWavelengths.NULL) && distance - 3 > 0) { audioDuration += 2; } else { audioDuration -= 3; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 847f3c491..2162cfeb8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -122,7 +122,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i == 2 || i == 3 || i == 4) - return itemStack.getItem() == ModItems.arc_electrode || itemStack.getItem() == ModItems.arc_electrode_desh; + return itemStack.getItem() == ModItems.arc_electrode; if(i == 0) return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; @@ -233,9 +233,9 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements private boolean hasElectrodes() { if(slots[2] != null && slots[3] != null && slots[4] != null) { - if((slots[2].getItem() == ModItems.arc_electrode || slots[2].getItem() == ModItems.arc_electrode_desh) && - (slots[3].getItem() == ModItems.arc_electrode || slots[3].getItem() == ModItems.arc_electrode_desh) && - (slots[4].getItem() == ModItems.arc_electrode || slots[4].getItem() == ModItems.arc_electrode_desh)) + if((slots[2].getItem() == ModItems.arc_electrode) && + (slots[3].getItem() == ModItems.arc_electrode) && + (slots[4].getItem() == ModItems.arc_electrode)) return true; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java index de1cbbfff..dcf646ac9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineArcFurnaceLarge; @@ -15,10 +17,13 @@ import com.hbm.inventory.recipes.ArcFurnaceRecipes; import com.hbm.inventory.recipes.ArcFurnaceRecipes.ArcFurnaceRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemArcElectrode; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -57,6 +62,9 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl public int approachNum; public float syncLid; + private AudioWrapper audioLid; + private AudioWrapper audioProgress; + public byte[] electrodes = new byte[3]; public static final byte ELECTRODE_NONE = 0; public static final byte ELECTRODE_FRESH = 1; @@ -75,6 +83,15 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl return "container.machineArcFurnaceLarge"; } + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i == 4) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + @Override public void updateEntity() { @@ -110,6 +127,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl this.process(); this.progress = 0; this.delay = 120; + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, 15F); } } } @@ -161,6 +179,54 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl } else { this.lid = this.syncLid; } + + if(this.lid != this.prevLid) { + if(this.audioLid == null || !this.audioLid.isPlaying()) { + this.audioLid = MainRegistry.proxy.getLoopedSound("hbm:door.wgh_start", xCoord, yCoord, zCoord, this.getVolume(0.75F), 15F, 1.0F, 5); + this.audioLid.startSound(); + } + this.audioLid.keepAlive(); + } else { + if(this.audioLid != null) { + this.audioLid.stopSound(); + this.audioLid = null; + } + } + + if((lid == 1 || lid == 0) && lid != prevLid) { + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:door.wgh_stop", this.getVolume(1), 1F); + } + + if(this.isProgressing) { + if(this.audioProgress == null || !this.audioProgress.isPlaying()) { + this.audioProgress = MainRegistry.proxy.getLoopedSound("hbm:block.electricHum", xCoord, yCoord, zCoord, this.getVolume(1.5F), 15F, 0.75F, 5); + this.audioProgress.startSound(); + } + this.audioProgress.updatePitch(0.75F); + this.audioProgress.keepAlive(); + } else { + if(this.audioProgress != null) { + this.audioProgress.stopSound(); + this.audioProgress = null; + } + } + + if(this.lid != this.prevLid && this.lid > this.prevLid && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 4, zCoord + 0.5) < 50) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 0.01F); + data.setFloat("base", 0.5F); + data.setFloat("max", 2F); + data.setInteger("life", 70 + worldObj.rand.nextInt(30)); + data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posY", yCoord + 4); + data.setBoolean("noWind", true); + data.setFloat("alphaMod", prevLid / lid); + data.setInteger("color", 0x000000); + data.setFloat("strafe", 0.05F); + for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); + } } } @@ -336,7 +402,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl liquids.add(new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt())); } - this.approachNum = 2; + if(syncLid != 0 && syncLid != 1) this.approachNum = 2; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index fc2837579..1f899b27c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -11,6 +11,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineArcWelder; import com.hbm.inventory.recipes.ArcWelderRecipes; import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; @@ -61,6 +62,15 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements return "container.machineArcWelder"; } + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i >= 6 && i <= 7) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + @Override public void updateEntity() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index 111e8c028..0dd93775e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -11,6 +11,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineSolderingStation; import com.hbm.inventory.recipes.SolderingRecipes; import com.hbm.inventory.recipes.SolderingRecipes.SolderingRecipe; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; @@ -59,6 +60,15 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp return "container.machineSolderingStation"; } + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i >= 9 && i <= 10) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + @Override public void updateEntity() { @@ -151,7 +161,7 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp if(slots[6] != null) { if(slots[6].getItem() != recipe.output.getItem()) return false; if(slots[6].getItemDamage() != recipe.output.getItemDamage()) return false; - if(slots[6].stackSize + recipe.output.stackSize > slots[3].getMaxStackSize()) return false; + if(slots[6].stackSize + recipe.output.stackSize > slots[6].getMaxStackSize()) return false; } return true; diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 1fc5c2ec2..09bf2e8c3 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -6,6 +6,9 @@ public net.minecraft.entity.EntityLivingBase * # everything because fuck i'm not doing 500 of these by hand # public net.minecraft.entity.EntityLivingBase *() # ditto +# EntityPlayer +public net.minecraft.entity.player.EntityPlayer field_71072_f # itemInUseCount + # EntityCreeper public net.minecraft.entity.monster.EntityCreeper field_82225_f # fuseTime public net.minecraft.entity.monster.EntityCreeper func_146077_cc()V # explode diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 4fbb55db8..c626ce9c3 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1163,7 +1163,15 @@ item.apple_euphemium.name=Euphemiumapfel item.apple_lead.name=Bleiapfel item.apple_schrabidium.name=Schrabidiumapfel item.arc_electrode.name=Graphitelektrode +item.arc_electrode.desh.name=Deshelektrode +item.arc_electrode.graphite.name=Graphitelektrode +item.arc_electrode.lanthanium.name=Lanthanelektrode +item.arc_electrode.saturnite.name=Saturnitelektrode item.arc_electrode_burnt.name=Geschmolzene Elektrode +item.arc_electrode_burnt.desh.name=Geschmolzene Deshelektrode +item.arc_electrode_burnt.graphite.name=Geschmolzene Graphitelektrode +item.arc_electrode_burnt.lanthanium.name=Geschmolzene Lanthanelektrode +item.arc_electrode_burnt.saturnite.name=Geschmolzene Saturnitelektrode item.arc_electrode_desh.name=Desh-Elektrode item.armor_polish.name=ShiningArmor™ Rüstungspolitur item.asbestos_boots.name=Hitzeschutzstiefel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1c4438099..73b5faf11 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1869,7 +1869,15 @@ item.apple_euphemium.name=Euphemium Apple item.apple_lead.name=Lead Apple item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode +item.arc_electrode.desh.name=Desh Electrode +item.arc_electrode.graphite.name=Graphite Electrode +item.arc_electrode.lanthanium.name=Lanthanium Electrode +item.arc_electrode.saturnite.name=Saturnite Electrode item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_burnt.desh.name=Molten Desh Electrode +item.arc_electrode_burnt.graphite.name=Molten Graphite Electrode +item.arc_electrode_burnt.lanthanium.name=Molten Lanthanium Electrode +item.arc_electrode_burnt.saturnite.name=Molten Saturnite Electrode item.arc_electrode_desh.name=Desh Electrode item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index a2bdcbad2..6e79c347f 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -261,6 +261,8 @@ "player.vomit": {"category": "player", "sounds": [{"name": "player/vomit", "stream": false}]}, "player.cough": {"category": "player", "sounds": ["player/cough1", "player/cough2", "player/cough3", "player/cough4"]}, + "player.gulp": {"category": "player", "sounds": ["player/gulp1", "player/gulp2", "player/gulp3", "player/gulp4"]}, + "player.groan": {"category": "player", "sounds": ["player/groan1", "player/groan2", "player/groan3"]}, "potatos.random": {"category": "player", "sounds": ["potatos/randResponse0", "potatos/randResponse1", "potatos/randResponse2", "potatos/randResponse3", "potatos/randResponse4", "potatos/randResponse5", "potatos/randResponse6", "potatos/randResponse7"]}, diff --git a/src/main/resources/assets/hbm/sounds/player/groan1.ogg b/src/main/resources/assets/hbm/sounds/player/groan1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..02538aea3115744cb6d45c260cd55cbd3d3e246d GIT binary patch literal 15655 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 Ue06dE#^W%P`7TTaa|-bP0724{tN;K2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/player/gulp1.ogg b/src/main/resources/assets/hbm/sounds/player/gulp1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..828748a8a7cd834625fc6de6030df95fe26336e5 GIT binary patch literal 27515 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/player/gulp3.ogg b/src/main/resources/assets/hbm/sounds/player/gulp3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9d510d03f68ed1d08f7fe6a8368085c2d3ede459 GIT binary patch literal 57530 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 R>rb{5WpnhyY1LEK{{g0{Y^MMK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/player/gulp4.ogg b/src/main/resources/assets/hbm/sounds/player/gulp4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2fbd97893282ce7a333c384f0637475a8fb4990f GIT binary patch literal 16736 zcmch;dt6gjx-h(xY{DjPaEF9+gTYC{Ektk<2sThUCnVt#8Ys75#M((Vs1UIOij3_{ z=i7u3Hz6P(I1$0&W`qC^sMxC0IYAOcs|;65?er8cQ_->K*qL_TGyTrI=Udoz&b;UQ z{oeQY{qrsM-dSs}+kT$)+}Gmu{rd|cI`m!oYvJ`bH?nu;e)>9XE3Nh?hlq;98!zaZ z(TyJnI@s&~;`e>p>l;1)o;G^YKrqN;rR>xcFWDl3TM z7vl@Gf&{57Nh*^j3B(UhTmOE=Zj4Uz`?l{kmAaS)A>fTnC-9N;t$GN;AjlXQ8+2ly zHuh{spZINON7hEpCv9|gH2UyThivBihd^Ey0zoiDiUV2(KG&M(lK0~=Er)uOD{>X* z1pfB?wd8>7Uq_d|<+|iL@YY;x6cV`055Ns6vxE)Yf{h1332iud9OECF6`t!p#F7m4 zT389Qf_h!Tlfe_YDNlw5T2h{hFU_kq#a~*?*2z|iOV5A6-1GCpbIFgpzk39{fI|Sj zMa2v)!&Jz|@KmhJc?b;kEm#7G1Ykm$ZCvdH_rnSPorTEP{}h+cNm@uuFD%N@gLGui z&f2{n)gJk%_T631hTZSKyX*ai-K!0I{zroew|#g0`@5h0kB#dE=mHwl8=RJ5Rq@!OFSN zhhQyZZ=Le>o|^AEJf}sw&VHMFJNUH!*zh8F7y7t6XeQJI+Epxe`44|=0DX7OcYQu| zg$r_x9j9X^uM~Yd-gjg%{ATyuRPue$qw(J916Km}fZSipy8rb~z{b1(PCiPoZl+ay zrpF?9w}nY?g)ZTVtu@DkPV~xVV+Xf3w`61w*XI?4#+fsDiTAG-l`vCb2mW-HJU2xZ)od?s??z*x?KRaQ*H}etvKixE2!P3lm?}7wLD_ z9^CcIBcHt2uxItiXCJ-$*+{&|MyQJT{QoHx#%X@df z_wKIC-!aU$Z1dSiNB)6xHdsWI-10E19sV!Q=@qv;P_#s7+aq_iN56e?e`DA1sWVT8 z`&s{ubIR@Koc42+{V~-dZai7h*yX;`UwP~NAFuu&ufKCn=AlS%0nSN36!{OFz zfSWGF<^1_u7++lg2(3wf=^qyWf;_G0YcJ$TenI?7LDEV=yuRqw|2@Zm+7)@uk{lqm z6M{kk{rLR*90kEAmP?*Z8SFCTEb|Yt25$XH>kX&sR(@`ODNFbV>AA&Zo1^U>!8(y;P%j4ZGjiby9fkOiWkwQqdkzEZccf_#t5XxYrYN zy7t-ScjS%z71!nQcR(?^>-*xX`9&Ljb%pvX=l^*9$g2xQ`u_haf^W+@vu~quMOSQa z`jWMxq-+1T#qt-$cU0bKBNalpl|1O3r8CJM}pJ! zd%MoFR#r4ip!oDf(Y;9@qA#pH<@#en&PQk6=Qn*ElC#qJUGeJqO*@(3>t7^tsO!RQ z`JP`^T;0BMWY7EO%iZ4>cXomz1d%j&G7DW20H=5u1vt~h_bK+4} zyX);Uj{*AJ672>Frh@KEMf#IvyTG{p93<-_W@4__eS#NG;k^$k3JxVW(f0Ews%CNPhFM|7f+0w{2CO8bDpV{li-KBNkP;u@mdHZwE!RxFV)4K-7w8u9UFLe7G?vy1ALwXc$aZi0MuB) zcg6$54-s|%Ko>w0WCOA$cS9baowIjKYT|1OvbDpL_&|rq3chn}67K=fwu5c}JjdC= zX z5Scw*ZR;Goczt2*1s<-@AO`^a^Y2x=_AH<<@L?|&t|NP+;@c%ui9iz2iV(qU|=FJp7=$@#sHugta?$gG0{fx+u2^^z{8pc2K~N59AypO zm}sNji;8b2dhr=x@;#+ zjZJ36e*5l4#qi&oyeR(v|9EW!1>Zye|1n2f_1h9eE^sn}3-*T=hgClez(uVu2&RGt zxEl}*UV~)=4r2+y%IB&iV?JJ~wH45cc!MOHWJiNGu)SDNDVs5*Zcxnz>Efm6g$)u1 zqL6S*@;=^J0YLV$yCwC2{{VH5tr$v2eK;pO3t*494epu<45ececL66{@8l77fbPTb8A$12FrMMS`71n=W8q3?iMbgxY5L&|ZaOfU zGy|lE509{pPhJi?a3|>_V6@F3KPUyO`TN5gOl@tI&4eA8y8@BFNBkkLUqrz0MRZ&9 z`(MH+JF8DP0+BdG3Lz_T0bl_LK8RL4zU|^A^T7MVCw{YD?}@4L?kk%;TXg%8Wr9mYl6K8`{fbT&HAdk{|8>ai^8G)P)!h#1O@;Y68ql%5S zzBVhCius&5?YTfmiHQ<5B0`p>8)Dk+PatD;o$v=xf_%r~_U*kNLNC=+e^iHAFsp#) zpQoe;<-UKv@#WO}%$RjyQsw(TSEQu=NU73fWM%7e^9qW95(Ei@ zegr}7Ap%j?spOWRj>%<2o8V zBoFJ+3c`AFg|QUV&wWcZ?uzET7PJRCq~7wbR*OJ?4m|i(RFn|9{Zp{Sz#^=v%jM(gUQ5qE$zrGPdgEl~^a?-C*>PPdyI(^7wQqIV4$MiYR zik94FH*V|VZ9+r@Zo9Qx&t^|c<95`p8Z?@sv>ec`r?%@xk$zLO4W~?oWeexDk2^he zNnlQfcxgG6AV8_E)9LUVD^h~4L=nV?oZ8Ow&954kuF;Zd)lK6*KMLIkYe9kD^ug9 z3H$x!@sH7_p%iz{a*I)>UwDhHKV6dJH@Q3g<^OxybXy^|<)Bld;=+kiw|*I#JZ(?g z8FKoLh#>oF4dI-zd%vALbu9I(PZm$zy7P-uxs}d!M16*{=3j{IIG10VOLc&)?1~-bgUhg#^Gp2D3on3#UGys|r!Ad0tu?2kQYaZhS zj!e;H570)2KsFOVQvMjtcYi_(N5FJTol(Rz3Po*My$Le0<4%${*hVx+WfIYR5FUk@pa`jB+Q=5M8F_e9)LMRO8#Vm^ z!7Q0yA_9W8b*5K?U<%>>Zm3b#k~XdZZH(iJI9`)Fl%br1lJ|RXC_8dm9u#7=qDF{w{k~8{VtgJ=YW0a&^}X~?W>N3ry0Y1E3MiBWyR{}R7`<0wY zr>o@hP{nG$>mC6j8}HeLu0WeJTD;@zj()dc1#23(-&@)>(oj3V$+>WOD zd%lmq$PNF()yRW83}I*Ha-xU5)-e^A~%< zh1TnKQ>n3J#yn~Fc`w<+E%%alm=AOreHm$SyK}bW>t&+`@7>l*pFDG!j$CqA}rk?Q_bSXpR_m86A!^_|fgrLq;Yo z`OUf8690Wz>%*@lyD)Zo@zS`{ygKOTf6krDpIGvYcg=`u?FO&hFV0o*@g-u)p8iGA zmdT{ZFX)CUX<(C3;us?I`Eg=f`U#}GT7wfE)-YcmLR)LJl8(bI(?$%xt`;*lnes^= zJ(YKSN{!Gg!Z>@~gaNLf=F~An5210Gn})#X);bJVYsNJ&PGYYvqx{-JY3~{m{DGP==`G(viEiLt)4fR$j}d&=E=z=H)WD}$2*+v;@zAH zMKvKCf2-u+!GmMbHs1_^T&yNTyOC@~|O?(4*kerEI#`?g!_h z_(Qafq_JsaMNt^!l1T;qQJQDVj%W@osQXG`VwVn9RDEtfw_+Y3N=ICNyBBh%<$)6h zfMjg4@_^GOa*2tO(US-LmZS$O<6We)op>+#NR>R!Wh&97eK>w^sF#>r_2o^!#hD1J zZHk3q*k>9)3Jcf9k9I)M5uQgJlu1@YkSLq{5@BY@V7`@L)3;(qc&Z=gvu7UCXmr&a zo({JaYy>C75c>UGx zpG+>DXSz&HE9S1^kuNU0?4}7rWt^=-U!Sv-d+lDuxv^pJYQk`fD4oCsu1^>Kb-jG@ ztpf)LmW?u%vSrMvOI>C?HdQ6E-LZ9@7KoVjw4-rB$B#WXAg_CAWCP98AXQjNf0)i@ zq`_87grnAUOmqf`z&wW@d6NY&hN!)3G|!X*z8?G~VkJymB@SO-qa5tV8V?)>g1{x#>wP=b?+gym+zjhb<~$$W-wJRdJrT<(ku65;$QjkzHm_o9z|HDptc> zetUEi_lDAaW=d%0?ZAtZ;$3%!!>7kjmIO|wjhA#kC^syRo`iKdxy|kK1#Ad;-D6^N zHv!F4mj!81xU^A&vYQ?}2P(v;M$SM33VI7wZzMA(0Dv?7M_~p>@W?^Y7>ZQOjp?JJ zxi)Ah@aSJY+!(YiM%*prJhgG4MC9b~W)AtVM#!I4#r{#Im!|CYhii_gE(RO6h zJM8?|a+-{d3MYkCV>}}pIo2RUXj3%QVuWbIHQGrs__;VpgnbEFWVpyWC6sQx9-%=| znp#w5P0Q!=8iblTTsBB=3}A6aB-(KsYY(tJBPZdlpVK9SKQDM~&9uE&b?YZPcTYBr zHTD%ND;?5_p_Q6T$rE9UB&(F4bK2yKcCCz$)a#F6HlHQJW-W{{Ct-!vTs>xie8JBZ zsE2_H)_}UkWi|(gA(&x@Vux}yhyyp#g%YVW^FfwF!H&p<_*i50-@Z}~jO^U}WJF)I zZ_n6|zR4cW7WOHRyT>#97%+rRXdb@@Cxy4~rJ_>)Icn%hYurIvT#GF>S2yBMOoXkQ z-h2JDKBwu4mu{8?roVc-MS<^Vsu<#+*GwUwEG8uG3t;_HORIk5A@5fyP+AkgzS$cA zwz%dLhdkGh!u2=$bj;=eE-O4#BodZ(D;_Hsr9EXB+&tG?SROfFUc_>VzG-{qXJOHj z^S?KSXz~P66$m!O`4PmQ%zJ6+=E)~t#02TFPGiCgzWtBkrhHwy-c6vEXzH^ zVZ{f+%!MO&G!togsp|A)%iN=sZ9A4MCf!G}{$sgX46@UL>8MOLlZ>SS?iWanXxrf+ zFGUK2pC2XD8%e6}OATGgzUifAyd*rUSct7*)oCRmCQI&g5wlZJ*PAD$vpPLaZYQ_X zNg1LbcyfOI$9|b;Nm+eK`B%TTL@?toeDF=4IFTh0@Z>9(oW)HBolG_rM%`%{;>gB| zWuyDnyb|7$UEzEx-cen9?TNs=QtZvXHDVnE9mkL?RDrR_aS_dEYymoG zu9d;2SLgCEj7-e+UTlMJPP^(GwYp?Di%1hZkkTV3Ti0Le z)E#sEJ#$I2>6BmF>K8#l#$C(f0%Lwi{)DY?vd&~cPjh_H`wU}*yNkqaE5u<5&a2$F z%^J1^<1E+oBI;aZd9X}T##dBXWK!nwX|)D97F;FOd1wlCZnrE*)7{GO4{|VsnXq6E zU=L?>_7;fYPWve@Lb4}1j6(&G+n53Whu8Rg;FGUkH_ZGBM}JXs?SBS*xEf^K<}yv0 zPuf?4^pp3V@y-Q3UB8sKdvu3u#XcY|j@M1POIB*k_X3y9IZF%J>BhpOvEq?fuEgxV z7v_2*rV9Vi>d}V=@Pnp$VeWOKi9#LA%7+?D#_Ko%7w@q(}*QT#K+Y^j>Gi1WT-#C0vT^{|1w0{a2JB7ki!Q1 zU%Mw-aX8|(DfaWjGpYx!@LJgzkrYQ5^zl2kAhq`l@s2 zC+<0!=G9nd-x^7YwA~U z)yirJqonNmbV`%zxQ`}Fna~#$=zp5r)To{ z;m>wV+(Qe)M;q$wfkVFGiq-h5&5edMX{FaYSft}D5r${Z9h1XyGN0}-3OkU8Qp7%G zlpW<;eGp1Z%g31{MkA5XO!^~59Q(MCj<-^HW@=Cxq7b1J0zX8=v?&6jU6-~v$m+10 z8kiPYapbF|%mFrf^)&QtNWlY?=0@5GDKNnA|9s!CHRR;v)yXTDu3XrNEJT3Y1@2SN z#>o}7;|GW*oHw3g`I13fb?*q-pK-6dB+j-Psmq)$ntnhH2iZ~-hTE6!Vzjsp1ke#3 z$PQCU=)~VH>1yiv_VT<#q7L5cw-ju~T%C+S$?COPYT*f2NB2{c2s@uNK9}0*2m{XQ zrs|Ne9-CBPtplElq~5;HP4PPcOP%sXt0Y8ER|(VG-d(5v-U~-XT>7T|7k6`Xc?qhK ze_G!^$yi;*Z3gcJ!}t_2VL*XL&pUlE&emr!ROam7y?ewp@TtV^8wU=3+>VnM3{tOj zWg$P_#+k6zlZ~8BwX&Sb+{tyU=w>9Q^gdv7efOmZ?|6htO6N!wz?wGl>3v7J$ES_e z1`SjOYfx*w5wEMl@y$jAr&Te#5k;nk;D=(`vsh8e2`q)kDA~>z3&R74M-vPeSoF9l zZtcOeE4MDuKQG+=5BVL%C--tcoE@FTt`K3DYh{5`^3ff&CE0M11DLnkzqZ# z5!&d^zF!`RO3M$O_J`0vB(xoy>fJ8b^LgHO&f7Tpl)kvPwjn!q5y%qX^&KKxbF~q7kjz1O{aMiUA&~gqykq&Z9E$=|VBvBen>M3BanoFzIiAGmP{$svifI7Ahc& zFax?($2nwE@*yNNW(`6ElA- zXVPTwGF?3`@~|9ZUo#-%aNO3JV5yYFk>aUmD24&$9dAIOD3yY4Rp-G?Q+=35IiW$C z)~YnARuPO^ZrqoVWDF62r^bkkXk$bI>{*j)xLAJVBc*598N^L#5bhEd1Zbw#g~t~? zUzqxEzky?^*^Kv&H4wkc4rQBUfU41-zaovZ7&iIZPMz9vd54<{w3`lulrr+0OqAVk zTUIP@d?egyc5^b-h3GOtP!$t)C+}USj?S_=@MC?w%I8v4h`<~K#u*5b)MADDL{p_Q zJeAqxCq1L|ip1L2T;+m`I_I~dgBV&wW7R{*ILm5^*y z=Xn^Q5qTCcLi>D{O+$oqmVnMa?lB+&Df8HaFY!1QFvYFYoaY+4MTG^;Fj9k})&y}u zK7xYocXMLayrKR!$1USxfTg83xX#ZKkO-L4aewT~)V`c|1NNamX?`4V@aYFb)NH@I zp9&;S1m$`g3!l|aP8vd*l6uxO{Lz+TFH@!~mC1B*mkqi}yg2)r+-o;Yu692#z8t^J zBD{=T77ZDO>)j<}v&Cj_@36N*4MNnhHZhwF&asHM(iKQXnHLwK3>?cRBOqKI`QW*R zPX{408yOsMG?nh9S^>WTw_ZpXQNRt?lQDJ6XgLzy8WagZUFz4)y9BrVXLCoBFFi7| z`hQM7^S-kg%9~BlXYEbfSABnC)#+-kaPl_UdTJ+~{#~Z_VA-a)Or@4Ml^H`5dU-|5k z;h++YYtPS+bg1@bOx07){@N~^)8fm0Wx0r3D8sgWXj$nOxpLxddQDCtHj*B1migq5 z^l`3O^ETU91@Q3FL$(xgLk{zo9~g%QOd-=x#bVc;w=RmP3Zn2sC-rIG7MIWvIO2B% zo`$QTOqqX^LGSH%30%JM0b2!0QaO*Px-N;UF+F7JLHWflGZo9bW-?ZMviaB(G+(+b z9kWy%F4OsEhK%^+y6KuK`6zJxo;hvxZrbv#?T?MU|5g&e^X1V`l`>^uQVt{bSjDL~ zYsb(9Hx+rk@~4KYPemVDS3Y(Q&o2M^MT}nrrAR;O>`?ZEXSH{rn?C>lS@LbAls>f0tb&U$NB`cDSvNItZWpD0N z0Os*XdG$&X;Rxfb4}>U702Dioq@%n5MQ|`16YSTBltwON8mdp1i5;PH-t?{AsD13~d3`*F*=e;g?Amp<}Yf!d#EkJrwDIhR7IvCNw zY1Q2nl1zK3fiw>Cu&w*>3?3}V6wL(Sm_J>lT60h`;NY^WW^j>O39NiNRJ8_mW5i8$_UJ(p@MX}`2by74J-N-8a<^{nv52v zF1k~@cnX!I^>L^^hgH7wU+1)Kq&P^HV;bEEK@V5|=3(h)Iiq}!nTjWAx%0HE8-xz+$p zyIeO_LkC{2PEt1vH$MnHy1>3@Qu|cKeK&rP`C-7{z8>G)Rexw<>Fk^xY$IA70 z6)5z_i4hAzQex+tm|%|>bR)6ygdP5PZDC-Qq*lFx%Vd7zjRu*|qOasFiCTszbJ+b?Dsm6pbyk9Efr?zuf`A1SWAwJQRx>G* zM5)BwZUuD6=*1gle)-adw7q#qO8uHQSvnJ-h=_cIwo!>KSq>_KMw8C8k<~_iYisob z2TluS%(an<;DlTU4Qy9{*ytlquTfJ_;hZrh40A0iK3V-hi6U(Z8IvCh#RT!|7@2~g z**b+NupEu<%%(Tznm`maO^vcnSYnk4v2a61UxE{5^=N~gDzJf|jTqLoYx81@G-+~4 zAg4 zr63KGbwk(Q%ZZdek%!d>I5_*gB!%EHtU3(pj4am$=ZhmB&L&sW%efEs+yFRYC^5FIJyE5|%b6)B171a-|NUx+D5J2kd<k&XH(yc9;0 zGjqK_wRl5gjNMrBLq|0|Qe#B%PNTHWi0NQ78fYTuu?D3S(nmE$Ob!?&7!F@}f>4Pz zG+FkbI|ArxXcLVLuGYlarI1pT(G5tnNYax#uVtQ4P1RVYBEi;P^#d>1`mQSDlX%q} zjqF{_iawD$#qC{WL!FJXR&pIF9FnIr=SIjn)6||pqP>OW#I&GzCJYC8p@7!IfXRXH zNUNSxly-yj9?8O(GE!rVJ|U=sSb<`vD&h$W*D%v!PEi(dO%R`oz-ay%niyIlJCKb= zi?C)$*H^e688QSnXQUPNa^QxU!90vHM9m0r)FapVwJUX+7!pg~PkO=B0x5Eq~bdzJg8u|=$ARf3FhqNv5whO`MI1jZ~6$thKO6$4;txE?B(0Xq{)waH&bib~US zb2HO#^Nyuw?(Do8JgWctqan$NJ>#EVeW&l&8S4YbGkz_C5dGdh)~oa7Und|1L$@WH zZn~ofRdI%>sW7*V1@>TVJ*vRt0J^IsH^=Tc7L8C8Uy6J^zo_7i- zhpJ<_EM_&llpeBlSFQ_5S{W}HpW^D&;ON0$y4V``>>xy~SV}5&=!A0y z1S}LF-OHI+t$JE+9FRzC%|0T`@Gq=lS>QCbroB}dYUf)v-Vp3{pG2C5c&5_ zVM{DCrS}l)3GuZfpGs^dziW(Q#*&mhLgeRC#akRXA%)da{j=h3`-(i?n1<$$wtPP1=P#>t-3uI9k>`(^kGN~6 zpv-G;E91$!p;))=jyybP31dtz*eY6t0@v!O*&ld7t2rZ$rjVrvy|!B*nmAN%7g`9T zK@U$LE+>BQr=la9>?R4ZvoNPna`;-$`CmObbanY4;pC+U!c7&o_Pu_oXmHZ;>A2)> zF5h|Z=KWVVue|$6SE3r5bDg?0+;m|vmkK>~O_?)kOf1r+<%6xC-DzYh`eAaemORO4 zSh?ct^u{Q`fC%Cz(c*=EXZUJumaQNUSfURh-WvFS1u2iI5wSC>p<`Gh7G#mi%kW;o zfZzt_{!OxrmFW>8ElNm3LP{^Yk^Qh+HW#|z3R7aojR)gm%XJJwJSIxaHiDgtAk~)! z5qs^qltpQ{{xs1Uj8v3DXj`j^Mr)c@8pt&oD~})Z2zZ>DvMfiI_c{zhM}1;}gYAU-%uGmC601;M^LsxFUC%T$I!nL$|~tjC7%L-aZP z@oXakB|~hXKqwSNWO(Zkw(KZwk%E&$TQ_4Uo0LTovv~C*O}9`s2aJqR5s;2mkGeTn z@S!<~MloU{!6#*k*7&VL8M`yhUy^nftI?R+HQm*77!E>n0fJCDv*)^p3aF9P*A1aM z!EGf+NMU21pvR_byhTk{)`EuAOU9I4K9Q%;xRM62b0V42 zKwuoNGc96W?(Hpz)!l|A;nGf8O?x)IA$NXVDFnud_C{p?;*%mtXKvp-Stq9Edg=8U z{4C3`Fj0^ zF;?3!@1JsYP^#UxFGS_m6u57X`W*;B!=q_^Ss^U0-lSA@($Vu(SJhNoSUp0%`Pn?i zrfATAyswk0li$@X{o;*iXJ7Y^TorqFF5P90*5YnO{!*B2mH&mSByLBhZ`|xGUTPc| zSivUjE4KJN^+BX~l#q?_Vs>zr_I3Si{`A?**=Qp^r9w0izfM->Q6xNq9JoL5w&-fX z8Xu?AGnuoBhh(?RHcKL{TC9c{&Vi=}rDS$rL`p*>yNxrr8D`l)t=vKPenml#JZ#k4ua| zr^jD$n{0P#FisM`vZaMLZq-*R?6E--;$9ptrZ!}g`6tPPg)&W#@j!UVB`tl%h>(sB z5*)`#7Ru;M#1TQK%Z&VhA0;m0T{enJujHwVd;)LUvZo4LW~&41Fu2K>N2Uu> zX$?j?ul@nprdJwL9RwCvM^4c}%+Q!m*TF}XO5pI$Q4C>~D8q`QbSW;{+RE5(Ridql zF2>)!W?vm$SBC{cAG0n^J!QJLCnRiLWsYnax;i_1bgfqQg*@IIqF(Xjj@;Q{%ts5K z5id>jXM9XhArmDNZqsUD)5q%l47ZRdFVi_@kTh@?Q-xVON%jr6Cp$t`C3*yPf3*|rb*#Gw zr&|lQ87{by);-}+iRO=*54&6cy`bv$%{5U;Ov&d~?=LN-xy;WP5LeXSn%>!v@Zkl; z;SqbEt$EM*>OC@iM}b(Z-goxG&qpLf_H><>8)vUb@|!SriGNw98C2~pYs-=?UmDr- z#Zdjq)W1Hr*;mGiq?}g{<|Kuv<5%k{*t?gw3ww9^`&VN=^XeB5jQXTFo~&q`WiEYd zC2u6m@P+wU-Aa(UsAKQGvJ98yPl%i6mFB6jCQg2nZ(nB4X+B|59%#LK!|T+go%RFV4(NA5}R2B8#tGvWpEGSzgoqa$xN9@=r@$_Vl8>WunWa zj}zOSqM>^I0V3!UKJrm>teFTKqCXuX5(D8SVgl!}4|}mCsh7p!7- z<tTUsX)b7%w|-@`5McHL0Vo=;YCfF;YFIA6Zdq3ID;tWOPgJT*58zslZ9#bAg344$7!9f`q znoCY-Q92m@NQNnuXPW>qGvYZE9h{fyfe@p>N(qhH#`2+wj!1*Rd!lssO8`HJj$7EN zy!t4Dh9}H{AU+c{rJf|GY4o5e;ZYm{fqih2uS{vB;qdVrY{*(K6ggsy6u*^|kYVlS zKn!}MV5SvV`~oayh7D9$gukk+TejxFOTBfiRD@6`bW$08jCxf;T~K5z5)sy!L9g%4 zZn+V1E$X z2;$RPvE&5$8hQ#1OCwmF8Rw*-R3yU6kTbOr>=SgS_8d(R4V1M}SrmPu4u|WUk>N-$ z5nX?MFfUd~^A6@~Q_}oc4K1=Mfm7}fD;b(8aE_vP0WWG#i+Mt28&g7rOh4HZUHkRW zhy0CmR7lnp_P<}evDh1#n*XNf`mZA5rV4gG%?c0S^Fc{?Y~&w13x51TiKslJQ;zOw zzikmBaegNROs-ZS+{GHMb4$6(s6EQPi&5#AUeo_3xlzm=UorB7zh%S+Bk9XWHjJCx_6f-8mSftM#WbO(AM=cA}=UXZY zIqakfqy88p{2S4cEvpMpvM(pxz3}Sa3~WCScbaAUJm}NGebe(zL!|qTn-F*D+S?q5 zvgwG@QzzW-z^g?;RxhbgKhhwGHz3&`eq`+iAz>MPEsKv)trR1IKxv^u8KC$!5FjHd z4KmB_xv3_^#@@S&Hcc&za@9?sA>WK0KM1wZJfC1@UG!3Z#hIhkc1 zge0qjy2;iEVQ`){r6D&VRGyMHKa7yVLl3;9@FBkq3q2In&7c!3Mm`|(&RcL8O)hEZ zoj+A03FOp-5%dhMPFSI{u5&FmsYn3PWo0Ot_yDDZRddOiHsx&SLj;85GG$8aJ<>&>k<4~F1qG9EyO!3wq!qzN6xi<>R5zxO!Xj8SqX6fX4?XfE zvk%P#utS40BaIpop=R01!7w2Z3>C3L5Q&x+7LCh|(pYYEe}R+hh~;Yf7(Klv3Ec>R z11`?&zC>I(fH^bhX{J`VwIi;-y{&Mw5=2m_{+GhyYl`%n4}?UQPloLYAG~9RFc&+>U%p1<;XV-evWuHa8vL!SxSRkN*f1pr;!)Y5yC~=+OrZ6C|NjM)6Ru{ko z;-z6w*t;02V+A^kQUYaKb+(@*;3mCYTzmO1Ip|nV&S$~u1N)a=hA@Wmv#$v1-KCdR G@c#oZT(| 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 diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_depleted.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_depleted.png new file mode 100644 index 0000000000000000000000000000000000000000..69a06b986491562d8f4ce521f992332229b38f90 GIT binary patch literal 503 zcmVXfNS7I9D^L)GC3IK?!3Awx6SzrccE z!9mc$$*FNq$sk8GgrfvH#wlI8b_;^s)XUv3?*#AnbEpK*q&oJyz4w0a%jf;xgPWFh zU12)un;;1I!9CJ6<>=`B+PBW%iR0rhCP@-J&%H z)cO&olfLmhk0^==f`IzBhs4?;&TV3C6NWuR1QB66>6_YWp7VjL1vLYWc^%7`f;BI^yB%_f(*gHnnt z%ZRnjTwA2tBGn}p+Ge3`vMehY6jsu1@0;4Z!tK^i!Z2h@cUVyV-3(@f^Q7 tThQy5ZR2lOOgQ*pKK0(3|99M!egQ<>=PrUcn&SWf002ovPDHLkV1lDB?2G^a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/arc_furnace.png b/src/main/resources/assets/hbm/textures/models/machines/arc_furnace.png index 8200d30296bcc99322f05e76bcd6f9b0a0017184..f5301e2e653a49b696d2053535e7f80f9f2e6e3c 100644 GIT binary patch delta 10816 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 K+7+5E&;B2QSp8W5