From 2d6edff7ea6fafabd60e7d3f756a827f4984ac37 Mon Sep 17 00:00:00 2001 From: Redeix Date: Sat, 2 Aug 2025 05:29:52 -0500 Subject: [PATCH] -Receiver casing fix and large solar panel tiers (#1505) --- kubejs/assets/gtceu/lang/en_us.json | 8 +- kubejs/assets/tfg/lang/en_us.json | 2 +- .../interplanetary_item_receiver.json | 6 +- kubejs/startup_scripts/gtceu/machines.js | 265 +++++++++++++++++- kubejs/startup_scripts/gtceu/recipe_types.js | 16 ++ 5 files changed, 289 insertions(+), 8 deletions(-) diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 3d97969c4..20906cbde 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -5,7 +5,9 @@ "block.gtceu.end_dome": "Enderarium", "block.gtceu.greenhouse": "Greenhouse", "block.gtceu.steam_bloomery": "Steam Bloomery", - "block.gtceu.large_solar_panel": "Large Solar Panel", + "block.gtceu.large_solar_panel": "§9Large Solar Panel", + "block.gtceu.large_solar_panel_tier2": "§bLarge Solar Panel II", + "block.gtceu.large_solar_panel_tier3": "§cLarge Solar Panel III", "block.gtceu.gas_pressurizer": "Gas Pressurizer", "block.gtceu.nuclear_fuel_factory": "Nuclear Fuel Factory", "block.gtceu.heat_exchanger": "Heat Exchanger", @@ -25,7 +27,9 @@ "gtceu.steam_bloomery": "Steam Bloomery", "gtceu.food_oven": "Food Oven", "gtceu.food_processor": "Food Processor", - "gtceu.large_solar_panel": "Large Solar Panel", + "gtceu.large_solar_panel": "§9Large Solar Panel", + "gtceu.large_solar_panel_tier2": "§bLarge Solar Panel II", + "gtceu.large_solar_panel_tier3": "§cLarge Solar Panel III", "gtceu.gas_pressurizer": "Gas Pressurizer", "gtceu.nuclear_fuel_factory": "Nuclear Fuel Factory", "gtceu.heat_exchanger": "Heat Exchanger", diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index d0260bd41..9bfc13fb1 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -254,7 +254,7 @@ "block.tfg.rapeseed_dead": "Dead Rapeseed", "block.tfg.casings.machine_casing_iron_desh": "Desh Machine Casing", "block.tfg.casings.machine_casing_red_solar_panel": "Energium Solar Panel Casing", - "block.tfg.casings.machine_casing_aluminium_plated_steel": "Aluminium Plated Steel Machine Casing", + "block.tfg.machine_casing_aluminium_plated_steel": "Aluminium Plated Steel Casing", "block.tfg.sand.fluorapatite.blue": "Blue Fluorapatite Sand", "block.tfg.sandstone.raw.fluorapatite.blue": "Raw Blue Fluorapatite Sandstone", "block.tfg.sandstone.wall.raw.fluorapatite.blue": "Raw Blue Fluorapatite Sandstone Wall", diff --git a/kubejs/assets/tfg/models/block/machines/interplanetary_item_receiver.json b/kubejs/assets/tfg/models/block/machines/interplanetary_item_receiver.json index e7da65bda..5b0368022 100644 --- a/kubejs/assets/tfg/models/block/machines/interplanetary_item_receiver.json +++ b/kubejs/assets/tfg/models/block/machines/interplanetary_item_receiver.json @@ -3,14 +3,14 @@ "loader": "gtceu:machine", "machine": "tfg:interplanetary_item_receiver", "texture_overrides": { - "all": "gtceu:block/casings/voltage/mv/side" + "all": "tfg:block/casings/machine_casing_aluminium_plated_steel" }, "variants": { "is_formed=false": { "model": { "parent": "gtceu:block/machine/template/cube_all/sided", "textures": { - "all": "gtceu:block/casings/voltage/mv/side", + "all": "tfg:block/casings/machine_casing_aluminium_plated_steel", "overlay_front": "tfg:block/machines/interplanetary_item_receiver/overlay_front", "overlay_front_emissive": "tfg:block/machines/interplanetary_item_receiver/overlay_front_emissive" } @@ -20,7 +20,7 @@ "model": { "parent": "gtceu:block/machine/template/cube_all/sided", "textures": { - "all": "gtceu:block/casings/voltage/mv/side", + "all": "tfg:block/casings/machine_casing_aluminium_plated_steel", "overlay_front": "tfg:block/machines/interplanetary_item_receiver/overlay_front_active", "overlay_front_emissive": "tfg:block/machines/interplanetary_item_receiver/overlay_front_active_emissive" } diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index c0a364dbb..64e6de68c 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -210,6 +210,8 @@ const registerGTCEuMachines = (event) => { "tfg:block/steam_bloomery") //#endregion + //#region Large Solar Panels + //Tier 1 event.create('large_solar_panel', 'multiblock') .rotationState(RotationState.NON_Y_AXIS) .generator(true) @@ -238,7 +240,7 @@ const registerGTCEuMachines = (event) => { .aisle(" B B ", " B B ", " CCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") .where("H", Predicates.controller(Predicates.blocks(definition.get()))) .where("B", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.StainlessSteel))) - .where("C", Predicates.blocks("tfg:casings/machine_casing_red_solar_panel")) + .where("C", Predicates.blocks("tfg:casings/machine_casing_blue_solar_panel")) .where("E", Predicates.blocks("ad_astra:iron_plateblock")) .where("F", Predicates.blocks("tfg:casings/machine_casing_iron_desh") .or(Predicates.autoAbilities(definition.getRecipeTypes())) @@ -272,7 +274,7 @@ const registerGTCEuMachines = (event) => { .aisle(" B B ", " B B ", " CCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") .where("H", controller, Direction.SOUTH) .where("B", Block.getBlock("gtceu:stainless_steel_frame")) - .where("C", Block.getBlock("tfg:casings/machine_casing_red_solar_panel")) + .where("C", Block.getBlock("tfg:casings/machine_casing_blue_solar_panel")) .where("E", Block.getBlock("ad_astra:iron_plateblock")) .where("A", GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) .where("D", GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) @@ -286,6 +288,265 @@ const registerGTCEuMachines = (event) => { ) .workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca') + //Tier 2 + event.create('large_solar_panel_tier2', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .generator(true) + .recipeType('large_solar_panel_tier2') + .noRecipeModifier() + .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_iron_desh')) + .pattern(definition => FactoryBlockPattern.start() + .aisle(" A A ", " A A ", " B B ", " B B ", " CCCCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " A") + .aisle(" A A ", " A A ", " B B ", " B B ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " B B ", " CCCCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " CCCCC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B CC CC B ", " B CC CC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CC CC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B CCC B A ", " A B CC CC B A ", " B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B C C B A", "A B B A", "B B B B", "B C C B", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" C III C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" C IFI C ", " C F C ", " C F C ", " C F C ", "C F C", " F ", " F ", " F ", " F ", " F ", " DFD ", " EFE ", " EGE ", " EEE ") + .aisle(" C IHI C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B C C B A", "A B B A", "B B B B", "B C C B", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B CCC B A ", " A B CC CC B A ", " B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CC CC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B CC CC B ", " B CC CC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " CCCCC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " B B ", " CCCCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A A A ", " A A ", " B B ", " B B ", " CCCCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .where("A", Predicates.blocks('gtceu:light_concrete') + .or(Predicates.blocks('gtceu:polished_light_concrete')) + .or(Predicates.blocks('gtceu:light_concrete_bricks')) + .or(Predicates.blocks('gtceu:cracked_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:mossy_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:chiseled_light_concrete')) + .or(Predicates.blocks('gtceu:light_concrete_tile')) + .or(Predicates.blocks('gtceu:light_concrete_small_tile')) + .or(Predicates.blocks('gtceu:light_concrete_windmill_a')) + .or(Predicates.blocks('gtceu:light_concrete_windmill_b')) + .or(Predicates.blocks('gtceu:small_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:square_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:dark_concrete')) + .or(Predicates.blocks('gtceu:polished_dark_concrete')) + .or(Predicates.blocks('gtceu:dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:cracked_dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:mossy_dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:chiseled_dark_concrete')) + .or(Predicates.blocks('gtceu:dark_concrete_tile')) + .or(Predicates.blocks('gtceu:dark_concrete_small_tile')) + .or(Predicates.blocks('gtceu:dark_concrete_windmill_a')) + .or(Predicates.blocks('gtceu:dark_concrete_windmill_b')) + .or(Predicates.blocks('gtceu:small_dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:square_dark_concrete_bricks')) + ) + .where("B", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.TungstenSteel))) + .where("C", Predicates.blocks("tfg:casings/machine_casing_green_solar_panel")) + .where("D", Predicates.blocks("ad_astra:iron_plateblock")) + .where("E", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get())) + .where("F", Predicates.blocks("tfg:casings/machine_casing_iron_desh")) + .where("G", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.block, GTMaterials.Silver))) + .where("H", Predicates.controller(Predicates.blocks(definition.get()))) + .where("I", Predicates.blocks("tfg:casings/machine_casing_iron_desh") + .or(Predicates.autoAbilities(definition.getRecipeTypes())) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)) + ) + .where(" ", Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle(" A A ", " A A ", " B B ", " B B ", " CCCCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " B B ", " CCCCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " CCCCC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B CC CC B ", " B CC CC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CC CC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B CCC B A ", " A B CC CC B A ", " B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B C C B A", "A B B A", "B B B B", "B C C B", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" C FML C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" C IFK C ", " C F C ", " C F C ", " C F C ", "C F C", " F ", " F ", " F ", " F ", " F ", " DFD ", " EFE ", " EGE ", " EEE ") + .aisle(" C JHF C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B C C B A", "A B B A", "B B B B", "B C C B", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B CCC B A ", " A B CC CC B A ", " B B CC CC B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CC CC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B CC CC B ", " B CC CC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " CCCCC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " B B ", " B B ", " CCCCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " CCCCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ") + .where("A", Block.getBlock('gtceu:light_concrete')) + .where("B", Block.getBlock("gtceu:tungsten_steel_frame")) + .where("C", Block.getBlock("tfg:casings/machine_casing_green_solar_panel")) + .where("D", Block.getBlock("ad_astra:iron_plateblock")) + .where("E", Block.getBlock("gtceu:tempered_glass")) + .where("F", Block.getBlock("tfg:casings/machine_casing_iron_desh")) + .where("G", Block.getBlock("gtceu:silver_block")) + .where("H", controller, Direction.SOUTH) + .where("I", GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) + .where("J", GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) + .where("K", GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST) + .where("L", GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST) + .where("M", GTMachines.ENERGY_OUTPUT_HATCH[GTValues.HV], Direction.NORTH) + .where(" ", Predicates.any()) + .build() + ) + .workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca') + + //Tier 3 + event.create('large_solar_panel_tier3', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .generator(true) + .recipeType('large_solar_panel_tier3') + .noRecipeModifier() + .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_iron_desh')) + .pattern(definition => FactoryBlockPattern.start() + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCCCC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCC ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A A A ", " A A A A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A B B A A ", " A A B B A A ", " A B B B B A ", " B B B B B B ", " B B CCCCCCC B B ", " B CCC CCC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " A B B A ", " B CCCCCCC B ", " B CC CC B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B B B A ", " A B B B B A ", " B B B B B B ", " B B CC CC B B ", " B C C B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" AA B B AA ", " AA B B AA ", " AB CCCCC BA ", " BB C C BB ", " BB BB ", " BC CB ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B B B B ", " B CC CC B ", " B CC CC B ", " CC CC ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A CC CC A ", " A C C A ", " B C C B ", " B C C B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B CCC B B A ", " A B B CC CC B B A ", " B B B CC CC B B B ", " B B C C B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B B CC CC B B A", "A B C C B A", "A C C A", "B B", "B B", "B B", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B C C B B A ", " A B B B B A ", " B B B B B B ", " B B C C B B ", " B C C B ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" C III C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" C IFI C ", " C F C ", " C F C ", " C F C ", " C F C ", " C F C ", "C F C", " F ", " F ", " F ", " DFD ", " EFE ", " EGE ", " EEE ") + .aisle(" C IHI C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B C C B B A ", " A B B B B A ", " B B B B B B ", " B B C C B B ", " B C C B ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B B CC CC B B A", "A B C C B A", "A C C A", "B B", "B B", "B B", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B CCC B B A ", " A B B CC CC B B A ", " B B B CC CC B B B ", " B B C C B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A CC CC A ", " A C C A ", " B C C B ", " B C C B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B B B B ", " B CC CC B ", " B CC CC B ", " CC CC ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" AA B B AA ", " AA B B AA ", " AB CCCCC BA ", " BB C C BB ", " BB BB ", " BC CB ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B B B A ", " A B B B B A ", " B B B B B B ", " B B CC CC B B ", " B C C B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " A B B A ", " B CCCCCCC B ", " B CC CC B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A B B A A ", " A A B B A A ", " A B B B B A ", " B B B B B B ", " B B CCCCCCC B B ", " B CCC CCC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A A A ", " A A A A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCC ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCCCC ", " ", " ", " ", " ", " ", " ", " ") + .where("A", Predicates.blocks('gtceu:light_concrete') + .or(Predicates.blocks('gtceu:polished_light_concrete')) + .or(Predicates.blocks('gtceu:light_concrete_bricks')) + .or(Predicates.blocks('gtceu:cracked_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:mossy_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:chiseled_light_concrete')) + .or(Predicates.blocks('gtceu:light_concrete_tile')) + .or(Predicates.blocks('gtceu:light_concrete_small_tile')) + .or(Predicates.blocks('gtceu:light_concrete_windmill_a')) + .or(Predicates.blocks('gtceu:light_concrete_windmill_b')) + .or(Predicates.blocks('gtceu:small_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:square_light_concrete_bricks')) + .or(Predicates.blocks('gtceu:dark_concrete')) + .or(Predicates.blocks('gtceu:polished_dark_concrete')) + .or(Predicates.blocks('gtceu:dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:cracked_dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:mossy_dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:chiseled_dark_concrete')) + .or(Predicates.blocks('gtceu:dark_concrete_tile')) + .or(Predicates.blocks('gtceu:dark_concrete_small_tile')) + .or(Predicates.blocks('gtceu:dark_concrete_windmill_a')) + .or(Predicates.blocks('gtceu:dark_concrete_windmill_b')) + .or(Predicates.blocks('gtceu:small_dark_concrete_bricks')) + .or(Predicates.blocks('gtceu:square_dark_concrete_bricks')) + ) + .where("B", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.RhodiumPlatedPalladium))) + .where("C", Predicates.blocks("tfg:casings/machine_casing_red_solar_panel")) + .where("D", Predicates.blocks("ad_astra:iron_plateblock")) + .where("E", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get())) + .where("F", Predicates.blocks("tfg:casings/machine_casing_iron_desh")) + .where("G", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.block, GTMaterials.Silver))) + .where("H", Predicates.controller(Predicates.blocks(definition.get()))) + .where("I", Predicates.blocks("tfg:casings/machine_casing_iron_desh") + .or(Predicates.autoAbilities(definition.getRecipeTypes())) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)) + ) + .where(" ", Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCCCC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCC ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A A A ", " A A A A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A B B A A ", " A A B B A A ", " A B B B B A ", " B B B B B B ", " B B CCCCCCC B B ", " B CCC CCC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " A B B A ", " B CCCCCCC B ", " B CC CC B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B B B A ", " A B B B B A ", " B B B B B B ", " B B CC CC B B ", " B C C B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" AA B B AA ", " AA B B AA ", " AB CCCCC BA ", " BB C C BB ", " BB BB ", " BC CB ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B B B B ", " B CC CC B ", " B CC CC B ", " CC CC ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A CC CC A ", " A C C A ", " B C C B ", " B C C B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B CCC B B A ", " A B B CC CC B B A ", " B B B CC CC B B B ", " B B C C B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B B CC CC B B A", "A B C C B A", "A C C A", "B B", "B B", "B B", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B C C B B A ", " A B B B B A ", " B B B B B B ", " B B C C B B ", " B C C B ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" C FML C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" C IFK C ", " C F C ", " C F C ", " C F C ", " C F C ", " C F C ", "C F C", " F ", " F ", " F ", " DFD ", " EFE ", " EGE ", " EEE ") + .aisle(" C JHF C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " DDD ", " EEE ", " EEE ", " EEE ") + .aisle(" B B B B ", " B C C B ", " C C ", " C C ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B C C B B A ", " A B B B B A ", " B B B B B B ", " B B C C B B ", " B C C B ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle("A B B CC CC B B A", "A B C C B A", "A C C A", "B B", "B B", "B B", "C C", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B CCC B B A ", " A B B CC CC B B A ", " B B B CC CC B B B ", " B B C C B B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A CC CC A ", " A C C A ", " B C C B ", " B C C B ", " B C C B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" B B B B ", " B B B B ", " B CC CC B ", " B CC CC B ", " CC CC ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" AA B B AA ", " AA B B AA ", " AB CCCCC BA ", " BB C C BB ", " BB BB ", " BC CB ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B B B A ", " A B B B B A ", " B B B B B B ", " B B CC CC B B ", " B C C B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " A B B A ", " B CCCCCCC B ", " B CC CC B ", " B CC CC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A B B A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A B B A A ", " A A B B A A ", " A B B B B A ", " B B B B B B ", " B B CCCCCCC B B ", " B CCC CCC B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A A A ", " A A A A ", " A B B A ", " B B B B ", " B B B B ", " B CCC CCC B ", " C C ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCC ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CC CC ", " ", " ", " ", " ", " ", " ", " ") + .aisle(" A A ", " A A ", " A A ", " B B ", " B B ", " B B ", " CCCCCCCCC ", " ", " ", " ", " ", " ", " ", " ") + .where("A", Block.getBlock('gtceu:light_concrete')) + .where("B", Block.getBlock("gtceu:tungsten_steel_frame")) + .where("C", Block.getBlock("tfg:casings/machine_casing_red_solar_panel")) + .where("D", Block.getBlock("ad_astra:iron_plateblock")) + .where("E", Block.getBlock("gtceu:tempered_glass")) + .where("F", Block.getBlock("tfg:casings/machine_casing_iron_desh")) + .where("G", Block.getBlock("gtceu:silver_block")) + .where("H", controller, Direction.SOUTH) + .where("I", GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) + .where("J", GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) + .where("K", GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST) + .where("L", GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST) + .where("M", GTMachines.ENERGY_OUTPUT_HATCH[GTValues.HV], Direction.NORTH) + .where(" ", Predicates.any()) + .build() + ) + .workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca') + + + //#endregion + //#region Nuclear Multiblocks // Nuclear Fuel Factory diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index bfb360612..00d927406 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -31,6 +31,22 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.COOLING) + event.create('large_solar_panel_tier2') + .category('generator') + .setEUIO('out') + .setMaxIOSize(2, 0, 2, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.COOLING) + + event.create('large_solar_panel_tier3') + .category('generator') + .setEUIO('out') + .setMaxIOSize(2, 0, 2, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.COOLING) + event.create('nuclear_fuel_factory') .category('nuclear_fuel_factory') .setEUIO('in')