From 0ed9ee64c49ed0ddfcc486aa7983102bcdf05f15 Mon Sep 17 00:00:00 2001 From: Az Date: Sat, 23 Nov 2019 19:25:23 +0000 Subject: [PATCH 1/3] Fix : when rendering models that don't have any entries in the boxList (Such as Lycanite's mobs) this function throws and exception and the renderer goes crazy. --- .../java/electroblob/wizardry/client/renderer/LayerFrost.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java b/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java index ae8536dd..a0b775fb 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java +++ b/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java @@ -112,7 +112,7 @@ public class LayerFrost implements LayerRenderer { double scaleX = 1, scaleY = 1; // It's more logical to use the model's texture size, but some classes don't bother setting it properly // (e.g. ModelVillager), so to get the correct dimensions I'm getting them from the first box instead. - if(model.boxList != null && model.boxList.get(0) != null){ + if(model.boxList != null && model.boxList.size() >= 1 && model.boxList.get(0) != null){ scaleX = (double)model.boxList.get(0).textureWidth / 16d; scaleY = (double)model.boxList.get(0).textureHeight / 16d; }else{ // Fallback to model fields; should never be needed From 91df7cfd7276944045155d4112052c6b23982bcf Mon Sep 17 00:00:00 2001 From: Matthew William Noel Date: Fri, 6 Dec 2019 19:54:55 -0800 Subject: [PATCH 2/3] Fix Electroblob77/Wizardry#170 --- .../electroblob/wizardry/client/renderer/RenderArcaneLock.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java b/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java index abab6a76..1364340e 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java @@ -42,6 +42,7 @@ public class RenderArcaneLock { GlStateManager.pushMatrix(); GlStateManager.enableBlend(); + GL11.glPushAttrib(GL11.GL_LIGHTING); GlStateManager.disableLighting(); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); @@ -82,7 +83,7 @@ public class RenderArcaneLock { GlStateManager.disableBlend(); GlStateManager.enableTexture2D(); - GlStateManager.enableLighting(); + GL11.glPopAttrib(); // GL11.GL_LIGHTING GlStateManager.disableRescaleNormal(); GlStateManager.popMatrix(); } From c7c6f964bfb03cfc622c28d34f2d81e51b0f67d7 Mon Sep 17 00:00:00 2001 From: Matthew William Noel Date: Sat, 7 Dec 2019 12:46:40 -0800 Subject: [PATCH 3/3] Fix Electroblob77/Wizardry#170 the right way --- .../wizardry/client/renderer/RenderArcaneLock.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java b/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java index 1364340e..69de5206 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneLock.java @@ -42,7 +42,7 @@ public class RenderArcaneLock { GlStateManager.pushMatrix(); GlStateManager.enableBlend(); - GL11.glPushAttrib(GL11.GL_LIGHTING); + boolean lighting = GL11.glIsEnabled(GL11.GL_LIGHTING); GlStateManager.disableLighting(); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); @@ -83,7 +83,9 @@ public class RenderArcaneLock { GlStateManager.disableBlend(); GlStateManager.enableTexture2D(); - GL11.glPopAttrib(); // GL11.GL_LIGHTING + if (lighting) { + GlStateManager.enableLighting(); + } GlStateManager.disableRescaleNormal(); GlStateManager.popMatrix(); }