Primitive Blast Furnace Gregtech

primitive blast furnace gregtech
I made a list of GTCE’s and gregic additions/shadows of greg’s multiblock structure code, it’s pretty readable without needing to understand all the code. The multiblock pattern is basically ascii art with descriptions that follow about what each symbol means. It also shows that some multiblocks have a minimum number of casings, and where it’s valid to put hatches/buses. Hope this helps others.

Electric Blast Furnace
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle(“XXX”, “CCC”, “CCC”, “XXX”)
.aisle(“XXX”, “C#C”, “C#C”, “XXX”)
.aisle(“XSX”, “CCC”, “CCC”, “XXX”)
.setAmountAtLeast(‘L’, 10)
.where(‘S’, selfPredicate())
.where(‘L’, statePredicate(getCasingState()))
primitive blast furnace gregtech get more info primitive blast furnace gregtech
.where(‘X’, statePredicate(getCasingState()).or(abilityPartPredicate(ALLOWED_ABILITIES)))
.where(‘C’, heatingCoilPredicate())
.where(‘#’, isAirPredicate())
.build();
}
private static final MultiblockAbility[] ALLOWED_ABILITIES = {
MultiblockAbility.IMPORT_ITEMS, MultiblockAbility.IMPORT_FLUIDS,
MultiblockAbility.EXPORT_ITEMS, MultiblockAbility.EXPORT_FLUIDS,
MultiblockAbility.INPUT_ENERGY
};
primitive blast furnace gregtech more info primitive blast furnace gregtech
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.INVAR_HEATPROOF);
}
https://github.com/GregTechCE/GregTech/blob/34dc945c2d53db13613083df493757b9f776c5e5/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java#L86

Distillation Tower
protected BlockPattern createStructurePattern() {
Predicate fluidExportPredicate = countMatch(“HatchesAmount”, abilityPartPredicate(MultiblockAbility.EXPORT_FLUIDS));
Predicate exactlyOneHatch = context -> context.getInt(“HatchesAmount”) == 1;
return FactoryBlockPattern.start(RIGHT, FRONT, UP)
primitive blast furnace gregtech here primitive blast furnace gregtech
.aisle(“YSY”, “YZY”, “YYY”)
.aisle(“XXX”, “X#X”, “XXX”).setRepeatable(0, 10)
.aisle(“XXX”, “XXX”, “XXX”)
.where(‘S’, selfPredicate())
.where(‘Z’, abilityPartPredicate(MultiblockAbility.IMPORT_FLUIDS))
.where(‘Y’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.EXPORT_ITEMS, MultiblockAbility.INPUT_ENERGY)))
.where(‘X’, fluidExportPredicate.or(statePredicate(getCasingState())))
.where(‘#’, isAirPredicate())
.validateLayer(1, exactlyOneHatch)
.validateLayer(2, exactlyOneHatch)
primitive blast furnace gregtech get more info primitive blast furnace gregtech
.build();
}
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.STAINLESS_CLEAN);
}
https://github.com/GregTechCE/GregTech/blob/34dc945c2d53db13613083df493757b9f776c5e5/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java#L52

Multi Furnace
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
primitive blast furnace gregtech website primitive blast furnace gregtech
.aisle(“XXX”, “CCC”, “XXX”)
.aisle(“XXX”, “C#C”, “XXX”)
.aisle(“XSX”, “CCC”, “XXX”)
.setAmountAtLeast(‘L’, 9)
.where(‘S’, selfPredicate())
.where(‘L’, statePredicate(getCasingState()))
.where(‘X’, statePredicate(getCasingState()).or(abilityPartPredicate(ALLOWED_ABILITIES)))
.where(‘C’, MetaTileEntityElectricBlastFurnace.heatingCoilPredicate())
.where(‘#’, isAirPredicate())
.build();
primitive blast furnace gregtech check here primitive blast furnace gregtech
}
private static final MultiblockAbility[] ALLOWED_ABILITIES = {
MultiblockAbility.IMPORT_ITEMS, MultiblockAbility.EXPORT_ITEMS, MultiblockAbility.INPUT_ENERGY
};
public IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.INVAR_HEATPROOF);
}
https://github.com/GregTechCE/GregTech/blob/5d71173526dd665691b72a6ce9d01947f1d5eefe/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityMultiFurnace.java#L76

Diesel Engine
primitive blast furnace gregtech here primitive blast furnace gregtech
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle(“XXX”, “XDX”, “XXX”)
.aisle(“XHX”, “HGH”, “XHX”)
.aisle(“XHX”, “HGH”, “XHX”)
.aisle(“AAA”, “AYA”, “AAA”)
.where(‘X’, statePredicate(getCasingState()))
.where(‘G’, statePredicate(MetaBlocks.TURBINE_CASING.getState(TurbineCasingType.TITANIUM_GEARBOX)))
.where(‘H’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.IMPORT_FLUIDS)))
.where(‘D’, abilityPartPredicate(MultiblockAbility.OUTPUT_ENERGY))
primitive blast furnace gregtech read more primitive blast furnace gregtech
.where(‘A’, intakeCasingPredicate())
.where(‘Y’, selfPredicate())
.build();
}
public IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.TITANIUM_STABLE);
}
https://github.com/GregTechCE/GregTech/blob/34dc945c2d53db13613083df493757b9f776c5e5/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityDieselEngine.java#L75

PASTE  An Error Was Detected On Device deviceharddisk0dr0 During A Paging Operation.

Vacuum Freezer
primitive blast furnace gregtech website primitive blast furnace gregtech
return FactoryBlockPattern.start()
.aisle(“XXX”, “XXX”, “XXX”)
.aisle(“XXX”, “X#X”, “XXX”)
.aisle(“XXX”, “XSX”, “XXX”)
.setAmountAtLeast(‘L’, 14)
.where(‘S’, selfPredicate())
.where(‘L’, statePredicate(getCasingState()))
.where(‘X’, statePredicate(getCasingState()).or(abilityPartPredicate(ALLOWED_ABILITIES)))
.where(‘#’, isAirPredicate())
.build();
primitive blast furnace gregtech get more info primitive blast furnace gregtech
private static final MultiblockAbility[] ALLOWED_ABILITIES = {
MultiblockAbility.IMPORT_ITEMS, MultiblockAbility.IMPORT_FLUIDS,
MultiblockAbility.EXPORT_ITEMS, MultiblockAbility.EXPORT_FLUIDS,
MultiblockAbility.INPUT_ENERGY
};
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.ALUMINIUM_FROSTPROOF);
}
https://github.com/GregTechCE/GregTech/blob/cb5c1b63ba42afe7eea9ad090763ca5fd39e1685/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityVacuumFreezer.java#L36

primitive blast furnace gregtech website primitive blast furnace gregtech
Pyrolyse Oven
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle(“XXX”, “XXX”, “XXX”)
.aisle(“CCC”, “C#C”, “CCC”)
.aisle(“CCC”, “C#C”, “CCC”)
.aisle(“XXX”, “XSX”, “XXX”)
.where(‘S’, selfPredicate())
.where(‘X’, statePredicate(getCasingState()).or(abilityPartPredicate(ALLOWED_ABILITIES)))
.where(‘C’, statePredicate(MetaBlocks.WIRE_COIL.getState(CoilType.CUPRONICKEL)))
primitive blast furnace gregtech read more primitive blast furnace gregtech
.where(‘#’, isAirPredicate())
.build();
}
private static final MultiblockAbility[] ALLOWED_ABILITIES = {
MultiblockAbility.IMPORT_ITEMS, MultiblockAbility.IMPORT_FLUIDS,
MultiblockAbility.EXPORT_ITEMS, MultiblockAbility.EXPORT_FLUIDS,
MultiblockAbility.INPUT_ENERGY
};
protected IBlockState getCasingState() {
return MetaBlocks.MACHINE_CASING.getState(MachineCasingType.ULV);
primitive blast furnace gregtech click here primitive blast furnace gregtech
}
https://github.com/GregTechCE/GregTech/blob/cb5c1b63ba42afe7eea9ad090763ca5fd39e1685/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPyrolyseOven.java#L37

Implosion Chamber
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle(“XXX”, “XXX”, “XXX”)
.aisle(“XXX”, “X#X”, “XXX”)
.aisle(“XXX”, “XSX”, “XXX”)
.setAmountAtLeast(‘L’, 14)
primitive blast furnace gregtech check here primitive blast furnace gregtech
.where(‘S’, selfPredicate())
.where(‘L’, statePredicate(getCasingState()))
.where(‘X’, statePredicate(getCasingState()).or(abilityPartPredicate(ALLOWED_ABILITIES)))
.where(‘#’, isAirPredicate())
.where(‘C’, statePredicate(getCasingState()))
.build();
}
private static final MultiblockAbility[] ALLOWED_ABILITIES = {
MultiblockAbility.IMPORT_ITEMS, MultiblockAbility.EXPORT_ITEMS, MultiblockAbility.INPUT_ENERGY
};
primitive blast furnace gregtech website primitive blast furnace gregtech
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.STEEL_SOLID);
}
https://github.com/GregTechCE/GregTech/blob/cb5c1b63ba42afe7eea9ad090763ca5fd39e1685/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityImplosionCompressor.java#L35

Assembly Line
return FactoryBlockPattern.start().start(LEFT, DOWN, BACK)
.aisle(“#Y#”, “GAG”, “RTR”, “COC”)
.aisle(“#Y#”, “GAG”, “RTR”, “FIF”).setRepeatable(3, 14)
.aisle(“#Y#”, “GSG”, “RTR”, “FIF”)
primitive blast furnace gregtech website primitive blast furnace gregtech
.where(‘S’, selfPredicate())
.where(‘C’, statePredicate(getCasingState()))
.where(‘F’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.IMPORT_FLUIDS)))
.where(‘O’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.EXPORT_ITEMS)))
.where(‘Y’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.INPUT_ENERGY)))
.where(‘I’, tilePredicate((state, tile) -> {
return tile.metaTileEntityId.equals(MetaTileEntities.ITEM_IMPORT_BUS[0].metaTileEntityId); // ULV import bus
}))
.where(‘G’, statePredicate(MetaBlocks.MUTLIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.GRATE_CASING)))
.where(‘A’, statePredicate(MetaBlocks.MUTLIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.ASSEMBLER_CASING)))
primitive blast furnace gregtech get more info primitive blast furnace gregtech
.where(‘R’, statePredicate(GAMetaBlocks.TRANSPARENT_CASING.getState(GATransparentCasing.CasingType.REINFORCED_GLASS)))
.where(‘T’, statePredicate(GAMetaBlocks.MUTLIBLOCK_CASING.getState(GAMultiblockCasing.CasingType.TUNGSTENSTEEL_GEARBOX_CASING)))
.where(‘#’, (tile) -> {
return true;
})
.build();
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(BlockMetalCasing.MetalCasingType.STEEL_SOLID);
}
https://github.com/EmosewaPixel/GregicAdditions/blob/39106031e60bb003dc3c153088684d8b3df8a1c5/src/main/java/gregicadditions/machines/TileEntityAssemblyLine.java#L36
primitive blast furnace gregtech read more primitive blast furnace gregtech

Fusion Reactor
@Override
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start().start(LEFT, DOWN, BACK)
.aisle(“###############”, “######OCO######”, “###############”)
.aisle(“######ICI######”, “####CCcccCC####”, “######ICI######”)
.aisle(“####CC###CC####”, “###EccOCOccE###”, “####CC###CC####”)
.aisle(“###C#######C###”, “##EcEC###CEcE##”, “###C#######C###”)
.aisle(“##C#########C##”, “#CcE#######EcC#”, “##C#########C##”)
primitive blast furnace gregtech check here primitive blast furnace gregtech
.aisle(“##C#########C##”, “#CcC#######CcC#”, “##C#########C##”)
.aisle(“#I###########I#”, “OcO#########OcO”, “#I###########I#”)
.aisle(“#C###########C#”, “CcC#########CcC”, “#C###########C#”)
.aisle(“#I###########I#”, “OcO#########OcO”, “#I###########I#”)
.aisle(“##C#########C##”, “#CcC#######CcC#”, “##C#########C##”)
.aisle(“##C#########C##”, “#CcE#######EcC#”, “##C#########C##”)
.aisle(“###C#######C###”, “##EcEC###CEcE##”, “###C#######C###”)
.aisle(“####CC###CC####”, “###EccOCOccE###”, “####CC###CC####”)
.aisle(“######ICI######”, “####CCcccCC####”, “######ICI######”)
.aisle(“###############”, “######OSO######”, “###############”)
primitive blast furnace gregtech website primitive blast furnace gregtech
.where(‘S’, selfPredicate())
.where(‘C’, statePredicate(getCasingState()))
.where(‘c’, statePredicate(getCoilState()))
.where(‘O’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.EXPORT_FLUIDS)))
.where(‘E’, statePredicate(getCasingState()).or(tilePredicate((state, tile) -> {
for (int i = tier; i < GTValues.V.length; i++) {
if (tile.metaTileEntityId.equals(MetaTileEntities.ENERGY_INPUT_HATCH[i].metaTileEntityId))
return true;
}
return false;
primitive blast furnace gregtech click here primitive blast furnace gregtech
})))
.where(‘I’, statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.IMPORT_FLUIDS)))
.where(‘#’, (tile) -> true)
.build();
}
private IBlockState getCasingState() {
switch (tier) {
case 6:
return MetaBlocks.MACHINE_CASING.getState(BlockMachineCasing.MachineCasingType.LuV);
case 7:
primitive blast furnace gregtech website primitive blast furnace gregtech
return MetaBlocks.MUTLIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.FUSION_CASING);
case 8:
default:
return MetaBlocks.MUTLIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.FUSION_CASING_MK2);
}
}
private IBlockState getCoilState() {
switch (tier) {
case 6:
return MetaBlocks.WIRE_COIL.getState(BlockWireCoil.CoilType.SUPERCONDUCTOR);
primitive blast furnace gregtech more info primitive blast furnace gregtech
case 7:
case 8:
default:
return MetaBlocks.WIRE_COIL.getState(BlockWireCoil.CoilType.FUSION_COIL);
}
}
https://github.com/EmosewaPixel/GregicAdditions/blob/401b13a43ce952e287eacb9e678b2ba3ac533401/src/main/java/gregicadditions/machines/TileEntityFusionReactor.java#L61

Cracking Unit
protected BlockPattern createStructurePattern() {
primitive blast furnace gregtech get more info primitive blast furnace gregtech
return FactoryBlockPattern.start()
.aisle(“HCHCH”, “HCHCH”, “HCHCH”)
.aisle(“HCHCH”, “H###H”, “HCHCH”)
.aisle(“HCHCH”, “HCOCH”, “HCHCH”)
.setAmountAtLeast(‘L’, 20)
.where(‘O’, selfPredicate())
.where(‘L’, statePredicate(getCasingState()))
.where(‘H’, statePredicate(getCasingState()).or(abilityPartPredicate(ALLOWED_ABILITIES)))
.where(‘#’, isAirPredicate())
.where(‘C’, statePredicate(getCoilState()))
primitive blast furnace gregtech more info primitive blast furnace gregtech
.build();
private static final MultiblockAbility[] ALLOWED_ABILITIES = {
MultiblockAbility.IMPORT_FLUIDS, MultiblockAbility.EXPORT_FLUIDS,
MultiblockAbility.INPUT_ENERGY
};
protected IBlockState getCoilState() {
return MetaBlocks.WIRE_COIL.getState(CoilType.CUPRONICKEL);
}
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(BlockMetalCasing.MetalCasingType.STAINLESS_CLEAN);
primitive blast furnace gregtech read more primitive blast furnace gregtech
}
https://github.com/GregTechCE/GregTech/blob/34dc945c2d53db13613083df493757b9f776c5e5/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCrackingUnit.java#L36

PASTE  Ryuquezacotl

Large Turbine
protected BlockPattern createStructurePattern() {
return turbineType == null ? null :
FactoryBlockPattern.start()
.aisle(“CCCC”, “CHHC”, “CCCC”)
.aisle(“CHHC”, “R##D”, “CHHC”)
.aisle(“CCCC”, “CSHC”, “CCCC”)
primitive blast furnace gregtech check here primitive blast furnace gregtech
.where(‘S’, selfPredicate())
.where(‘#’, isAirPredicate())
.where(‘C’, statePredicate(getCasingState()))
.where(‘H’, statePredicate(getCasingState()).or(abilityPartPredicate(getAllowedAbilities())))
.where(‘R’, abilityPartPredicate(ABILITY_ROTOR_HOLDER))
.where(‘D’, abilityPartPredicate(MultiblockAbility.OUTPUT_ENERGY))
.build();
}
public IBlockState getCasingState() {
return turbineType.casingState;
primitive blast furnace gregtech check here primitive blast furnace gregtech
}
public MultiblockAbility[] getAllowedAbilities() {
return turbineType.hasOutputHatch ? // false for gas, true for steam and plasma
new MultiblockAbility[]{MultiblockAbility.IMPORT_FLUIDS, MultiblockAbility.EXPORT_FLUIDS} :
new MultiblockAbility[]{MultiblockAbility.IMPORT_FLUIDS};
}
STEAM(RecipeMaps.STEAM_TURBINE_FUELS, MetaBlocks.TURBINE_CASING.getState(TurbineCasingType.STEEL_TURBINE_CASING), Textures.SOLID_STEEL_CASING, true),
GAS(RecipeMaps.GAS_TURBINE_FUELS, MetaBlocks.TURBINE_CASING.getState(TurbineCasingType.STAINLESS_TURBINE_CASING), Textures.CLEAN_STAINLESS_STEEL_CASING, false),
PLASMA(RecipeMaps.PLASMA_GENERATOR_FUELS, MetaBlocks.TURBINE_CASING.getState(TurbineCasingType.TUNGSTENSTEEL_TURBINE_CASING), Textures.ROBUST_TUNGSTENSTEEL_CASING, true);
https://github.com/GregTechCE/GregTech/blob/8cb51032b9b8f7f58e0ca5f7eab50235118ec6ae/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeTurbine.java#L134
primitive blast furnace gregtech here primitive blast furnace gregtech

Large Boiler
protected BlockPattern createStructurePattern() {
return boilerType == null ? null : FactoryBlockPattern.start()
.aisle(“XXX”, “CCC”, “CCC”, “CCC”)
.aisle(“XXX”, “CPC”, “CPC”, “CCC”)
.aisle(“XXX”, “CSC”, “CCC”, “CCC”)
.setAmountAtLeast(‘X’, 4)
.setAmountAtLeast(‘C’, 20)
.where(‘S’, selfPredicate())
primitive blast furnace gregtech check here primitive blast furnace gregtech
.where(‘P’, statePredicate(boilerType.pipeState))
.where(‘X’, state -> statePredicate(GTUtility.getAllPropertyValues(boilerType.fireboxState, BlockFireboxCasing.ACTIVE))
.or(abilityPartPredicate(MultiblockAbility.IMPORT_FLUIDS, MultiblockAbility.IMPORT_ITEMS)).test(state))
.where(‘C’, statePredicate(boilerType.casingState).or(abilityPartPredicate(
MultiblockAbility.EXPORT_FLUIDS)))
.build();
}
BRONZE(900, 1.0f, 500,
MetaBlocks.METAL_CASING.getState(MetalCasingType.BRONZE_BRICKS),
MetaBlocks.BOILER_FIREBOX_CASING.getState(FireboxCasingType.BRONZE_FIREBOX),
primitive blast furnace gregtech here primitive blast furnace gregtech
MetaBlocks.BOILER_CASING.getState(BoilerCasingType.BRONZE_PIPE),
Textures.BRONZE_PLATED_BRICKS,
Textures.BRONZE_FIREBOX, Textures.BRONZE_FIREBOX_ACTIVE),

STEEL(1600, 1.6f, 800,
MetaBlocks.METAL_CASING.getState(MetalCasingType.STEEL_SOLID),
MetaBlocks.BOILER_FIREBOX_CASING.getState(FireboxCasingType.STEEL_FIREBOX),
MetaBlocks.BOILER_CASING.getState(BoilerCasingType.STEEL_PIPE),
Textures.SOLID_STEEL_CASING,
Textures.STEEL_FIREBOX, Textures.STEEL_FIREBOX_ACTIVE),
primitive blast furnace gregtech click here primitive blast furnace gregtech

TITANIUM(3700, 3.0f, 2000,
MetaBlocks.METAL_CASING.getState(MetalCasingType.TITANIUM_STABLE),
MetaBlocks.BOILER_FIREBOX_CASING.getState(FireboxCasingType.TITANIUM_FIREBOX),
MetaBlocks.BOILER_CASING.getState(BoilerCasingType.TITANIUM_PIPE),
Textures.STABLE_TITANIUM_CASING,
Textures.TITANIUM_FIREBOX, Textures.TITANIUM_FIREBOX_ACTIVE),

TUNGSTENSTEEL(7800, 5.0f, 4000,
MetaBlocks.METAL_CASING.getState(MetalCasingType.TUNGSTENSTEEL_ROBUST),
primitive blast furnace gregtech here primitive blast furnace gregtech
MetaBlocks.BOILER_FIREBOX_CASING.getState(FireboxCasingType.TUNGSTENSTEEL_FIREBOX),
MetaBlocks.BOILER_CASING.getState(BoilerCasingType.TUNGSTENSTEEL_PIPE),
Textures.ROBUST_TUNGSTENSTEEL_CASING,
Textures.TUNGSTENSTEEL_FIREBOX, Textures.TUNGSTENSTEEL_FIREBOX_ACTIVE);
https://github.com/GregTechCE/GregTech/blob/34a4134bd1c8043b5443c6e9852081f80bf0e254/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityLargeBoiler.java#L345

Coke Oven (GTCE)
protected BlockPattern createStructurePattern() {
Predicate hatchPredicate = tilePredicate((state, tile) -> tile instanceof MetaTileEntityCokeOvenHatch);
primitive blast furnace gregtech check here primitive blast furnace gregtech
return FactoryBlockPattern.start()
.aisle(“XXX”, “XZX”, “XXX”)
.aisle(“XZX”, “Z#Z”, “XZX”)
.aisle(“XXX”, “XYX”, “XXX”)
.where(‘Z’, statePredicate(getCasingState()).or(hatchPredicate))
.where(‘X’, statePredicate(getCasingState()))
.where(‘#’, isAirPredicate())
.where(‘Y’, selfPredicate())
.build();
}
primitive blast furnace gregtech website primitive blast furnace gregtech
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.COKE_BRICKS);
}
https://github.com/GregTechCE/GregTech/blob/c674dd30780fe4d52f7394ff968fa3f884dd8c7e/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOven.java#L238

PASTE  At&2

Coke Oven (shadows of greg)
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle(“XXX”, “XXX”, “XXX”)
.aisle(“XXX”, “X#X”, “XXX”)
primitive blast furnace gregtech more info primitive blast furnace gregtech
.aisle(“XXX”, “XYX”, “XXX”)
.setAmountAtLeast(‘X’, 20)
.where(‘X’, statePredicate(getCasingState()).or(tilePredicate((state, tile) -> {
return tile.metaTileEntityId.equals(GATileEntities.COKE_FLUID_HATCH.metaTileEntityId) || tile.metaTileEntityId.equals(GATileEntities.COKE_ITEM_BUS.metaTileEntityId);
})))
.where(‘#’, isAirPredicate())
.where(‘Y’, selfPredicate())
.build();
}
protected IBlockState getCasingState() {
primitive blast furnace gregtech here primitive blast furnace gregtech
return GAMetaBlocks.MUTLIBLOCK_CASING.getState(GAMultiblockCasing.CasingType.COKE_OVEN_BRICKS);
}
https://github.com/EmosewaPixel/GregicAdditions/blob/401b13a43ce952e287eacb9e678b2ba3ac533401/src/main/java/gregicadditions/machines/TileEntityCokeOven.java#L228

Primitive Blast Furnace
protected BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle(“XXX”, “XXX”, “XXX”, “XXX”)
.aisle(“XXX”, “X#X”, “X#X”, “X#X”)
.aisle(“XXX”, “XYX”, “XXX”, “XXX”)
primitive blast furnace gregtech more info primitive blast furnace gregtech
.where(‘X’, statePredicate(getCasingState()))
.where(‘#’, isAirPredicate())
.where(‘Y’, selfPredicate())
.build();
}
protected IBlockState getCasingState() {
return MetaBlocks.METAL_CASING.getState(MetalCasingType.PRIMITIVE_BRICKS);
}
https://github.com/GregTechCE/GregTech/blob/ae900c446a6b0ad50907e7d451d7fd260ecda70f/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveBlastFurnace.java#L371
primitive blast furnace gregtech

Tags: primitive blast furnace gregtech, www bcfakes com
cheats
game cheats scripts
utube
Buy Hacks Cheats Undetected 2022