From fded14ad6dc864ee2ea572c4185c7edebc1a5480 Mon Sep 17 00:00:00 2001 From: Matthew Messinger Date: Fri, 8 Jul 2016 01:59:34 -0400 Subject: [PATCH] fix #9 blocking with magic --- .../model/pony/ModelPlayerPony.java | 15 ++++++++++++--- .../renderer/layer/LayerHeldPonyItem.java | 17 ++++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/brohoof/minelittlepony/model/pony/ModelPlayerPony.java b/src/main/java/com/brohoof/minelittlepony/model/pony/ModelPlayerPony.java index 8f4961c1..21c2804a 100644 --- a/src/main/java/com/brohoof/minelittlepony/model/pony/ModelPlayerPony.java +++ b/src/main/java/com/brohoof/minelittlepony/model/pony/ModelPlayerPony.java @@ -337,7 +337,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst break; case BLOCK: this.bipedLeftArm.rotateAngleX = this.bipedLeftArm.rotateAngleX * 0.5F - 0.9424779F; - this.bipedLeftArm.rotateAngleY = 0.5235988F; + this.bipedLeftArm.rotateAngleY = (float) (Math.PI / 6); break; case ITEM: float swag = 1f; @@ -355,7 +355,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst break; case BLOCK: this.bipedRightArm.rotateAngleX = this.bipedRightArm.rotateAngleX * 0.5F - 0.9424779F; - this.bipedRightArm.rotateAngleY = -0.5235988F; + this.bipedRightArm.rotateAngleY = (float) (-Math.PI / 6); break; case ITEM: float swag = 1f; @@ -367,6 +367,15 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst this.bipedRightArm.rotateAngleY = 0.0F; } + } else if (this.metadata.hasMagic()) { + if (this.leftArmPose == ArmPose.BLOCK) { + this.unicornArmLeft.rotateAngleX = this.unicornArmLeft.rotateAngleX * 0.5F - 0.9424779F; + this.unicornArmLeft.rotateAngleY = (float) (Math.PI / 6); + } + if (this.rightArmPose == ArmPose.BLOCK) { + this.unicornArmRight.rotateAngleY = (float) (-Math.PI / 6); + this.unicornArmRight.rotateAngleX = this.unicornArmRight.rotateAngleX * 0.5F - 0.9424779F; + } } } @@ -621,7 +630,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst protected void renderLegs() { if (!this.isSneak) - this.bipedBody.postRender(this.scale); + this.bipedBody.postRender(this.scale); this.bipedLeftArm.render(this.scale); this.bipedRightArm.render(this.scale); diff --git a/src/main/java/com/brohoof/minelittlepony/renderer/layer/LayerHeldPonyItem.java b/src/main/java/com/brohoof/minelittlepony/renderer/layer/LayerHeldPonyItem.java index c4e06071..94264710 100644 --- a/src/main/java/com/brohoof/minelittlepony/renderer/layer/LayerHeldPonyItem.java +++ b/src/main/java/com/brohoof/minelittlepony/renderer/layer/LayerHeldPonyItem.java @@ -96,7 +96,7 @@ public class LayerHeldPonyItem implements LayerRenderer { Minecraft.getMinecraft().getItemRenderer().renderItemSide(entity, drop, transform, isLeft); if (isUnicorn) { - this.renderItemGlow(entity, drop.copy(), transform, hand, metadata.getGlowColor()); + this.renderItemGlow(entity, drop, transform, hand, metadata.getGlowColor()); } GlStateManager.popMatrix(); } @@ -105,8 +105,9 @@ public class LayerHeldPonyItem implements LayerRenderer { public void renderItemGlow(EntityLivingBase entity, ItemStack drop, ItemCameraTransforms.TransformType transform, EnumHandSide hand, int glowColor) { // enchantments mess up the rendering - if (drop.hasEffect()) - drop.setTagInfo("ench", null); + ItemStack drop2 = drop.copy(); + if (drop2.hasEffect()) + drop2.setTagInfo("ench", null); GL11.glPushAttrib(GL11.GL_CURRENT_BIT | GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT); @@ -118,19 +119,21 @@ public class LayerHeldPonyItem implements LayerRenderer { enableBlend(); blendFunc(GL11.GL_CONSTANT_COLOR, 1); GL14.glBlendColor(red, green, blue, alpha); - IBakedModel model = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(drop, null, null); + + RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); + IBakedModel model = renderItem.getItemModelWithOverrides(drop, entity.worldObj, entity); ItemCameraTransforms itemcameratransforms = model.getItemCameraTransforms(); ItemCameraTransforms.applyTransformSide(itemcameratransforms.getTransform(transform), hand == EnumHandSide.LEFT); - RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); scale(1.1, 1.1, 1.1); translate(0, .01, .01); - renderItem.renderItem(drop, model); + renderItem.renderItem(drop2, model); translate(.01, -.01, -.02); // scale(1.1, 1.1, 1.1); - renderItem.renderItem(drop, model); + renderItem.renderItem(drop2, model); + disableBlend(); enableLighting(); enableTexture2D();