GTCEuStartupEvents.registry('gtceu:recipe_type', event => {
    event.create('gas_centrifuge')
        .category('ctnh')
        .setMaxIOSize(0, 0, 1, 3)
        .setEUIO('in')
        .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
        .setProgressBar(GuiTextures.PROGRESS_BAR_EXTRACT, FillDirection.LEFT_TO_RIGHT)
        .setSound(GTSoundEntries.CENTRIFUGE)
})
GTCEuStartupEvents.registry('gtceu:machine', event => {
    event.create('gas_centrifuge_machine', 'multiblock')
        .rotationState(RotationState.NON_Y_AXIS)
        .recipeType('gas_centrifuge')
        .appearanceBlock(GTBlocks.CASING_STAINLESS_CLEAN)
        .pattern(definition => FactoryBlockPattern.start()
            .aisle("#CCC#", "#CCC#", "#####", "#####", "#####", "#####", "#####")
            .aisle("CBBBC", "CBBBC", "#DED#", "#D#D#", "#D#D#", "#D#D#", "#D#D#")
            .aisle("CBBBC", "CBBBC", "#EEE#", "#####", "#####", "#####", "#####")
            .aisle("CBBBC", "CBBBC", "#DED#", "#D#D#", "#D#D#", "#D#D#", "#D#D#")
            .aisle("#CCC#", "#C@C#", "#####", "#####", "#####", "#####", "#####")
            .where("B", Predicates.blocks("gtceu:clean_machine_casing"))
            .where("C", Predicates.blocks("gtceu:clean_machine_casing")
                .or(Predicates.autoAbilities(definition.getRecipeTypes()))
                .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
            .where("#", Predicates.air())
            .where("D", Predicates.blocks("gtceu:steel_machine_casing"))
            .where("E", Predicates.blocks("gtceu:steel_pipe_casing"))
            .where("@", Predicates.controller(Predicates.blocks(definition.get())))
            .build()
        )
        .workableCasingRenderer('gtceu:block/casings/solid/machine_casing_clean_stainless_steel', 'gtceu:block/multiblock/generator/large_steam_turbine', false)
})
