-
Notifications
You must be signed in to change notification settings - Fork 0
Example_MultiBlock
LiangquHMF edited this page Aug 9, 2026
·
12 revisions
event.create('kjs_config_parallel', 'multiblock')
.machine((holder) => new ConfigurableElectricParallelMachine(holder, 32))
//32 -> Max_Parallels(int)
//32 -> 设置最大并行数(int)
.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')))
-
Max_parallels = Math.max(1, 2 * tier)
event.create('kjs_tier_parallel', 'multiblock') .machine((holder) => new TierElectricParallelMachine(holder)) .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')))