diff --git a/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java b/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java index 9863cbb..4c4aae7 100644 --- a/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java +++ b/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java @@ -13,6 +13,7 @@ import net.minecraft.client.model.ModelPlayer; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.resources.DefaultPlayerSkin; @@ -155,10 +156,11 @@ public class RenderEntityEvents GlStateManager.enableAlpha(); - if (perspective == 0 && Minecraft.getMinecraft().inGameHasFocus) + if (perspective == 0) { + RenderHelper.enableStandardItemLighting(); Minecraft.getMinecraft().getRenderManager().setRenderShadow(false); - Minecraft.getMinecraft().getRenderManager().renderEntityStatic(entity, 1.0f, false); + Minecraft.getMinecraft().getRenderManager().renderEntityStatic(entity, 0.0f, false); Minecraft.getMinecraft().getRenderManager().setRenderShadow(true); } @@ -167,6 +169,12 @@ public class RenderEntityEvents GlStateManager.scale(1, 1, 1); GlStateManager.popMatrix(); + + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableRescaleNormal(); + GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit); + GlStateManager.disableTexture2D(); + GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit); if (perspective == 0) event.setCanceled(true); @@ -229,7 +237,7 @@ public class RenderEntityEvents GlStateManager.translate(0, -0.3, 0); Minecraft.getMinecraft().getRenderManager().setRenderShadow(false); - Minecraft.getMinecraft().getRenderManager().renderEntityStatic(entity, 1.0f, false); + Minecraft.getMinecraft().getRenderManager().renderEntityStatic(entity, 0.0f, false); Minecraft.getMinecraft().getRenderManager().setRenderShadow(true); GlStateManager.scale(1, 1, 1); diff --git a/src/main/java/tschipp/carryon/client/event/RenderEvents.java b/src/main/java/tschipp/carryon/client/event/RenderEvents.java index 930237a..8d125cc 100644 --- a/src/main/java/tschipp/carryon/client/event/RenderEvents.java +++ b/src/main/java/tschipp/carryon/client/event/RenderEvents.java @@ -275,27 +275,35 @@ public class RenderEvents @SubscribeEvent public void onPlayerRenderPre(RenderPlayerEvent.Pre event) { - - if (!Loader.isModLoaded("mobends")) { + + if (!Loader.isModLoaded("mobends") && CarryOnConfig.settings.renderArms) { EntityPlayer player = event.getEntityPlayer(); AbstractClientPlayer aplayer = (AbstractClientPlayer) player; ItemStack stack = player.getHeldItemMainhand(); ModelPlayer model = event.getRenderer().getMainModel(); EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player; - + ResourceLocation skinLoc = DefaultPlayerSkin.getDefaultSkin(player.getPersistentID()); ModelRenderer fakeLeftArm = new ModelRenderer(model, 32, 48); ModelRenderer fakeRightArm = new ModelRenderer(model, 40, 16); - + player.setArrowCountInEntity(0); //TODO Temporary Fix - + if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))) { - - if (model.bipedBody.childModels != null && !model.bipedBody.childModels.isEmpty()) { - model.bipedBody.childModels.clear(); + if (model.bipedBody.childModels != null && !model.bipedBody.childModels.isEmpty()) + { + + for (int k = 0; k < model.bipedBody.childModels.size(); k++) { + float chkRot = model.bipedBody.childModels.get(k).rotateAngleX; + if (chkRot == -0.9001F || chkRot == -1.2001F || chkRot == -1.4001F || chkRot == -1.7001F) { + model.bipedBody.childModels.remove(k); + k = k -1; + } + } + } Item item = stack.getItem(); @@ -305,6 +313,7 @@ public class RenderEvents Minecraft.getMinecraft().getTextureManager().bindTexture(skinLoc); float rotation = -player.renderYawOffset; + if (aplayer.getSkinType().equals("default")) { fakeLeftArm.addBox(model.bipedLeftArm.offsetX + 4.2F, model.bipedLeftArm.offsetY, model.bipedLeftArm.offsetZ, 4, 12, 4, .08F); @@ -327,26 +336,26 @@ public class RenderEvents { if (!player.isSneaking()) { - fakeRightArm.rotateAngleX = -.9F; - fakeLeftArm.rotateAngleX = -.9F; + fakeRightArm.rotateAngleX = -.9001F; + fakeLeftArm.rotateAngleX = -.9001F; } else { - fakeRightArm.rotateAngleX = -1.4F; - fakeLeftArm.rotateAngleX = -1.4F; + fakeRightArm.rotateAngleX = -1.4001F; + fakeLeftArm.rotateAngleX = -1.4001F; } } else { if (!player.isSneaking()) { - fakeRightArm.rotateAngleX = -1.2F; - fakeLeftArm.rotateAngleX = -1.2F; + fakeRightArm.rotateAngleX = -1.2001F; + fakeLeftArm.rotateAngleX = -1.2001F; } else { - fakeRightArm.rotateAngleX = -1.7F; - fakeLeftArm.rotateAngleX = -1.7F; + fakeRightArm.rotateAngleX = -1.7001F; + fakeLeftArm.rotateAngleX = -1.7001F; } fakeRightArm.rotateAngleY = -0.15f; @@ -361,10 +370,16 @@ public class RenderEvents { model.bipedLeftArm.isHidden = false; model.bipedRightArm.isHidden = false; - + if (model.bipedBody.childModels != null && !model.bipedBody.childModels.isEmpty()) { - model.bipedBody.childModels.clear(); + for (int k = 0; k < model.bipedBody.childModels.size(); k++) { + float chkRot = model.bipedBody.childModels.get(k).rotateAngleX; + if (chkRot == - 0.9001F || chkRot == -1.2001F || chkRot == -1.4001F || chkRot == -1.7001F) { + model.bipedBody.childModels.remove(k); + k = k - 1; + } + } } } @@ -374,7 +389,6 @@ public class RenderEvents model.bipedRightArm.isHidden = false; } } - } diff --git a/src/main/java/tschipp/carryon/common/config/Configs.java b/src/main/java/tschipp/carryon/common/config/Configs.java index 7060ce1..bbe0f8a 100644 --- a/src/main/java/tschipp/carryon/common/config/Configs.java +++ b/src/main/java/tschipp/carryon/common/config/Configs.java @@ -36,6 +36,9 @@ public class Configs { @Comment("Larger Entities slow down the player more") public boolean heavyEntities = true; + + @Comment("Arms should render on sides when carrying") + public boolean renderArms = true; } public static class Blacklist