From c273640f4511d5d77b6e4c0fa02c5068c2940591 Mon Sep 17 00:00:00 2001 From: Serenibyss <10861407+serenibyss@users.noreply.github.com> Date: Tue, 28 Nov 2023 22:56:47 -0600 Subject: [PATCH] 2.8 fixes (#61) * 2.8 fixes * Fix steam engine energy hatch issues * fix steam engine predicate tooltip --- .../common/block/blocks/BlockUniqueCasing.java | 2 +- .../generator/MetaTileEntitySteamEngine.java | 14 +++++++++++++- .../standard/MetaTileEntityLargeDistillery.java | 9 +++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/gregicality/multiblocks/common/block/blocks/BlockUniqueCasing.java b/src/main/java/gregicality/multiblocks/common/block/blocks/BlockUniqueCasing.java index 789c7a39..629005d4 100644 --- a/src/main/java/gregicality/multiblocks/common/block/blocks/BlockUniqueCasing.java +++ b/src/main/java/gregicality/multiblocks/common/block/blocks/BlockUniqueCasing.java @@ -40,7 +40,7 @@ public boolean canRenderInLayer(@NotNull IBlockState state, @NotNull BlockRender if (layer == BlockRenderLayer.SOLID) return true; } else if (layer == BlockRenderLayer.CUTOUT) return true; - if (isBloomEnabled(type)) return layer == BloomEffectUtil.getRealBloomLayer(); + if (isBloomEnabled(type)) return layer == BloomEffectUtil.getEffectiveBloomLayer(layer); return layer == BlockRenderLayer.CUTOUT; } diff --git a/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/generator/MetaTileEntitySteamEngine.java b/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/generator/MetaTileEntitySteamEngine.java index 3ba27b6e..f8b43d08 100644 --- a/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/generator/MetaTileEntitySteamEngine.java +++ b/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/generator/MetaTileEntitySteamEngine.java @@ -13,6 +13,8 @@ import org.jetbrains.annotations.Nullable; import gregtech.api.GTValues; +import gregtech.api.capability.GregtechCapabilities; +import gregtech.api.capability.IEnergyContainer; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.FuelMultiblockController; @@ -20,6 +22,7 @@ import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.pattern.BlockPattern; import gregtech.api.pattern.FactoryBlockPattern; +import gregtech.api.pattern.TraceabilityPredicate; import gregtech.api.recipes.RecipeMaps; import gregtech.client.renderer.ICubeRenderer; import gregtech.common.blocks.BlockTurbineCasing; @@ -51,12 +54,21 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHol .where('X', states(getCasingState()).setMinGlobalLimited(18) .or(autoAbilities(false, true, true, true, true, true, false))) .where('G', states(getCasingState2())) - .where('E', abilities(MultiblockAbility.OUTPUT_ENERGY)) + .where('E', energyOutputPredicate()) .where('M', abilities(MultiblockAbility.MUFFLER_HATCH)) .where('#', any()) .build(); } + private static TraceabilityPredicate energyOutputPredicate() { + return metaTileEntities(MultiblockAbility.REGISTRY.get(MultiblockAbility.OUTPUT_ENERGY).stream().filter(mte -> { + IEnergyContainer container = mte.getCapability(GregtechCapabilities.CAPABILITY_ENERGY_CONTAINER, null); + return container != null && container.getOutputVoltage() <= GTValues.V[GTValues.MV]; + }).toArray(MetaTileEntity[]::new)) + .addTooltip("gregtech.multiblock.pattern.error.limited.1", GTValues.VN[GTValues.LV]) + .addTooltip("gregtech.multiblock.pattern.error.limited.0", GTValues.VN[GTValues.MV]); + } + private static IBlockState getCasingState() { return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING.getState(BlockLargeMultiblockCasing.CasingType.STEAM_CASING); } diff --git a/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeDistillery.java b/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeDistillery.java index 3e465259..2674b6de 100644 --- a/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeDistillery.java +++ b/src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeDistillery.java @@ -50,7 +50,7 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHol @Override protected Function multiblockPartSorter() { - return BlockPos::getY; // todo this needs to be "relative up" with Freedom Wrench + return UP.getSorter(getFrontFacing(), getUpwardsFacing(), isFlipped()); } @Override @@ -69,7 +69,7 @@ protected Function multiblockPartSorter() { .aisle("#YYY#", "YYYYY", "YYYYY", "YYYYY", "#YYY#") .where('S', selfPredicate()) .where('Y', casingPredicate.or(abilities(MultiblockAbility.IMPORT_ITEMS)) - .or(abilities(MultiblockAbility.INPUT_ENERGY).setMinGlobalLimited(1)) + .or(abilities(MultiblockAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2)) .or(abilities(MultiblockAbility.IMPORT_FLUIDS).setMinGlobalLimited(1)) .or(abilities(MultiblockAbility.EXPORT_ITEMS)) .or(abilities(GCYMMultiblockAbility.PARALLEL_HATCH).setMaxGlobalLimited(1).setPreviewCount(1)) @@ -130,4 +130,9 @@ public boolean hasMufflerMechanics() { public boolean isTiered() { return false; } + + @Override + public boolean allowsExtendedFacing() { + return false; + } }