diff --git a/src/api b/src/api index bbf27531e..6fac890d4 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit bbf27531eb7d01751c209072aaca0f8e675f4390 +Subproject commit 6fac890d4bdb9c724dcbb6d995c8cb03af5f2b51 diff --git a/src/main/java/noppes/npcs/client/ClientEventHandler.java b/src/main/java/noppes/npcs/client/ClientEventHandler.java index 36d91c1c9..ac3f6336c 100644 --- a/src/main/java/noppes/npcs/client/ClientEventHandler.java +++ b/src/main/java/noppes/npcs/client/ClientEventHandler.java @@ -2,14 +2,14 @@ package noppes.npcs.client; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.client.event.*; import noppes.npcs.client.gui.customoverlay.OverlayCustom; import noppes.npcs.client.renderer.RenderCNPCPlayer; +import noppes.npcs.controllers.data.PlayerModelData; +import org.lwjgl.opengl.GL11; import java.util.ArrayList; import java.util.HashMap; @@ -61,16 +61,34 @@ public class ClientEventHandler { @SubscribeEvent public void onRenderPlayer(RenderPlayerEvent.Pre event) { - ClientEventHandler.renderingPlayer = event.entityPlayer; + EntityPlayer player = event.entityPlayer; + ClientEventHandler.renderingPlayer = player; ClientEventHandler.renderer = event.renderer; ClientEventHandler.partialRenderTick = event.partialRenderTick; + + if (Client.playerModelData.containsKey(player.getUniqueID())) { + PlayerModelData data = Client.playerModelData.get(player.getUniqueID()); + if (data.enabled()) { + GL11.glPushMatrix(); + if (data.rotationEnabledX) + GL11.glRotatef(data.rotationX, 1, 0, 0); + if (data.rotationEnabledY) + GL11.glRotatef(data.rotationY, 0, 1, 0); + if (data.rotationEnabledZ) + GL11.glRotatef(data.rotationZ, 0, 0, 1); + } + } } @SubscribeEvent public void onRenderPlayer(RenderPlayerEvent.Post event) { + EntityPlayer player = event.entityPlayer; + if (Client.playerModelData.containsKey(player.getUniqueID())) { + GL11.glPopMatrix(); + } ClientEventHandler.renderingPlayer = null; - if (hasOverlays(event.entityPlayer)) { + if (hasOverlays(player)) { try { Class renderPlayerJBRA = Class.forName("JinRyuu.JBRA.RenderPlayerJBRA"); if (renderPlayerJBRA.isInstance(event.renderer)) @@ -79,18 +97,18 @@ public class ClientEventHandler { if (!(event.renderer instanceof RenderCNPCPlayer)) { renderCNPCPlayer.tempRenderPartialTicks = event.partialRenderTick; - double d0 = event.entityPlayer.lastTickPosX + (event.entityPlayer.posX - event.entityPlayer.lastTickPosX) * (double) event.partialRenderTick - RenderManager.renderPosX; - double d1 = event.entityPlayer.lastTickPosY + (event.entityPlayer.posY - event.entityPlayer.lastTickPosY) * (double) event.partialRenderTick - RenderManager.renderPosY; - double d2 = event.entityPlayer.lastTickPosZ + (event.entityPlayer.posZ - event.entityPlayer.lastTickPosZ) * (double) event.partialRenderTick - RenderManager.renderPosZ; - float f1 = event.entityPlayer.prevRotationYaw + (event.entityPlayer.rotationYaw - event.entityPlayer.prevRotationYaw) * event.partialRenderTick; + double d0 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) event.partialRenderTick - RenderManager.renderPosX; + double d1 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) event.partialRenderTick - RenderManager.renderPosY; + double d2 = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) event.partialRenderTick - RenderManager.renderPosZ; + float f1 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * event.partialRenderTick; - if (Minecraft.getMinecraft().thePlayer.equals(event.entityPlayer)) { + if (Minecraft.getMinecraft().thePlayer.equals(player)) { d0 = 0; d1 = 0; d2 = 0; } - renderCNPCPlayer.doRender(event.entityPlayer, d0, d1, d2, f1, event.partialRenderTick); + renderCNPCPlayer.doRender(player, d0, d1, d2, f1, event.partialRenderTick); } } } diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java b/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java index cfe670c79..768d7619f 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java @@ -106,7 +106,7 @@ public class PlayerModelData implements IPlayerModelData { this.enabled = enabled; } - public boolean getEnabled() { + public boolean enabled() { return this.enabled; } @@ -114,16 +114,16 @@ public class PlayerModelData implements IPlayerModelData { this.animate = animated; } - public boolean fullAngles() { - return fullAngles; + public boolean isAnimated() { + return this.animate; } public void setFullAngles(boolean limit) { fullAngles = limit; } - public boolean isAnimated() { - return this.animate; + public boolean fullAngles() { + return fullAngles; } public void setAnimRate(float animRate) { @@ -164,7 +164,7 @@ public class PlayerModelData implements IPlayerModelData { this.setRotationZ(rotationZ); } - public void setEnabledRotation(boolean enabledX, boolean enabledY, boolean enabledZ) { + public void setRotationEnabled(boolean enabledX, boolean enabledY, boolean enabledZ) { this.setRotationEnabledX(enabledX); this.setRotationEnabledY(enabledY); this.setRotationEnabledZ(enabledZ);