summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
commit6312636fd9a4d0f56dc7c9ff474a99d879bcb4e9 (patch)
treee3279753210bfb169a00cd3f146a80baf624150e /src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java
parente86949a1ad3269ec66c9de65e2c92f5e66251411 (diff)
Reworked the whole repo.
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java')
-rw-r--r--src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java b/src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java
new file mode 100644
index 0000000..3162061
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/model/ItemStackModelRenderer.java
@@ -0,0 +1,71 @@
+package darkknight.jewelrycraft.model;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.texture.TextureManager;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * @author Paul Fulham (pau101)
+ */
+public class ItemStackModelRenderer extends ModelRenderer
+{
+ private RenderItem renderItem;
+ private TextureManager textureManager;
+ private ResourceLocation resetResourceLocation;
+ private EntityItem entityItem;
+ private Minecraft mc;
+
+ /**
+ * @param modelBase
+ * @param resetResourceLocation
+ */
+ public ItemStackModelRenderer(ModelBase modelBase, ResourceLocation resetResourceLocation)
+ {
+ super(modelBase);
+ renderItem = (RenderItem)RenderManager.instance.entityRenderMap.get(EntityItem.class);
+ textureManager = (mc = Minecraft.getMinecraft()).getTextureManager();
+ this.resetResourceLocation = resetResourceLocation;
+ }
+
+ /**
+ * @param itemStack
+ */
+ public void setItemStack(ItemStack itemStack)
+ {
+ if (itemStack == null || itemStack.getItem() == null) entityItem = null;
+ else{
+ entityItem = new EntityItem(null, 0, 0, 0, itemStack);
+ entityItem.hoverStart = 0;
+ }
+ }
+
+ /**
+ * @param scale
+ */
+ @Override
+ public void render(float scale)
+ {
+ if (!isHidden && showModel && entityItem != null){
+ if (textureManager == null) textureManager = mc.getTextureManager();
+ GL11.glPushMatrix();
+ GL11.glTranslatef(offsetX, offsetY, offsetZ);
+ GL11.glTranslatef(rotationPointX * scale, rotationPointY * scale, rotationPointZ * scale);
+ GL11.glRotatef(rotateAngleZ * (180 / (float)Math.PI), 0, 0, 1);
+ GL11.glRotatef(rotateAngleY * (180 / (float)Math.PI), 0, 1, 0);
+ GL11.glRotatef(rotateAngleX * (180 / (float)Math.PI), 1, 0, 0);
+ boolean fancyGraphics = mc.gameSettings.fancyGraphics;
+ mc.gameSettings.fancyGraphics = true;
+ renderItem.doRender(entityItem, 0, 0, 0, 0, 0);
+ mc.gameSettings.fancyGraphics = fancyGraphics;
+ GL11.glPopMatrix();
+ textureManager.bindTexture(resetResourceLocation);
+ }
+ }
+} \ No newline at end of file