From 25f01262c6de6a25078ca97822de2b068b23c212 Mon Sep 17 00:00:00 2001 From: Mary <33456283+FourIsTheNumber@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:08:15 -0400 Subject: Blackhole render enhancement (#3390) Co-authored-by: Martin Robertz --- .../java/gregtech/common/render/BlackholeRenderer.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/main/java/gregtech/common/render/BlackholeRenderer.java') diff --git a/src/main/java/gregtech/common/render/BlackholeRenderer.java b/src/main/java/gregtech/common/render/BlackholeRenderer.java index 2693844708..78432fbc6d 100644 --- a/src/main/java/gregtech/common/render/BlackholeRenderer.java +++ b/src/main/java/gregtech/common/render/BlackholeRenderer.java @@ -7,6 +7,7 @@ import java.nio.FloatBuffer; import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; @@ -118,10 +119,21 @@ public class BlackholeRenderer extends TileEntitySpecialRenderer { } private void renderBlackHole(TileEntityBlackhole tile, double x, double y, double z, float timer) { - blackholeProgram.use(); bindTexture(blackholeTexture); GL20.glUniform1f(u_Stability, tile.getStability()); + + float startTime = tile.getStartTime(); + float scaleF = timer - startTime; + // If this is false we're shrinking, so subtract from 40 to translate to reversed scaling + if (!tile.getScaling()) { + scaleF = 40 - scaleF; + } + scaleF = MathHelper.clamp_float(scaleF / 40, 0, 1) * modelScale; + // Smootherstep function to make it scale nicer + scaleF = scaleF * scaleF * scaleF * (scaleF * (6.0f * scaleF - 15.0f) + 10.0f); + GL20.glUniform1f(u_Scale, scaleF); + modelMatrixStack.clear(); float xLocal = ((float) x + .5f); @@ -206,7 +218,7 @@ public class BlackholeRenderer extends TileEntitySpecialRenderer { y, z, tile.getWorldObj() - .getWorldTime() + timeSinceLastTick); + .getTotalWorldTime() + timeSinceLastTick); } renderBlackHole( @@ -215,7 +227,7 @@ public class BlackholeRenderer extends TileEntitySpecialRenderer { y, z, tile.getWorldObj() - .getWorldTime() + timeSinceLastTick); + .getTotalWorldTime() + timeSinceLastTick); } -- cgit