661 lines
No EOL
67 KiB
JavaScript
661 lines
No EOL
67 KiB
JavaScript
// priority: 0
|
|
|
|
const registerGTCEuMachines = (event) => {
|
|
|
|
const $SteamMulti = Java.loadClass('com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine');
|
|
const $Tags = Java.loadClass("dev.latvian.mods.kubejs.util.Tags")
|
|
const CoilWorkableElectricMultiblockMachine = Java.loadClass("com.gregtechceu.gtceu.api.machine.multiblock.CoilWorkableElectricMultiblockMachine")
|
|
|
|
//#region Nether Dome
|
|
|
|
event.create('nether_dome', 'multiblock')
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('nether_dome')
|
|
.appearanceBlock(GTBlocks.CASING_PTFE_INERT)
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ")
|
|
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
|
|
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
|
|
.aisle("CBBBBBC", "F#####F", "F#####F", "F#####F", "FTTTTTF", "FQQQQQF")
|
|
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
|
|
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
|
|
.aisle(" CCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ")
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('B', Predicates.blocks('tfc:rock/magma/basalt').setMinGlobalLimited(6)
|
|
.or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10)))
|
|
.where('T', Predicates.blocks('minecraft:glowstone').setMinGlobalLimited(5)
|
|
.or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10)))
|
|
.where('O', Predicates.blocks('minecraft:obsidian'))
|
|
.where('F', Predicates.frames('black_steel'))
|
|
.where('Q', Predicates.blocks('ae2:quartz_glass'))
|
|
.where('G', Predicates.blocks('minecraft:gold_block')
|
|
.or(Predicates.blocks('tfc:rock/raw/basalt'))
|
|
.or(Predicates.blocks('tfc:rock/hardened/basalt'))
|
|
.or(Predicates.blocks('tfc:rock/bricks/basalt'))
|
|
.or(Predicates.blocks('tfc:rock/chiseled/basalt'))
|
|
.or(Predicates.blocks('minecraft:obsidian'))
|
|
.or(Predicates.blocks('minecraft:nether_bricks')))
|
|
.where('P', Predicates.blocks('minecraft:purple_stained_glass_pane'))
|
|
.where('C', Predicates.blocks(GTBlocks.CASING_PTFE_INERT.get()).setMinGlobalLimited(10)
|
|
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
|
.where('#', Predicates.air()
|
|
.or(Predicates.blocks('minecraft:netherrack'))
|
|
.or(Predicates.blocks('tfc:rock/magma/basalt'))
|
|
.or(Predicates.blocks('minecraft:glowstone'))
|
|
.or(Predicates.blocks('minecraft:nether_bricks')))
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.shapeInfo(controller => MultiblockShapeInfo.builder()
|
|
.aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ")
|
|
.aisle("CMMMNNC", "Q NQ", "Q Q", "Q Q", "QNTTNNQ", " QQQQQ ")
|
|
.aisle("iMMNNNf", "QR Q", "QR Q", "Q T Q", "QNTTTNQ", " QQQQQ ")
|
|
.aisle("CNMMMNC", "F NF", "F F", "F F", "FNNTNNF", "FQQQQQF")
|
|
.aisle("tNNNMNl", "Q NQ", "Q NQ", "Q Q", "QNNNNNQ", " QQQQQ ")
|
|
.aisle("CNNNNNC", "QN NNQ", "Q NQ", "Q NQ", "QNNNNNQ", " QQQQQ ")
|
|
.aisle(" mCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ")
|
|
.where('X', controller, Direction.SOUTH)
|
|
.where('C', GTBlocks.CASING_PTFE_INERT.get())
|
|
.where('N', Block.getBlock('minecraft:netherrack'))
|
|
.where('M', Block.getBlock('tfc:rock/magma/basalt'))
|
|
.where('T', Block.getBlock('minecraft:glowstone'))
|
|
.where('Q', Block.getBlock('ae2:quartz_glass'))
|
|
.where('F', Block.getBlock('gtceu:black_steel_frame'))
|
|
.where('G', Block.getBlock('minecraft:gold_block'))
|
|
.where('O', Block.getBlock('minecraft:obsidian'))
|
|
.where('P', Block.getBlock('minecraft:purple_stained_glass_pane'))
|
|
.where('R', Block.getBlock('minecraft:nether_bricks'))
|
|
.where(' ', Block.getBlock('minecraft:air'))
|
|
|
|
.where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH)
|
|
.where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST)
|
|
.where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST)
|
|
.where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST)
|
|
.where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST)
|
|
.where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.MV], Direction.NORTH)
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
"gtceu:block/casings/solid/machine_casing_inert_ptfe",
|
|
"gtceu:block/machines/gas_collector")
|
|
|
|
//#endregion
|
|
|
|
//#region End Dome
|
|
|
|
event.create('end_dome', 'multiblock')
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('end_dome')
|
|
.appearanceBlock(GTBlocks.CASING_TITANIUM_STABLE)
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
|
|
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ")
|
|
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ")
|
|
.aisle("CBBBBBC", "FOOEOOF", "FOOOOOF", "FOOOOOF", "FOOOOOF", "FSNNNSF", " G G ")
|
|
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ")
|
|
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ")
|
|
.aisle(" CCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('B', Predicates.blocks('minecraft:end_stone').setMinGlobalLimited(20)
|
|
.or(Predicates.blocks('minecraft:black_concrete')))
|
|
.where('O', Predicates.blocks('minecraft:obsidian').setMinGlobalLimited(8)
|
|
.or(Predicates.air()))
|
|
.where('F', Predicates.frames('titanium'))
|
|
.where('Q', Predicates.blocks('ae2:quartz_glass'))
|
|
.where('E', Predicates.blocks('minecraft:dragon_egg'))
|
|
.where('S', Predicates.blocks('tfg:artificial_end_portal_frame'))
|
|
.where('N', Predicates.blocks('minecraft:black_concrete'))
|
|
.where('G', Predicates.blocks('tfc:ore/small_malachite')
|
|
.or(Predicates.blocks('tfc:ore/small_native_copper'))
|
|
.or(Predicates.blocks('tfc:ore/small_native_gold'))
|
|
.or(Predicates.blocks('tfc:ore/small_hematite'))
|
|
.or(Predicates.blocks('tfc:ore/small_native_silver'))
|
|
.or(Predicates.blocks('tfc:ore/small_cassiterite'))
|
|
.or(Predicates.blocks('tfc:ore/small_bismuthinite'))
|
|
.or(Predicates.blocks('tfc:ore/small_garnierite'))
|
|
.or(Predicates.blocks('tfc:ore/small_malachite'))
|
|
.or(Predicates.blocks('tfc:ore/small_magnetite'))
|
|
.or(Predicates.blocks('tfc:ore/small_limonite'))
|
|
.or(Predicates.blocks('tfc:ore/small_sphalerite'))
|
|
.or(Predicates.blocks('tfc:ore/small_tetrahedrite')))
|
|
.where('C', Predicates.blocks(GTBlocks.CASING_TITANIUM_STABLE.get()).setMinGlobalLimited(10)
|
|
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.shapeInfo(controller => MultiblockShapeInfo.builder()
|
|
.aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
|
|
.aisle("CBBBBBC", "Q O Q", "Q O Q", "Q Q", "Q Q", " QSSSQ ", " 123 ")
|
|
.aisle("iBBBBBf", "QO OQ", "QO Q", "QO Q", "Q Q", " SNNNS ", " y 4 ")
|
|
.aisle("CBBBBBC", "F E F", "F F", "F F", "F F", "FSNNNSF", " z 5 ")
|
|
.aisle("tBBBBNl", "Q O Q", "Q O Q", "Q Q", "Q Q", " SNNNS ", " 0 6 ")
|
|
.aisle("CNBBNNC", "Q Q", "Q Q", "Q Q", "Q Q", " QSSSQ ", " 987 ")
|
|
.aisle(" mCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
|
|
.where('X', controller, Direction.SOUTH)
|
|
.where('C', GTBlocks.CASING_TITANIUM_STABLE.get())
|
|
.where('B', Block.getBlock('minecraft:end_stone'))
|
|
.where('N', Block.getBlock('minecraft:black_concrete'))
|
|
.where('O', Block.getBlock('minecraft:obsidian'))
|
|
.where('F', Block.getBlock('gtceu:titanium_frame'))
|
|
.where('Q', Block.getBlock('ae2:quartz_glass'))
|
|
.where(' ', Block.getBlock('minecraft:air'))
|
|
.where('S', Block.getBlock('tfg:artificial_end_portal_frame'))
|
|
.where('E', Block.getBlock('minecraft:dragon_egg'))
|
|
|
|
.where('1', Block.getBlock('tfc:ore/small_native_copper'))
|
|
.where('2', Block.getBlock('tfc:ore/small_native_gold'))
|
|
.where('3', Block.getBlock('tfc:ore/small_hematite'))
|
|
.where('4', Block.getBlock('tfc:ore/small_native_silver'))
|
|
.where('5', Block.getBlock('tfc:ore/small_cassiterite'))
|
|
.where('6', Block.getBlock('tfc:ore/small_bismuthinite'))
|
|
.where('7', Block.getBlock('tfc:ore/small_garnierite'))
|
|
.where('8', Block.getBlock('tfc:ore/small_malachite'))
|
|
.where('9', Block.getBlock('tfc:ore/small_magnetite'))
|
|
.where('0', Block.getBlock('tfc:ore/small_limonite'))
|
|
.where('z', Block.getBlock('tfc:ore/small_sphalerite'))
|
|
.where('y', Block.getBlock('tfc:ore/small_tetrahedrite'))
|
|
|
|
.where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH)
|
|
.where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST)
|
|
.where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST)
|
|
.where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST)
|
|
.where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST)
|
|
.where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH)
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
"gtceu:block/casings/solid/machine_casing_stable_titanium",
|
|
"gtceu:block/machines/gas_collector")
|
|
|
|
//#endregion
|
|
|
|
//#region Steam Bloomery
|
|
|
|
event.create('steam_bloomery', 'multiblock')
|
|
.machine((holder) => new $SteamMulti(holder, 8))
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('steam_bloomery')
|
|
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
|
|
.appearanceBlock(GTBlocks.CASING_BRONZE_BRICKS)
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(" F ", " C ", " E ", " E ", " E ")
|
|
.aisle("FCF", "C#C", "E#E", "E#E", "E#E")
|
|
.aisle(" F ", "CXC", " E ", " E ", " E ")
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('C', Predicates.blockTag($Tags.block("tfc:bloomery_insulation")))
|
|
.where('F', Predicates.blocks(GTBlocks.FIREBOX_BRONZE.get())
|
|
.or(Predicates.abilities(PartAbility.STEAM).setExactLimit(1)))
|
|
.where('E', Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(2)
|
|
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setExactLimit(1))
|
|
.or(Predicates.blockTag($Tags.block("tfc:bloomery_insulation"))))
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.shapeInfo(controller => MultiblockShapeInfo.builder()
|
|
.aisle(" F ", " C ", " C ", " C ", " C ")
|
|
.aisle("FCF", "C#C", "C#C", "C#C", "C#C")
|
|
.aisle(" i ", "CXC", " O ", " I ", " C ")
|
|
.where('X', controller, Direction.SOUTH)
|
|
.where('C', Block.getBlock('tfc:rock/bricks/rhyolite'))
|
|
.where('F', GTBlocks.FIREBOX_BRONZE.get())
|
|
.where('i', GTMachines.STEAM_HATCH, Direction.SOUTH)
|
|
.where('O', GTMachines.STEAM_EXPORT_BUS, Direction.SOUTH)
|
|
.where('I', GTMachines.STEAM_IMPORT_BUS, Direction.SOUTH)
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
"gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
|
|
"tfg:block/steam_bloomery")
|
|
//#endregion
|
|
|
|
//#region Large Solar Panels
|
|
//Tier 1
|
|
event.create('large_solar_panel', 'multiblock')
|
|
.regressWhenWaiting(false)
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.generator(true)
|
|
.recipeType('large_solar_panel')
|
|
.noRecipeModifier()
|
|
.appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_iron_desh'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(" S S ", " S S ", " CCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CC CC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" CCC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S CC CC S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle("S S S S", "S C C S", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" C FFF C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " B B ", " B B ", " B B ", " B B ", " EEE ", " GGG ", " GGG ", " GGG ")
|
|
.aisle(" C FIF C ", " C I C ", "C I C", " I ", " I ", " I ", " I ", " I ", " I ", " I ", " EIE ", " GIG ", " GKG ", " GGG ")
|
|
.aisle(" C FHF C ", " C B B C ", "C B B C", " B B ", " B B ", " B B ", " B B ", " B B ", " B B ", " B B ", " EEE ", " GGG ", " GGG ", " GGG ")
|
|
.aisle("S S S S", "S C C S", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S CC CC S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" CCC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CC CC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " CCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.where("H", Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where("B", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.StainlessSteel)))
|
|
.where("S", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.Steel)))
|
|
.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()))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
|
)
|
|
.where("G", Predicates.blocks("ae2:quartz_glass"))
|
|
.where("I", Predicates.blocks("tfg:casings/machine_casing_iron_desh"))
|
|
.where("K", Predicates.blocks("tfg:reflector"))
|
|
.where(" ", Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca')
|
|
|
|
//Tier 2
|
|
event.create('large_solar_panel_tier2', 'multiblock')
|
|
.regressWhenWaiting(false)
|
|
.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 ", " S S ", " S S ", " CCCCCCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " S S ", " S S ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " S S ", " CCCCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " S S S S ", " S CC CC S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " CCCCC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " S CC CC S ", " S CC CC S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CC CC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S CCC S A ", " A S CC CC S A ", " S S CC CC S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S CC CC S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle("A S C C S A", "A S S A", "S S S S", "S C C S", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S S S ", " S C C S ", " 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(" S S S S ", " S C C S ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle("A S C C S A", "A S S A", "S S S S", "S C C S", "C C", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S CC CC S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S CCC S A ", " A S CC CC S A ", " S S CC CC S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CC CC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " S CC CC S ", " S CC CC S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " CCCCC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " S S S S ", " S CC CC S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " S S ", " S S ", " CCCCCCC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " S S ", " S S ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " S S ", " S S ", " 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("S", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.Aluminium)))
|
|
.where("C", Predicates.blocks("tfg:casings/machine_casing_green_solar_panel"))
|
|
.where("D", Predicates.blocks("ad_astra:iron_plateblock"))
|
|
.where("E", Predicates.blocks("ae2:quartz_glass"))
|
|
.where("F", Predicates.blocks("tfg:casings/machine_casing_iron_desh"))
|
|
.where("G", Predicates.blocks("tfg:reflector"))
|
|
.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()
|
|
)
|
|
.workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca')
|
|
|
|
//Tier 3
|
|
event.create('large_solar_panel_tier3', 'multiblock')
|
|
.regressWhenWaiting(false)
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.generator(true)
|
|
.recipeType('large_solar_panel_tier3')
|
|
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH])
|
|
.appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_iron_desh'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(" A A ", " A A ", " A A ", " S S ", " S S ", " S S ", " CCCCCCCCC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " A A ", " S S ", " S S ", " S S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " S S ", " S S ", " S S ", " CCCCCCC ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A A A ", " A A A A ", " A S S A ", " S S S S ", " S S S S ", " S CCC CCC S ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A S S A A ", " A A S S A A ", " A S S S S A ", " S S S S S S ", " S S CCCCCCC S S ", " S CCC CCC S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " S S S S ", " S S S S ", " S CCC CCC S ", " C C ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " A S S A ", " S CCCCCCC S ", " S CC CC S ", " S CC CC S ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S S S A ", " A S S S S A ", " S S S S S S ", " S S CC CC S S ", " S C C S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" AA S S AA ", " AA S S AA ", " AS CCCCC SA ", " SS C C SS ", " SS SS ", " SC CS ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S S S ", " S S S S ", " S CC CC S ", " S CC CC S ", " CC CC ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A CC CC A ", " A C C A ", " S C C S ", " S C C S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S CCC S S A ", " A S S CC CC S S A ", " S S S CC CC S S S ", " S S C C S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle("A S S CC CC S S A", "A S C C S A", "A C C A", "S S", "S S", "S S", "C C", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S C C S S A ", " A S S S S A ", " S S S S S S ", " S S C C S S ", " S C C S ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S S S ", " S C C S ", " 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(" S S S S ", " S C C S ", " C C ", " C C ", " C C ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S C C S S A ", " A S S S S A ", " S S S S S S ", " S S C C S S ", " S C C S ", " C C ", "C C", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle("A S S CC CC S S A", "A S C C S A", "A C C A", "S S", "S S", "S S", "C C", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S CCC S S A ", " A S S CC CC S S A ", " S S S CC CC S S S ", " S S C C S S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A CC CC A ", " A C C A ", " S C C S ", " S C C S ", " S C C S ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S ", " CCCCC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" S S S S ", " S S S S ", " S CC CC S ", " S CC CC S ", " CC CC ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" AA S S AA ", " AA S S AA ", " AS CCCCC SA ", " SS C C SS ", " SS SS ", " SC CS ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S S S A ", " A S S S S A ", " S S S S S S ", " S S CC CC S S ", " S C C S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " A S S A ", " S CCCCCCC S ", " S CC CC S ", " S CC CC S ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A S S A ", " A S S A ", " S S S S ", " S S S S ", " S CCC CCC S ", " C C ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A S S A A ", " A A S S A A ", " A S S S S A ", " S S S S S S ", " S S CCCCCCC S S ", " S CCC CCC S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A A A ", " A A A A ", " A S S A ", " S S S S ", " S S S S ", " S CCC CCC S ", " C C ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " S S ", " S S ", " S S ", " CCCCCCC ", " CCC CCC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " A A ", " S S ", " S S ", " S S ", " CC CC ", " ", " ", " ", " ", " ", " ", " ")
|
|
.aisle(" A A ", " A A ", " A A ", " S S ", " S S ", " S S ", " 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("S", Predicates.blocks(ChemicalHelper.getBlock(TagPrefix.frameGt, GTMaterials.StainlessSteel)))
|
|
.where("C", Predicates.blocks("tfg:casings/machine_casing_red_solar_panel"))
|
|
.where("D", Predicates.blocks("ad_astra:iron_plateblock"))
|
|
.where("E", Predicates.blocks("ae2:quartz_glass"))
|
|
.where("F", Predicates.blocks("tfg:casings/machine_casing_iron_desh"))
|
|
.where("G", Predicates.blocks("tfg:reflector"))
|
|
.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))
|
|
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
|
)
|
|
.where(" ", Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca')
|
|
|
|
|
|
//#endregion
|
|
|
|
//#region Nuclear Multiblocks
|
|
|
|
// Nuclear Fuel Factory
|
|
|
|
event.create('nuclear_fuel_factory', 'multiblock')
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('nuclear_fuel_factory')
|
|
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.ELECTRIC_OVERCLOCK.apply(OverclockingLogic.NON_PERFECT_OVERCLOCK)])
|
|
.appearanceBlock(() => Block.getBlock('gtceu:atomic_casing'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle('RLLLR', 'I I', 'I I', 'I I', 'RLLLR')
|
|
.aisle('LRRRL', ' KPK ', ' KPK ', ' KPK ', 'LRRRL')
|
|
.aisle('LRSRL', ' PCP ', ' PCP ', ' PCP ', 'LRSRL')
|
|
.aisle('LRRRL', ' KPK ', ' KPK ', ' KPK ', 'LRRRL')
|
|
.aisle('RLXLR', 'I I', 'I I', 'I I', 'RLLLR')
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('R', Predicates.blocks('gtceu:atomic_casing'))
|
|
.where('I', Predicates.blocks('gtceu:stainless_steel_frame'))
|
|
.where('G', Predicates.blocks('gtceu:high_temperature_smelting_casing'))
|
|
.where('P', Predicates.blocks('gtceu:laminated_glass'))
|
|
.where('S', Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get()))
|
|
.where('K', Predicates.blocks('gtceu:high_temperature_smelting_casing'))
|
|
.where('C', Predicates.blocks(GTBlocks.COIL_RTMALLOY.get()))
|
|
.where('L', Predicates.blocks('gtceu:atomic_casing')
|
|
.or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
|
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1))
|
|
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setExactLimit(1)))
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
'gtceu:block/casings/gcym/atomic_casing',
|
|
'gtceu:block/machines/fermenter')
|
|
|
|
// Nuclear Heat Exchanger
|
|
|
|
event.create('heat_exchanger', 'multiblock')
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('heat_exchanger')
|
|
.recipeModifiers([GTRecipeModifiers.OC_PERFECT_SUBTICK])
|
|
.appearanceBlock(() => Block.getBlock('gtceu:high_temperature_smelting_casing'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(' ','BBBBBBB','BCCCCCB','BBBBBBB',' ')
|
|
.aisle('AAAAAAA','A#####A','BDDDDDB','A#####A','AAAAAAA')
|
|
.aisle('AFFFFFA','B#####B','LEEEEEL','B#####B','AFFFFFA')
|
|
.aisle('AAAAAAA','A#####A','BDDDDDB','A#####A','AAAAAAA')
|
|
.aisle(' ','BBBXBBB','BCCCCCB','BBBMBBB',' ')
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('A', Predicates.blocks('gtceu:atomic_casing'))
|
|
.where('B', Predicates.blocks('gtceu:high_temperature_smelting_casing')
|
|
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1)))
|
|
.where('C', Predicates.blocks('gtceu:laminated_glass'))
|
|
.where('D', Predicates.blocks(GTBlocks.FIREBOX_TITANIUM.get()))
|
|
.where('E', Predicates.blocks(GTBlocks.CASING_TITANIUM_PIPE.get()))
|
|
.where('F', Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get()))
|
|
.where('L', Predicates.blocks('gtceu:high_temperature_smelting_casing')
|
|
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS_4X).setExactLimit(1))
|
|
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS_4X).setExactLimit(1)))
|
|
.where('M', Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)
|
|
.or(Predicates.blocks('gtceu:high_temperature_smelting_casing')))
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
"gtceu:block/casings/gcym/high_temperature_smelting_casing",
|
|
"gtceu:block/machines/fluid_heater")
|
|
|
|
// Nuclear Fission Reactor
|
|
|
|
event.create('fission_reactor', 'multiblock')
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('fission_reactor')
|
|
.recipeModifiers([GTRecipeModifiers.OC_PERFECT_SUBTICK])
|
|
.appearanceBlock(() => Block.getBlock('gtceu:atomic_casing'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle('LLLLL','ABCBA','ABCBA','ABCBA','ABCBA','ABCBA','LLLLL')
|
|
.aisle('LAAAL','BE#EB','BE#EB','BE#EB','BE#EB','BE#EB','LAAAL')
|
|
.aisle('LAAAL','C#D#C','C#D#C','C#D#C','C#D#C','C#D#C','LAAAL')
|
|
.aisle('LAAAL','BE#EB','BE#EB','BE#EB','BE#EB','BE#EB','LAAAL')
|
|
.aisle('LLXLL','ABCBA','ABCBA','ABCBA','ABCBA','ABCBA','LLLLL')
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('A', Predicates.blocks('gtceu:high_temperature_smelting_casing'))
|
|
.where('B', Predicates.blocks('gtceu:atomic_casing'))
|
|
.where('C', Predicates.blocks('gtceu:laminated_glass'))
|
|
.where('D', Predicates.blocks(GTBlocks.FIREBOX_TITANIUM.get()))
|
|
.where('E', Predicates.blocks('gtceu:titanium_frame'))
|
|
.where('F', Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get()))
|
|
.where('L', Predicates.blocks('gtceu:atomic_casing').setMinGlobalLimited(10)
|
|
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
"gtceu:block/casings/gcym/atomic_casing",
|
|
"gtceu:block/machines/electromagnetic_separator")
|
|
|
|
//#endregion
|
|
|
|
//#region Ore Line
|
|
|
|
// Ostrum Harvester
|
|
|
|
event.create('ostrum_harvester', 'multiblock')
|
|
.machine((holder) => new CoilWorkableElectricMultiblockMachine(holder))
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('ostrum_harvester')
|
|
.recipeModifiers([(machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE])
|
|
.appearanceBlock(() => Block.getBlock('gtceu:nonconducting_casing'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle(' ' ,'A A', 'AAAAA', 'ACCCA', 'AACAA', ' AAA ')
|
|
.aisle(' G ' ,' ', 'BBBBB', 'B B', 'BB BB', ' BFB ')
|
|
.aisle(' GGG ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ')
|
|
.aisle('GGGGG' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ')
|
|
.aisle(' GGG ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ')
|
|
.aisle(' G ' ,' ', 'BBBBB', 'B B', 'BB BB', ' BFB ')
|
|
.aisle(' ' ,'A A', 'AAAAA', 'ACXCA', 'AACAA', ' AAA ')
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('A', Predicates.blocks('gtceu:secure_maceration_casing'))
|
|
.where('B', Predicates.blocks('gtceu:nonconducting_casing'))
|
|
.where('C', Predicates.blocks('gtceu:nonconducting_casing')
|
|
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(1).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMaxGlobalLimited(2).setPreviewCount(2))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1)))
|
|
.where('D', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake'))
|
|
.where('F', Predicates.heatingCoils())
|
|
.where('G', Predicates.blocks('tfg:spice'))
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
'gtceu:block/casings/gcym/nonconducting_casing',
|
|
'gtceu:block/multiblock/distillation_tower')
|
|
|
|
// Moon Harvester
|
|
|
|
event.create('moon_dust_harvester', 'multiblock')
|
|
.machine((holder) => new CoilWorkableElectricMultiblockMachine(holder))
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('moon_dust_harvester')
|
|
.recipeModifiers([(machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE])
|
|
.appearanceBlock(() => Block.getBlock('gtceu:nonconducting_casing'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle('A A', 'AAAAA', 'ACCCA', 'AAEAA', ' AAA ')
|
|
.aisle(' ', 'BBBBB', 'B B', 'BB BB', ' BFB ')
|
|
.aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ')
|
|
.aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ')
|
|
.aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ')
|
|
.aisle(' ', 'BBBBB', 'B B', 'BB BB', ' BFB ')
|
|
.aisle('A A', 'AAAAA', 'ACXCA', 'AACAA', ' AAA ')
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('A', Predicates.blocks('tfg:casings/machine_casing_iron_desh'))
|
|
.where('B', Predicates.blocks('gtceu:nonconducting_casing'))
|
|
.where('C', Predicates.blocks('gtceu:nonconducting_casing')
|
|
.or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2).setPreviewCount(1))
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1)))
|
|
.where('D', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake'))
|
|
.where('E', Predicates.blocks('gtceu:nonconducting_casing'))
|
|
.where('F', Predicates.heatingCoils())
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
'gtceu:block/casings/gcym/nonconducting_casing',
|
|
'gtceu:block/multiblock/distillation_tower')
|
|
|
|
// Extraterrestrial Ore Fabricator
|
|
|
|
event.create('ostrum_linear_accelerator', 'multiblock')
|
|
.rotationState(RotationState.NON_Y_AXIS)
|
|
.recipeType('ostrum_linear_accelerator')
|
|
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
|
.appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_mars'))
|
|
.pattern(definition => FactoryBlockPattern.start()
|
|
.aisle('AAAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' )
|
|
.aisle('BAAAAAAAA', 'B#######D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' )
|
|
.aisle('AAAAAAAAA', 'A#######D', 'BB###BBAA', ' C###C ', ' BHHHB ' )
|
|
.aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' )
|
|
.aisle('A#####AFA', 'A#####AXA', 'AAAAAAAFA', ' ', ' ' )
|
|
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
|
|
.where('A', Predicates.blocks('tfg:casings/machine_casing_mars')
|
|
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2)))
|
|
.where('B', Predicates.blocks('gtceu:high_temperature_smelting_casing'))
|
|
.where('C', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake'))
|
|
.where('D', Predicates.blocks('gtceu:heat_vent'))
|
|
.where('E', Predicates.blocks('tfg:casings/machine_casing_mars')
|
|
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(6)))
|
|
.where('F', Predicates.blocks('tfg:casings/machine_casing_mars')
|
|
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
|
.where('H', Predicates.blocks('tfg:casings/machine_casing_mars')
|
|
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS))
|
|
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS)))
|
|
.where('#', Predicates.air())
|
|
.where(' ', Predicates.any())
|
|
.build()
|
|
)
|
|
.shapeInfo(controller => MultiblockShapeInfo.builder()
|
|
.aisle('KKAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' )
|
|
.aisle('BAAAAAAAA', 'B D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' )
|
|
.aisle('AAAAAAAAA', 'A D', 'BB BBAA', ' C C ', ' BIAHB ' )
|
|
.aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' )
|
|
.aisle('A AMA', 'A AXA', 'AAAAAAAAA', ' ', ' ' )
|
|
.where('X', controller, Direction.SOUTH)
|
|
.where('A', Block.getBlock('tfg:casings/machine_casing_mars'))
|
|
.where('B', Block.getBlock('gtceu:high_temperature_smelting_casing'))
|
|
.where('C', Block.getBlock('tfg:casings/machine_casing_vacuum_engine_intake'))
|
|
.where('D', Block.getBlock('gtceu:heat_vent'))
|
|
.where('E', GTMachines.FLUID_IMPORT_HATCH[GTValues.EV], Direction.SOUTH)
|
|
.where('H', GTMachines.ITEM_EXPORT_BUS[GTValues.EV], Direction.UP)
|
|
.where('I', GTMachines.FLUID_EXPORT_HATCH[GTValues.EV], Direction.UP)
|
|
.where('M', GTMachines.AUTO_MAINTENANCE_HATCH, Direction.SOUTH)
|
|
.where('K', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH)
|
|
.where(' ', Block.getBlock('minecraft:air'))
|
|
.build()
|
|
)
|
|
.workableCasingModel(
|
|
'tfg:block/casings/machine_casing_mars',
|
|
'gtceu:block/machines/thermal_centrifuge')
|
|
|
|
} |