From b7d2dab9056799f5c8a99f1600eee405b6adb4ed Mon Sep 17 00:00:00 2001 From: luisc Date: Thu, 9 Dec 2021 23:37:04 -0600 Subject: [PATCH] Added parameters for texture translation when the NPC is powered, namely npc.display.poweredTranslateX, poweredTranslateY, and poweredTranslateZ, which can all be changed by setPoweredXYZ(x,y,z), and gotten with getPoweredX(), getPoweredY(), and getPoweredZ(). --- src/main/java/noppes/npcs/DataDisplay.java | 11 +++++++++++ .../npcs/client/renderer/RenderCustomNpc.java | 13 ++++++++----- .../client/renderer/RenderNPCInterface.java | 13 ++++++++----- .../noppes/npcs/scripted/entity/ScriptNpc.java | 17 +++++++++++++++++ .../npcs/scripted/interfaces/ICustomNpc.java | 6 ++++++ 5 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/main/java/noppes/npcs/DataDisplay.java b/src/main/java/noppes/npcs/DataDisplay.java index a18bcd6a7..a9459b6ff 100644 --- a/src/main/java/noppes/npcs/DataDisplay.java +++ b/src/main/java/noppes/npcs/DataDisplay.java @@ -37,7 +37,11 @@ public class DataDisplay { public String texture = "customnpcs:textures/entity/humanmale/Steve.png"; public String cloakTexture = ""; public String glowTexture = ""; + public String poweredTexture = ""; + public float poweredTranslateX = 0.01F; + public float poweredTranslateY = 0.01F; + public float poweredTranslateZ = 0.0F; public int visible = 0; //0:visible 1:Invisible 2:semi-invisible @@ -106,6 +110,10 @@ public class DataDisplay { nbttagcompound.setString("PoweredTexture", poweredTexture); nbttagcompound.setByte("UsingSkinUrl", skinType); + nbttagcompound.setFloat("PoweredX",poweredTranslateX); + nbttagcompound.setFloat("PoweredY",poweredTranslateY); + nbttagcompound.setFloat("PoweredZ",poweredTranslateZ); + if (this.playerProfile != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); @@ -160,6 +168,9 @@ public class DataDisplay { cloakTexture = nbttagcompound.getString("CloakTexture"); glowTexture = nbttagcompound.getString("GlowTexture"); poweredTexture = nbttagcompound.getString("PoweredTexture"); + poweredTranslateX = nbttagcompound.getFloat("PoweredX"); + poweredTranslateY = nbttagcompound.getFloat("PoweredY"); + poweredTranslateZ = nbttagcompound.getFloat("PoweredZ"); modelSize = ValueUtil.CorrectInt(nbttagcompound.getInteger("Size"), 1, Integer.MAX_VALUE); modelType = nbttagcompound.getInteger("modelType"); diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java index 9ef6ab233..c7c82f5d4 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java @@ -108,14 +108,17 @@ public class RenderCustomNpc extends RenderNPCHumanMale{ this.bindTexture(poweredNPCTexture); GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); - float f2 = f1 * 0.01F; - float f3 = f1 * 0.01F; - GL11.glTranslatef(f2, f3, 0.0F); + + float f2 = f1 * npc.display.poweredTranslateX; + float f3 = f1 * npc.display.poweredTranslateY; + float f4 = f1 * npc.display.poweredTranslateZ; + GL11.glTranslatef(f2, f3, f4); + this.setRenderPassModel(this.originalModel); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glEnable(GL11.GL_BLEND); - float f4 = 0.5F; - GL11.glColor4f(f4, f4, f4, 1.0F); + float f5 = 0.5F; + GL11.glColor4f(f5, f5, f5, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE); return 1; diff --git a/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java b/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java index 52c5a5e23..355fece03 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java @@ -258,14 +258,17 @@ public class RenderNPCInterface extends RenderLiving{ this.bindTexture(poweredNPCTexture); GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); - float f2 = f1 * 0.01F; - float f3 = f1 * 0.01F; - GL11.glTranslatef(f2, f3, 0.0F); + + float f2 = f1 * npc.display.poweredTranslateX; + float f3 = f1 * npc.display.poweredTranslateY; + float f4 = f1 * npc.display.poweredTranslateZ; + GL11.glTranslatef(f2, f3, f4); + this.setRenderPassModel(this.originalModel); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glEnable(GL11.GL_BLEND); - float f4 = 0.5F; - GL11.glColor4f(f4, f4, f4, 1.0F); + float f5 = 0.5F; + GL11.glColor4f(f5, f5, f5, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE); diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java index 2c36a142c..60bd1d225 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java @@ -1015,4 +1015,21 @@ public class ScriptNpc extends ScriptLiving imp public String getPoweredTexture() { return npc.display.poweredTexture; } + + public void setPoweredXYZ(float x, float y, float z) { + npc.display.poweredTranslateX = x; + npc.display.poweredTranslateY = y; + npc.display.poweredTranslateZ = z; + npc.updateClient = true; + } + + public float getPoweredX() { + return npc.display.poweredTranslateX; + } + public float getPoweredY() { + return npc.display.poweredTranslateY; + } + public float getPoweredZ() { + return npc.display.poweredTranslateZ; + } } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/ICustomNpc.java b/src/main/java/noppes/npcs/scripted/interfaces/ICustomNpc.java index ff0df53b0..0e36e9253 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/ICustomNpc.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/ICustomNpc.java @@ -707,4 +707,10 @@ public interface ICustomNpc extends IEntityLiving { public void setPoweredTexture(String poweredTexture); public String getPoweredTexture(); + + public void setPoweredXYZ(float x, float y, float z); + + public float getPoweredX(); + public float getPoweredY(); + public float getPoweredZ(); }