diff --git a/src/main/java/com/brohoof/minelittlepony/model/pony/pm_newPonyAdv.java b/src/main/java/com/brohoof/minelittlepony/model/pony/pm_newPonyAdv.java index b68fcafa..bb84a0b3 100644 --- a/src/main/java/com/brohoof/minelittlepony/model/pony/pm_newPonyAdv.java +++ b/src/main/java/com/brohoof/minelittlepony/model/pony/pm_newPonyAdv.java @@ -1,13 +1,6 @@ package com.brohoof.minelittlepony.model.pony; -import static net.minecraft.client.renderer.GlStateManager.blendFunc; -import static net.minecraft.client.renderer.GlStateManager.color; -import static net.minecraft.client.renderer.GlStateManager.popAttrib; -import static net.minecraft.client.renderer.GlStateManager.popMatrix; -import static net.minecraft.client.renderer.GlStateManager.pushMatrix; -import static net.minecraft.client.renderer.GlStateManager.rotate; -import static net.minecraft.client.renderer.GlStateManager.scale; -import static net.minecraft.client.renderer.GlStateManager.translate; +import static net.minecraft.client.renderer.GlStateManager.*; import java.util.Random; @@ -900,9 +893,9 @@ public class pm_newPonyAdv extends ModelPony { this.headpiece[2].render(this.scale); if (this.heldItemRight != 0 && this.metadata.getGlowColor() != 0) { GL11.glPushAttrib(24577); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_BLEND); + disableTexture2D(); + disableLighting(); + enableBlend(); float var4 = (this.metadata.getGlowColor() >> 16 & 255) / 255.0F; float green = (this.metadata.getGlowColor() >> 8 & 255) / 255.0F; float blue = (this.metadata.getGlowColor() & 255) / 255.0F; @@ -911,6 +904,10 @@ public class pm_newPonyAdv extends ModelPony { this.hornglow[0].render(this.scale); color(var4, green, blue, 0.2F); this.hornglow[1].render(this.scale); + + enableTexture2D(); + enableLighting(); + disableBlend(); popAttrib(); } } 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 7489daf3..989c5a90 100644 --- a/src/main/java/com/brohoof/minelittlepony/renderer/layer/LayerHeldPonyItem.java +++ b/src/main/java/com/brohoof/minelittlepony/renderer/layer/LayerHeldPonyItem.java @@ -25,8 +25,8 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; -import net.minecraft.item.EnumAction; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; public class LayerHeldPonyItem implements LayerRenderer { @@ -72,50 +72,27 @@ public class LayerHeldPonyItem implements LayerRenderer { ItemStack drop = entity.getHeldItem(); if (drop != null) { pushMatrix(); - if (box != null) { - box.postRender(scalefactor * 0.0625F); + if (pony.getModel().isChild) { + translate(0.0F, 0.625F, 0.0F); + rotate(-20.0F, -1.0F, 0.0F, 0.0F); + scale(0.5F, 0.5F, 0.5F); } + box.postRender(scalefactor * 0.0625F); translate(posx, posy, posz); - EnumAction playerAction = null; - if (entity instanceof EntityPlayer) { - EntityPlayer is3D = (EntityPlayer) entity; - if (is3D.fishEntity != null) { - drop = new ItemStack(Items.stick); - } - - if (is3D.getItemInUseCount() > 0) { - playerAction = drop.getItemUseAction(); - } + if (entity instanceof EntityPlayer && ((EntityPlayer) entity).fishEntity != null) { + drop = new ItemStack(Items.stick); } - if (drop.getItem() == Items.bow) { - rotate(-20.0F, 0.0F, 1.0F, 0.0F); + Item item = drop.getItem(); + if (item instanceof ItemBlock && ((ItemBlock)item).getBlock().getRenderType() == 2) { + translate(0.0F, 0.1875F, -0.3125F); + rotate(20.0F, 1.0F, 0.0F, 0.0F); rotate(45.0F, 0.0F, 1.0F, 0.0F); - } else if (drop.getItem().isFull3D()) { - if (drop.getItem().shouldRotateAroundWhenRendering()) { - rotate(180.0F, 0.0F, 0.0F, 1.0F); - translate(0.0F, -0.125F, 0.0F); - } - - if (playerAction == EnumAction.BLOCK && entity instanceof EntityPlayer - && ((EntityPlayer) entity).getItemInUseCount() > 0) { - translate(0.05F, 0.0F, -0.1F); - rotate(-50.0F, 0.0F, 1.0F, 0.0F); - rotate(-10.0F, 1.0F, 0.0F, 0.0F); - rotate(-60.0F, 0.0F, 0.0F, 1.0F); - } + float f8 = 0.375F; + scale(-f8, -f8, f8); } - float g; - float b; - int var20; - - var20 = drop.getItem().getColorFromItemStack(drop, 0); - float var19 = (var20 >> 16 & 255) / 255.0F; - g = (var20 >> 8 & 255) / 255.0F; - b = (var20 & 255) / 255.0F; - color(var19, g, b, 1.0F); Minecraft.getMinecraft().getItemRenderer().renderItem(entity, drop, TransformType.THIRD_PERSON); if (pony.getModel().metadata.getRace().hasHorn() && pony.getModel().metadata.getGlowColor() != 0) { @@ -127,29 +104,32 @@ public class LayerHeldPonyItem implements LayerRenderer { } public void renderItemGlow(EntityLivingBase entity, ItemStack drop, int glowColor) { - pushMatrix(); GL11.glPushAttrib(GL11.GL_CURRENT_BIT | GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT); - // GlStateManager.disableLighting(); + float red = (glowColor >> 16 & 255) / 255.0F; float green = (glowColor >> 8 & 255) / 255.0F; float blue = (glowColor & 255) / 255.0F; float alpha = 0.2F; + disableLighting(); enableBlend(); - blendFunc(32769, 1); - GL14.glBlendColor(red, green, blue, alpha); - color(red, green, blue, alpha); + blendFunc(GL11.GL_CONSTANT_COLOR, 1); + GL14.glBlendColor(red / 2, green / 2, blue / 2, alpha); IBakedModel model = getItemModel(Minecraft.getMinecraft().getRenderItem(), entity, drop); - applyTransform(model.getItemCameraTransforms().thirdPerson); - if (!model.isGui3d()) { - scale(1.5, 1.5, 1.5); - } else { - translate(0,-0.01,0); - scale(.9, .9, .9); + if (model.isGui3d()) { + // disabling textures for items messes up bounds + disableTexture2D(); } + scale(2, 2, 2); + + applyTransform(model.getItemCameraTransforms().thirdPerson); + scale(1.1, 1.1, 1.1); Minecraft.getMinecraft().getRenderItem().renderItem(drop, model); - GL11.glPopAttrib(); disableBlend(); - popMatrix(); + enableLighting(); + enableTexture2D(); + popAttrib(); + + // I hate rendering } @Override @@ -187,17 +167,14 @@ public class LayerHeldPonyItem implements LayerRenderer { return ibakedmodel; } - // Adapted from RenderItem + // Copied from RenderItem + //@formatter:off private void applyTransform(ItemTransformVec3f transform) { - translate(transform.translation.x + RenderItem.debugItemOffsetX, - transform.translation.y + RenderItem.debugItemOffsetY, - transform.translation.z + RenderItem.debugItemOffsetZ); - translate(0f, .063f, -0.18); - + translate(transform.translation.x + RenderItem.debugItemOffsetX, transform.translation.y + RenderItem.debugItemOffsetY, transform.translation.z + RenderItem.debugItemOffsetZ); rotate(transform.rotation.y + RenderItem.debugItemRotationOffsetY, 0.0F, 1.0F, 0.0F); rotate(transform.rotation.x + RenderItem.debugItemRotationOffsetX, 1.0F, 0.0F, 0.0F); rotate(transform.rotation.z + RenderItem.debugItemRotationOffsetZ, 0.0F, 0.0F, 1.0F); - - + scale(transform.scale.x + RenderItem.debugItemScaleX, transform.scale.y + RenderItem.debugItemScaleY, transform.scale.z + RenderItem.debugItemScaleZ); } + //@formatter:on }