diff options
author | Mary <33456283+FourIsTheNumber@users.noreply.github.com> | 2024-10-20 09:08:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-20 13:08:15 +0000 |
commit | 25f01262c6de6a25078ca97822de2b068b23c212 (patch) | |
tree | 8bfa30bec1391ff4719af4fffe395544e9d5ca87 /src/main/java/gregtech/common/render/BlackholeRenderer.java | |
parent | c9dd559aa1cc5d1a3659fb11e48bcb4bc22d7214 (diff) | |
download | GT5-Unofficial-25f01262c6de6a25078ca97822de2b068b23c212.tar.gz GT5-Unofficial-25f01262c6de6a25078ca97822de2b068b23c212.tar.bz2 GT5-Unofficial-25f01262c6de6a25078ca97822de2b068b23c212.zip |
Blackhole render enhancement (#3390)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/common/render/BlackholeRenderer.java')
-rw-r--r-- | src/main/java/gregtech/common/render/BlackholeRenderer.java | 18 |
1 files changed, 15 insertions, 3 deletions
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); } |