-
Notifications
You must be signed in to change notification settings - Fork 0
Example_MultiBlock
-
Begining from V1.1.0-Beta1 :energyMultiplier and durationMultiplier are now configurable.
-
从 V1.1.0-Beta1 开始:能耗倍率和时长倍率可以配置。
event.create('kjs_config_parallel', 'multiblock') .machine((holder) => new ConfigurableElectricParallelMachine(holder, 32,0.5,0.5)) //Builder(holder, maxParallel, energyMultiplier, durationMultiplier) //Builder(holder,最大并行,能耗倍率,时长倍率) .rotationState(RotationState.ALL) .appearanceBlock(GCYMBlocks.CASING_INDUSTRIAL_STEAM) .recipeType('forge_hammer') .recipeModifier((machine, recipe) => ConfigurableElectricParallelMachine.recipeModifier(machine, recipe), true) .addOutputLimit(ItemRecipeCapability.CAP, 1) .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ADDDDA', 'AAAAAA') .aisle('AAAAAA', 'ACACCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('D', Predicates.blocks('gtceu:bronze_gearbox')) .where('C', Predicates.blocks('gtceu:frame_bronze')) .where('A', Predicates.blocks('gtceu:industrial_steam_casing').setMinGlobalLimited(45) .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1))) .build()) .model(GTMachineModels.createWorkableCasingMachineModel( GTCEu.id('block/casings/gcym/industrial_steam_casing'), GTCEu.id('block/multiblock/large_chemical_reactor')))
-
Max_parallels = Base_parallels * 2 ^ ( CasingTier - 1 )
-
Duration = Base_Duration * ( 1 - ( PipeTier - 1 ) * 0.1 )
-
Energy_consumer = Base_Energy_consumer * ( 1 - ( FrameTier - 1 ) * 0.05 )
-
最大并行数 = 初始并行数 × 2^(外壳等级-1)
-
配方时长倍率 = 1 - (管道等级-1) × 0.1
-
能耗倍率 = 1 - (框架等级-1) × 0.05
event.create('kjs_enhanceable_electric', 'multiblock') .machine((holder) => new EnhanceableElectricMachine(holder, true, true)) /*Builder(holder,useFrame,usePipe): useFrame-When set to true, enables the frame tier mechanism. usePipe-When set to true, enables the pipe tier mechanism. useFrame-当设置为 true 时,启用框架等级机制 usePipe-当设置为 true 时,启用管道方块等级机制 */ .rotationState(RotationState.ALL) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .recipeType('forge_hammer') .recipeModifier((machine, recipe) => EnhanceableElectricMachine.recipeModifier(machine, recipe), true) .addOutputLimit(ItemRecipeCapability.CAP, 1) .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ADDDDA', 'AAAAAA') .aisle('AAAAAA', 'ACACCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('D', GTUFPatternPredicates.UniversalPipeTier()) .where('C', GTUFPatternPredicates.UniversalFrameTier()) .where('A', GTUFPatternPredicates.UniversalCasingTier().setMinGlobalLimited(40) /* GTUF_PatternPredicates: UniversalCasingTier:CASING_STEEL_SOLID=1,CASING_ALUMINIUM_FROSTPROOF=2, CASING_STAINLESS_CLEAN=3,CASING_TITANIUM_STABLE=4,CASING_TUNGSTENSTEEL_ROBUST=5 UniversalFrameTier:Steel=1,Aluminium=2,StainlessSteel=3,Titanium=4,TungstenSteel=5 UniversalPipeTier:CASING_BRONZE_PIPE=1,CASING_STEEL_PIPE=2,CASING_TITANIUM_PIPE=3,CASING_TUNGSTENSTEEL_PIPE=4 UniversalGearboxTier:Not used yet(暂无使用) SteamCasingTier:CASING_BRONZE_BRICKS=1,CASING_STEEL_SOLID=2 SteamFrameTier:Bronze=1,Steel=2 */ .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1)) .or(Predicates.abilities(GTUFPartAbility.THREAD_HATCH).setPreviewCount(1))) .build()) .model(GTUFModels.createTieredMachineModel( GTCEu.id('block/casings/solid/machine_casing_solid_steel'), GTCEu.id('block/multiblock/large_chemical_reactor')))
-
Begining from V1.1.0-Beta1 :energyMultiplier and durationMultiplier are now configurable.
-
从 V1.1.0-Beta1 开始:能耗倍率和时长倍率可以配置。
-
Begining from V1.1.0-Beta1-Fix1: the voltage-based extra energy consumption multiplier and the voltage-based extra speed multiplier are now configurable.
-
从 V1.1.0-Beta1-Fix1 开始:电压额外能耗倍率和电压额外加速倍率可以配置。
-
Max_parallels = Math.max(1,parallelMultiplier * tier)
-
最大并行数 = Math.max(1,并行倍率 * 电压等级)
event.create('kjs_tier_parallel', 'multiblock') .machine((holder) => new TierElectricParallelMachine(holder,2,0.5,0.5,1,1)) //Builder(holder,parallelMultiplier,durationMultiplier,energyMultiplier,TierenergyMultiplier(default=1),TierspeedMultiplier(default=1)) //Builder(holder,并行倍率,时长倍率,能耗倍率,电压额外能耗倍率(1=默认),电压额外加速倍率(1=默认)) .rotationState(RotationState.ALL) .appearanceBlock(GCYMBlocks.CASING_INDUSTRIAL_STEAM) .recipeType('forge_hammer') .recipeModifier((machine, recipe) => TierElectricParallelMachine.recipeModifier(machine, recipe), true) .addOutputLimit(ItemRecipeCapability.CAP, 1) .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ADDDDA', 'AAAAAA') .aisle('AAAAAA', 'ACACCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('D', Predicates.blocks('gtceu:bronze_gearbox')) .where('C', Predicates.blocks('gtceu:frame_bronze')) .where('A', Predicates.blocks('gtceu:industrial_steam_casing').setMinGlobalLimited(45) .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1))) .build()) .model(GTMachineModels.createWorkableCasingMachineModel( GTCEu.id('block/casings/gcym/industrial_steam_casing'), GTCEu.id('block/multiblock/large_chemical_reactor')))
event.create('kjs_adjustable_steam', 'multiblock')
.machine((holder) => new AdjustableSteamParallelMachine(
holder, GTRecipeTypes.MIXER_RECIPES, 64, 64, 0.5, true))
/* Builder(holder,RecipeType,Base_Parallels,Max_Parallels,Duration,GuiConfig)
Builder(holder,配方类型,初始并行数,最大并行数,配方时长倍率,并行数是否GUI可调)*/
.rotationState(RotationState.NON_Y_AXIS)
.appearanceBlock(GTBlocks.BRONZE_HULL)
.recipeType('mixer')
.pattern(definition => FactoryBlockPattern.start()
.aisle('#######', '#######', '#######', '#######', '#######', '#######')
.aisle('##A#A##', '##A#A##', '##CCC##', '##CCC##', '##CCC##', '#######')
.aisle('#######', '#######', '##CCC##', '##CDC##', '##CCC##', '#######')
.aisle('##A#A##', '##A#A##', '##CCC##', '##CDC##', '##CCC##', '#######')
.aisle('##BBB##', '#######', '#######', '###D###', '##BBB##', '#######')
.aisle('#BBBBB#', '##BBB##', '##BBB##', '##BDB##', '#BBBBB#', '##BBB##')
.aisle('BBEEEBB', '#BF#FB#', '#B###B#', '#BFDFB#', 'BBBBBBB', '#BGGGB#')
.aisle('BBEDEBB', '#G#D#G#', '#G#D#G#', '#G#D#G#', 'BBBBBBB', '#BGGGB#')
.aisle('BBEEEBB', '#BF#FB#', '#B###B#', '#BF#FB#', 'BBBBBBB', '#BGGGB#')
.aisle('#BBBBB#', '##BKB##', '##BGB##', '##BGB##', '#BBBBB#', '##BBB##')
.aisle('##BBB##', '#######', '#######', '#######', '##BBB##', '#######')
.where('K', Predicates.controller(Predicates.blocks(definition.get())))
.where('C', GTUFPatternPredicates.Casing('minecraft:stone').setMinGlobalLimited(20)
/*
⭐⭐⭐GTUF_PatternPredicates.Casing() – Applicable when .appearanceBlock does not match the block you intend to be replaced by hatches.
⭐⭐⭐GTUF_PatternPredicates.Casing():适用于当你的.appearanceBlock()与你期望被仓室替换的机械方块不同时。
*/
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setPreviewCount(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setPreviewCount(1))
.or(Predicates.abilities(PartAbility.STEAM).setExactLimit(1))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS)))
.where('B', Predicates.blocks('gtceu:steam_machine_casing'))
.where('A', Predicates.blocks('gtceu:frame_bronze'))
.where('F', Predicates.blocks('gtceu:bronze_gearbox'))
.where('D', Predicates.blocks('gtceu:bronze_pipe_casing'))
.where('E', Predicates.blocks('gtceu:bronze_firebox_casing'))
.where('G', Predicates.blocks('minecraft:glass'))
.where('#', Predicates.any())
.build())
.model(GTUFModels.createTieredSteamMachineModel(
GTCEu.id('block/casings/solid/machine_casing_bronze_plated_bricks'),
GTCEu.id('block/multiblock/large_chemical_reactor')))
-
Max_Parallel = Base_Parallels * 4 ^ ( CasingTier - 1 )
-
Duration = Base_Duration ^ ( 1 - ( FrameTier - 1 ) * 0.1 )
-
最大并行数 = 初始并行数 × 4 ^ ( 外壳等级 - 1 )
-
实际配方时间 = 原始配方时间 ^ ( 1 - ( 框架等级 - 1 ) × 0.1 )
event.create('kjs_enhanceable_steam', 'multiblock') .machine((holder) => new EnhanceableSteamMachine(holder, GTRecipeTypes.MIXER_RECIPES, 2)) //Base_Parallels = 2 (int) *初始并行数可调 .rotationState(RotationState.NON_Y_AXIS) .appearanceBlock(GTBlocks.BRONZE_HULL) .recipeType('mixer') .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('C', GTUFPatternPredicates.SteamFrameTier()) .where('A', GTUFPatternPredicates.SteamCasingTier().setMinGlobalLimited(40) .or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.STEAM).setExactLimit(1)) .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS)) .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS))) .build()) .model(GTUFModels.createTieredSteamMachineModel( GTCEu.id('block/casings/solid/machine_casing_bronze_plated_bricks'), GTCEu.id('block/multiblock/large_chemical_reactor')))
-
When use IndustrialSteamHatchPartMachine 1 mB Steam = 4 EU , with OC to MV
-
当使用 IndustrialSteamHatchPartMachine的蒸汽仓时,1 mB 蒸汽被转换为 4 EU, 且允许超频至 MV
event.create('kjs_industrial_steam', 'multiblock') .machine((holder) => new IndustrialSteamMachine(holder, GTRecipeTypes.MIXER_RECIPES, 32)) //Max_Parallels:32(int) 最大并行数32 .rotationState(RotationState.NON_Y_AXIS) .appearanceBlock(GTBlocks.BRONZE_HULL) .recipeType('mixer') .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('C', GTUFPatternPredicates.SteamFrameTier()) .where('A', GTUFPatternPredicates.SteamCasingTier().setMinGlobalLimited(40) .or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.STEAM).setExactLimit(1)) .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS)) .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS))) .build()) .model(GTUFModels.createTieredSteamMachineModel( GTCEu.id('block/casings/solid/machine_casing_bronze_plated_bricks'), GTCEu.id('block/multiblock/large_chemical_reactor')))
-
MaxParallel = BaseParallel + CoilTier * ParallelMultiplier
-
Duration = 1 - CoilTier * DurationMultiplier
-
Energy = 1 - CoilTier * EnergyMultiplier
-
最大并行数 = 起始并行数 + 线圈等级 * 并行倍率
-
配方时长 = 1 - 线圈等级 * 时长倍率
-
配方能耗 = 1 - 线圈等级 * 能耗倍率
event.create('kjs_coil_enhance', 'multiblock') .machine((holder) => new EnhancedCoilElectricMachine(holder, 4, 0.1, 8.0, 0.05, true)) //Builder(holder,baseParallel,DurationMultiplier,ParallelMultiplier,EnergyMultiplier,POC/NPOC) //Builder(holder,初始并行,时长倍率,并行倍率,能耗倍率,完美超频/非完美超频) .rotationState(RotationState.ALL) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .recipeType('test_recipetype') .recipeModifier((machine, recipe) => EnhancedCoilElectricMachine.recipeModifier(machine, recipe)), true) .addOutputLimit(ItemRecipeCapability.CAP, 1) .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('C', Predicates.heatingCoils()) .where('A', Predicates.blocks('gtceu:industrial_steam_casing').setMinGlobalLimited(10) .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(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)) .or(Predicates.abilities(GTUFPartAbility.THREAD_HATCH).setExactLimit(1))) .build()) .model(GTUFModels.createTieredMachineModel( GTCEu.id('block/casings/solid/machine_casing_solid_steel'), GTCEu.id('block/multiblock/large_chemical_reactor')))
event.create('gtuf_distillation_tower', 'multiblock')
.machine((holder) => new EnhancedDistillationTowerMachine(holder, 1, 4, 0.75, 0.8))
//Builder(holder,yOffest,Parallel,DurationMultiplier,EnergyMultiplier)
//Builder(holder,输出起始层数,并行数,时长倍率,能耗倍率)
.rotationState(RotationState.ALL)
.appearanceBlock(GTBlocks.CASING_STAINLESS_CLEAN)
.recipeType('distillation_tower')
.recipeModifier((machine, recipe) =>
EnhancedDistillationTowerMachine.recipeModifier(machine, recipe), true)
.pattern(definition => FactoryBlockPattern.start()
.aisle('YSY', 'YYY', 'YYY')
.aisle('XXX', 'X#X', 'XXX')
.aisle('XXX', 'XXX', 'XXX')
.where('#', Predicates.any())
.where('S', Predicates.controller(Predicates.blocks(definition.get())))
.where('Y', Predicates.blocks('gtceu:clean_machine_casing')
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setExactLimit(1))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(1)))
.where('X', Predicates.blocks('gtceu:clean_machine_casing')
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(1)))
.build())
.model(GTMachineModels.createWorkableCasingMachineModel(
GTCEu.id('block/casings/solid/machine_casing_clean_stainless_steel'),
GTCEu.id('block/multiblock/distillation_tower')))
event.create('gtuf_fluid_drilling_rig', 'multiblock')
.machine((holder) => new EnhancedFluidDrillMachine(holder, 4, 2, 0.75, 1.0))
//Builder(holder,Tier,Parallel,DurationMultiplier,EnergyMultiplier)
//Builder(holder,电压等级,并行数,时长倍率,能耗倍率)
.rotationState(RotationState.ALL)
.appearanceBlock(GTBlocks.CASING_TUNGSTENSTEEL_ROBUST)
.recipeType('dummy')
.pattern(definition => FactoryBlockPattern.start()
.aisle('XXX', '###', '###')
.aisle('XXX', '#X#', '###')
.aisle('XSX', '###', '###')
.where('#', Predicates.any())
.where('S', Predicates.controller(Predicates.blocks(definition.get())))
.where('X', Predicates.blocks('gtceu:robust_machine_casing')
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setMaxGlobalLimited(1)))
.build())
.workableCasingModel(GTCEu.id('block/casings/solid/machine_casing_robust_tungstensteel'),
GTCEu.id('block/multiblock/fluid_drilling_rig'))
event.create('gtuf_large_miner', 'multiblock')
.machine((holder) => new EnhancedLargeMinerMachine(holder, 5, 12, 5, 5, 5, 3, 1.0, 0.9))
//Builder(holder,Tier,speed,maximumChunkDiameter,fortune,drillingFluidConsumePerTick,Parallel,DurationMultiplier,Energy Multiplier)
//Builder(holder,电压等级,速率,直径,时运等级,钻井液消耗速率,并行,时长倍率,能耗倍率)
.rotationState(RotationState.NON_Y_AXIS)
.appearanceBlock(GTBlocks.CASING_TITANIUM_STABLE)
.recipeType('macerator')
.pattern(definition => FactoryBlockPattern.start()
.aisle('XXX', '###', '###')
.aisle('XXX', '#C#', '###')
.aisle('XSX', '###', '###')
.where('#', Predicates.any())
.where('S', Predicates.controller(Predicates.blocks(definition.get())))
.where('C', Predicates.blocks('gtceu:stable_machine_casing'))
.where('X', Predicates.blocks('gtceu:stable_machine_casing')
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setExactLimit(1).setPreviewCount(1))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setExactLimit(1).setPreviewCount(1))
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1)
.setMaxGlobalLimited(2).setPreviewCount(1)))
.build())
.model(GTMachineModels.createWorkableCasingMachineModel(
GTCEu.id('block/casings/solid/machine_casing_stable_titanium'),
GTCEu.id('block/multiblock/large_miner')))
-
Mechanism Pressure :github.com/LiangquHMF/GregTech-Universal-Frame/wiki/PressureSystem
-
RelaxRate = 0.1 / CasingTier * relaxMultiplier
-
回归速率 = 0.1 / 外壳等级 * 回归倍率
-
Final upper bound = max(Final lower bound + 1, Base upper bound × toleranceMultiplier)
-
Final lower bound = max(0.1, Base lower bound ÷ toleranceMultiplier)
-
Base upper bound = 400 + (Glass tier − 1) × 200
-
Base lower bound = max(0.1, 50 − (Glass tier − 1) × 10)
-
最终上限 = max(最终下限 + 1, 基础上限 × toleranceMultiplier )
-
最终下限 = max(0.1, 基础下限 ÷ toleranceMultiplier )
-
基础上限 = 400 + (玻璃等级−1) × 200
-
基础下限 = max(0.1, 50 − (玻璃等级−1) × 10 )
event.create('pressure_test', 'multiblock') .machine((holder) => new PressureMultiblockMachine(holder, 1, 1, 1, 2, 1.5)) //Builder(holder,maxParallel, durationMultiplier, energyMultiplier, relaxMultiplier, toleranceMultiplier) //Builder(holder,最大并行,时长倍率,能耗倍率,回归倍率,耐压倍率) .rotationState(RotationState.ALL) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .recipeType('test_recipetype2') .recipeModifier((machine, recipe) => PressureMultiblockMachine.recipeModifier(machine, recipe), true) .addOutputLimit(ItemRecipeCapability.CAP, 1) .pattern(definition => FactoryBlockPattern.start() .aisle('AAAAAA', 'ACCCCA', 'AAAAAA') .aisle('AAAAAA', 'ADDDDA', 'AAAAAA') .aisle('AAAAAA', 'ACACCA', 'AAAAAA') .aisle('AAA###', 'AKA###', 'AAA###') .where('#', Predicates.any()) .where('K', Predicates.controller(Predicates.blocks(definition.get()))) .where('C', GTUFPatternPredicates.GlassTier()) .where('D', GTUFPatternPredicates.GlassTier()) .where('A', GTUFPatternPredicates.UniversalCasingTier().setMinGlobalLimited(40) .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1)) .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1)) .or(Predicates.abilities(GTUFPartAbility.PRESSURE).setExactLimit(1))) .build()) .model(GTUFModels.createTieredMachineModel( GTCEu.id('block/casings/solid/machine_casing_solid_steel'), GTCEu.id('block/multiblock/large_chemical_reactor')))
event.create('enhanced_boiler_test', 'multiblock')
.machine((holder) => new EnhancedLargeBoilerMachine(holder, 1000, 10, 4, 2.0))
//Builder(holder,Temp,heatSpeed,Parallel,durationMultiplier)
//Builder(holder,温度上限,温度上升速度,并行,时长倍率)
.rotationState(RotationState.ALL)
.appearanceBlock(GTBlocks.CASING_STEEL_SOLID)
.recipeType('enhanced_boiler_fuel')
.recipeModifier((machine, recipe) => EnhancedLargeBoilerMachine.recipeModifier(machine, recipe), true)
.pattern(definition => FactoryBlockPattern.start()
.aisle('AAAAA', 'A###A', 'AAAAA')
.aisle('AAAAA', 'A###A', 'AAAAA')
.aisle('AA###', 'AK###', 'AA###')
.where('#', Predicates.any())
.where('K', Predicates.controller(Predicates.blocks(definition.get())))
.where('A', Predicates.blocks('gtceu:steel_machine_casing')
.or(Predicates.abilities(PartAbility.IMPORT_ITEMS)) // 燃料
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS)) // 水
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS))) // 蒸汽
.build())
.model(GTUFModels.createTieredMachineModel(
GTCEu.id('block/casings/solid/machine_casing_solid_steel'),
GTCEu.id('block/multiblock/large_chemical_reactor'))) //