aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/tectech/thing/block/RenderForgeOfGods.java16
-rw-r--r--src/main/resources/assets/tectech/shaders/star.frag.glsl2
2 files changed, 15 insertions, 3 deletions
diff --git a/src/main/java/tectech/thing/block/RenderForgeOfGods.java b/src/main/java/tectech/thing/block/RenderForgeOfGods.java
index 04c46155c0..7a38b253ef 100644
--- a/src/main/java/tectech/thing/block/RenderForgeOfGods.java
+++ b/src/main/java/tectech/thing/block/RenderForgeOfGods.java
@@ -40,6 +40,7 @@ public class RenderForgeOfGods extends TileEntitySpecialRenderer {
private static float modelNormalize = .0067f * 2;
private static boolean initialized = false;
+ private static boolean failedInit = false;
private static int u_Color = -1, u_ModelMatrix = -1, u_Gamma = -1;
private Matrix4fStack starModelMatrix = new Matrix4fStack(3);
@@ -402,13 +403,24 @@ public class RenderForgeOfGods extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) {
+ if (failedInit) return;
if (!(tile instanceof TileEntityForgeOfGods forgeTile)) return;
if (forgeTile.getRingCount() < 1) return;
+ // If something ever fails, just early return and never try again this session
if (!initialized) {
init();
- initRings();
- if (!initialized) return;
+ if (!initialized) {
+ failedInit = true;
+ return;
+ }
+ try {
+ initRings();
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ failedInit = true;
+ return;
+ }
}
// Based on system time to prevent tps issues from causing stutters
diff --git a/src/main/resources/assets/tectech/shaders/star.frag.glsl b/src/main/resources/assets/tectech/shaders/star.frag.glsl
index d5a6ff894e..8a79e09353 100644
--- a/src/main/resources/assets/tectech/shaders/star.frag.glsl
+++ b/src/main/resources/assets/tectech/shaders/star.frag.glsl
@@ -24,7 +24,7 @@ void main() {
vec3 originalYIQ = toYIQ(texture);
vec3 yiqColor = vec3(original.x,targetYIQ.yz);
vec3 finalrgb = toRGB(yiqColor);
- finalrgb = pow(finalrgb,vec3(1/u_Gamma));
+ finalrgb = pow(finalrgb,vec3(1.0/u_Gamma));
gl_FragColor = vec4(finalrgb,u_Color.a);
}
}