From dce066c6e3dc5fc07d575aac82160f366e3e1df3 Mon Sep 17 00:00:00 2001 From: Mary <33456283+FourIsTheNumber@users.noreply.github.com> Date: Sat, 14 Sep 2024 05:25:40 -0400 Subject: The black hole fixes never end (#3183) --- .../multi/compressor/MTEBlackHoleCompressor.java | 129 +++++++++++---------- .../tileentities/render/TileEntityBlackhole.java | 22 ++-- src/main/resources/assets/gregtech/lang/en_US.lang | 2 +- 3 files changed, 82 insertions(+), 71 deletions(-) diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java index 7a7b6ed042..f8e223d6f5 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java @@ -1,10 +1,16 @@ package gregtech.common.tileentities.machines.multi.compressor; import static bartworks.util.BWTooltipReference.TT; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; import static gregtech.api.enums.GTValues.AuthorFourIsTheNumber; import static gregtech.api.enums.GTValues.Ollie; -import static gregtech.api.enums.HatchElement.*; +import static gregtech.api.enums.HatchElement.Energy; +import static gregtech.api.enums.HatchElement.ExoticEnergy; +import static gregtech.api.enums.HatchElement.InputBus; +import static gregtech.api.enums.HatchElement.InputHatch; +import static gregtech.api.enums.HatchElement.OutputBus; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_MULTI_BLACKHOLE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_MULTI_BLACKHOLE_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW; @@ -18,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.stream.Stream; import javax.annotation.Nonnull; @@ -34,6 +41,7 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; @@ -44,7 +52,6 @@ import gregtech.api.GregTechAPI; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; import gregtech.api.enums.Textures; -import gregtech.api.gui.modularui.GTUITextures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -188,40 +195,18 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase findRecipeMatches(@Nullable RecipeMap map) { // Loop through all items and look for the Activation and Deactivation Catalysts // Deactivation resets stability to 100 and catalyzing cost to 1 for (MTEHatchInputBus bus : mInputBusses) { @@ -499,6 +480,35 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase realMap = (getModeFromCircuit(inputItems) == MACHINEMODE_COMPRESSOR) + ? RecipeMaps.compressorRecipes + : RecipeMaps.neutroniumCompressorRecipes; + return super.findRecipeMatches(realMap); + } + + @NotNull + @Override + protected OverclockCalculator createOverclockCalculator(@NotNull GTRecipe recipe) { + // Limit ocs up to hatch tier + int ocs = GTUtility.getTier(getAverageInputVoltage()) - GTUtility.getTier(recipe.mEUt); + if (ocs < 0) ocs = 0; + return new OverclockCalculator().setRecipeEUt(recipe.mEUt) + .setAmperage(availableAmperage) + .setEUt(availableVoltage) + .setDuration(recipe.mDuration) + .setSpeedBoost(speedBoost) + .setEUtDiscount(euModifier) + .setAmperageOC(amperageOC) + .setDurationDecreasePerOC(overClockTimeReduction) + .setEUtIncreasePerOC(overClockPowerIncrease) + .setParallel(getMaxParallelRecipes()) + .limitOverclockCount(ocs); + } + + @NotNull + @Override + protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) { + // Default speed bonus setSpeedBonus(0.2F); if (blackHoleStatus == 1) return CheckRecipeResultRegistry.NO_BLACK_HOLE; @@ -543,8 +553,6 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase= 0) { - if (rendererTileEntity == null) createRenderBlock(); - rendererTileEntity.setStability(blackHoleStability / 100F); float stabilityDecrease = 1F; // If the machine is running, reduce stability loss by 25% if (this.maxProgresstime() != 0) { @@ -570,8 +578,11 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase= 0) blackHoleStability -= stabilityDecrease; else blackHoleStability = 0; } else blackHoleStatus = 3; @@ -591,12 +602,6 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase getRecipeMap() { - return (machineMode == MACHINEMODE_COMPRESSOR) ? RecipeMaps.compressorRecipes - : RecipeMaps.neutroniumCompressorRecipes; - } - @Nonnull @Override public Collection> getAvailableRecipeMaps() { diff --git a/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java b/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java index 5cd59d2cf4..f15aa45eee 100644 --- a/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java +++ b/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java @@ -22,15 +22,19 @@ public class TileEntityBlackhole extends TileEntity { private static final String RENDER_NBT_TAG = NBT_TAG + "LASER_RENDER"; public void setLaserColor(float r, float g, float b) { - laserR = r; - laserG = g; - laserB = b; - updateToClient(); + if (!worldObj.isRemote) { + laserR = r; + laserG = g; + laserB = b; + updateToClient(); + } } public void toggleLaser(boolean toggle) { - laserRender = toggle; - updateToClient(); + if (!worldObj.isRemote) { + laserRender = toggle; + updateToClient(); + } } public float getLaserR() { @@ -51,8 +55,10 @@ public class TileEntityBlackhole extends TileEntity { public void setStability(float stability) { // Can probably be simplified, maps stability > .5 as 1, and stability <.5 from 0 to 1 - this.stability = ((float) Math.min(stability + .5, 1f) - .5f) * 2f; - updateToClient(); + if (!worldObj.isRemote) { + this.stability = ((float) Math.min(stability + .5, 1f) - .5f) * 2f; + updateToClient(); + } } public float getStability() { diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 8ced101831..b1ce4bb4cc 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -531,7 +531,7 @@ GT5U.gui.text.drill_exhausted=§dDrill has exhausted all resources GT5U.gui.text.drill_generic_finished=§7Mining pipes have been retracted GT5U.gui.text.drill_retract_pipes_finished=§7Operation aborted GT5U.gui.text.backfiller_no_concrete=§7No liquid concrete -GT5U.gui.text.no_black_hole=§7Black hole is not active +GT5U.gui.text.no_black_hole=§7Requires an active black hole GT5U.gui.text.unstable_black_hole=§7Black hole is unstable GT5U.gui.text.backfiller_finished=§aWork complete GT5U.gui.text.backfiller_working=§aPouring concrete -- cgit