Skip to content

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')))
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')))

Clone this wiki locally