summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorLance5057 <Lance5057@gmail.com>2015-03-07 03:26:32 -0600
committerLance5057 <Lance5057@gmail.com>2015-03-07 03:26:32 -0600
commitc70a7618c8d3e016319a7194a67fee6c50fe45dd (patch)
tree044b8aabc2554d8591c5c54a0c72b55794efe80a /src/main/java
parent654b5cc0780f3458366f798f0784b9eb068e86d0 (diff)
Fixed Crest Mount rendering, added gui
Server still doesnt save item flipping
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java25
-rw-r--r--src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java124
-rw-r--r--src/main/java/gmail/Lance5057/com/Reference.java20
-rw-r--r--src/main/java/gmail/Lance5057/gui/Gui_CrestMount.java36
-rw-r--r--src/main/java/gmail/Lance5057/proxy/ClientProxy.java1
-rw-r--r--src/main/java/gmail/Lance5057/tileentities/TileEntity_CrestMount.java48
6 files changed, 212 insertions, 42 deletions
diff --git a/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java b/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
index 4b3cbd2..d22158c 100644
--- a/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
+++ b/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
@@ -17,7 +17,7 @@ public class ModelCrestMount extends ModelBase
ModelRenderer Base;
ModelRenderer SwordMount1;
ModelRenderer SwordMount2;
- ModelRenderer SwordMount3;
+ //ModelRenderer SwordMount3;
public ModelCrestMount()
{
@@ -52,23 +52,24 @@ public class ModelCrestMount extends ModelBase
SwordMount2.mirror = true;
setRotation(SwordMount2, 0F, -0.7853982F, 0F);
- SwordMount3 = new ModelRenderer(this, 0, 0);
- SwordMount3.addBox(-5F, 0F, -2F, 10, 2, 4);
- SwordMount3.setRotationPoint(0F, 21.9F, 0F);
- SwordMount3.setTextureSize(32, 32);
- SwordMount3.mirror = true;
- setRotation(SwordMount3, 0F, 1.570796F, 0F);
+// SwordMount3 = new ModelRenderer(this, 0, 0);
+// SwordMount3.addBox(-5F, 0F, -2F, 10, 2, 4);
+// SwordMount3.setRotationPoint(0F, 21.9F, 0F);
+// SwordMount3.setTextureSize(32, 32);
+// SwordMount3.mirror = true;
+// setRotation(SwordMount3, 0F, 1.570796F, 0F);
}
- public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, boolean left, boolean right, boolean shield)
{
super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
- ShieldMount.render(f5);
+ if(shield) ShieldMount.render(f5);
+ if(left) SwordMount1.render(f5);
+ if(right) SwordMount2.render(f5);
+
Base.render(f5);
- SwordMount1.render(f5);
- SwordMount2.render(f5);
- SwordMount3.render(f5);
+ //SwordMount3.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
diff --git a/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java b/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
index b261af0..4959e7c 100644
--- a/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
+++ b/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
@@ -20,17 +20,34 @@ import org.lwjgl.opengl.GL11;
public class Renderer_CrestMount extends TileEntitySpecialRenderer
{
-
- //The model of your block
+ //private RenderItem itemRenderer;
private final ModelCrestMount model;
EntityItem entItem = null;
+ EntityItem entItem2 = null;
+ EntityItem entItem3 = null;
+ EntityItem entItem4 = null;
public Renderer_CrestMount() {
this.model = new ModelCrestMount();
}
@Override
- public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
+ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
+ {
+ TileEntity_CrestMount tileEntity = (TileEntity_CrestMount)te;
+
+ boolean left=false,
+ right=false,
+ shield=false;
+
+ if(tileEntity.getStackInSlot(0)!=null)
+ right=true;
+ if(tileEntity.getStackInSlot(1)!=null)
+ left=true;
+ if(tileEntity.getStackInSlot(3)!=null)
+ shield=true;
+
+
GL11.glPushMatrix();
//Render Crest Mount
@@ -57,29 +74,112 @@ public class Renderer_CrestMount extends TileEntitySpecialRenderer
GL11.glRotatef(90F, 0.5F, 0.0F, 0.0F);
GL11.glTranslatef(0, -1, -1);
- this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
+ this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F,left,right,shield);
GL11.glPopMatrix();
- //Render Inventory
- int slot = 1; //Example: int slot = 1;
- TileEntity_CrestMount tileEntity = (TileEntity_CrestMount)te;
+ //Render Inventory
+
+ //right slot
+ int slot = 0;
if(tileEntity.getStackInSlot(slot)!=null)
{
if((entItem == null) || entItem.getEntityItem().getItem() != tileEntity.getStackInSlot(slot).getItem())
- entItem = new EntityItem(tileEntity.getWorldObj(), x, y, z, tileEntity.getStackInSlot(slot));
+ entItem = new EntityItem(tileEntity.getWorldObj(), 0, 0, 0, tileEntity.getStackInSlot(slot));
GL11.glPushMatrix();
this.entItem.hoverStart = 0.0F;
RenderItem.renderInFrame = true;
- GL11.glTranslatef((float)x + 0.5F, (float)y + 1.02F, (float)z + 0.3F);
- GL11.glRotatef(180, 0, 1, 1);
- GL11.glScalef(5, 5, 5);
- RenderManager.instance.renderEntityWithPosYaw(entItem, x + 0.5, y + 1, z + 0.5, 0, 0);
+ GL11.glScalef(2f,2f,2f);
+ GL11.glRotatef(90, 0, 0, -1);
+ GL11.glRotatef(rotation, -1.0F, 0.0F, 0.0F);
+ //GL11.glTranslatef(0.4f/*up - down*/, -0.3f/*left - right*/, 0.22f);
+ if(tileEntity.flip[0]==true)
+ {
+ GL11.glRotatef(180, 0, 0, 1);
+ GL11.glTranslatef(-0.8f, 0.2f, 0);
+ }
+ RenderManager.instance.renderEntityWithPosYaw(entItem, 0.4f/*up - down*/, -0.3f/*left - right*/, 0.23f, 0, 0);
+ RenderItem.renderInFrame = false;
+ GL11.glPopMatrix();
+ }
+
+ //left slot
+ slot = 1;
+ if(tileEntity.getStackInSlot(slot)!=null)
+ {
+ if((entItem2 == null) || entItem2.getEntityItem().getItem() != tileEntity.getStackInSlot(slot).getItem())
+ entItem2 = new EntityItem(tileEntity.getWorldObj(), x, y, z, tileEntity.getStackInSlot(slot));
+ GL11.glPushMatrix();
+ this.entItem2.hoverStart = 0.0F;
+ RenderItem.renderInFrame = true;
+ //GL11.glTranslatef((float)te.xCoord + 0.5F, (float)te.yCoord + 1.02F, (float)te.zCoord + 0.3F);
+ GL11.glScalef(2f,2f,2f);
+ GL11.glRotatef(180, 0, 0, 1);
+ GL11.glRotatef(rotation, 0.0F, -1.0F, 0.0F);
+ if(tileEntity.flip[1]==true)
+ {
+ GL11.glRotatef(180, 0, 0, 1);
+ GL11.glTranslatef(0.2f, -0.8f, 0);
+ }
+ RenderManager.instance.renderEntityWithPosYaw(entItem2, -0.1, 0.2, 0.23, 0, 0);
+ RenderItem.renderInFrame = false;
+ GL11.glPopMatrix();
+ }
+
+ //middle slot
+ slot = 2;
+ if(tileEntity.getStackInSlot(slot)!=null)
+ {
+ if((entItem3 == null) || entItem3.getEntityItem().getItem() != tileEntity.getStackInSlot(slot).getItem())
+ entItem3 = new EntityItem(tileEntity.getWorldObj(), x, y, z, tileEntity.getStackInSlot(slot));
+ GL11.glPushMatrix();
+ this.entItem3.hoverStart = 0.0F;
+ RenderItem.renderInFrame = true;
+ GL11.glScalef(2f,2f,2f);
+ if(rotation == 90)
+ GL11.glTranslatef(0.3f, 0, 0.0f);
+ if(rotation == -90)
+ GL11.glTranslatef(-0.3f, 0, 0.0f);
+ GL11.glRotatef(225, 0, 0, 1);
+ GL11.glRotatef(rotation, 1F, 1F, 0F);
+ if(tileEntity.flip[2]==true)
+ {
+ GL11.glRotatef(180, 0, 0, 1);
+ GL11.glTranslatef(-0.5f, -0.5f, 0);
+ }
+ RenderManager.instance.renderEntityWithPosYaw(entItem3, 0.3, 0.1, 0.16, 0, 0);
+ RenderItem.renderInFrame = false;
+ GL11.glPopMatrix();
+ }
+
+ //shield slot
+ slot = 3;
+ if(tileEntity.getStackInSlot(slot)!=null)
+ {
+ if((entItem4 == null) || entItem4.getEntityItem().getItem() != tileEntity.getStackInSlot(slot).getItem())
+ entItem4 = new EntityItem(tileEntity.getWorldObj(), x, y, z, tileEntity.getStackInSlot(slot));
+ GL11.glPushMatrix();
+ this.entItem4.hoverStart = 0.0F;
+ RenderItem.renderInFrame = true;
+ GL11.glScalef(2f,2f,2f);
+ GL11.glRotatef(180, 0.0F, 1.0F, 0.0F);
+ GL11.glRotatef(rotation, 0.0F, 1.0F, 0.0F);
+ if(tileEntity.flip[3]==true)
+ {
+ GL11.glRotatef(180, 0, 0, 1);
+ GL11.glTranslatef(0.0f, 1.0f, 0);
+ }
+ RenderManager.instance.renderEntityWithPosYaw(entItem4, 0, -0.7, -0.01, 0, 0);
RenderItem.renderInFrame = false;
GL11.glPopMatrix();
}
GL11.glPopMatrix();
+
+ entItem = null;
+ entItem2= null;
+ entItem3= null;
+ entItem4= null;
}
}
diff --git a/src/main/java/gmail/Lance5057/com/Reference.java b/src/main/java/gmail/Lance5057/com/Reference.java
index a5e9168..f76bdcb 100644
--- a/src/main/java/gmail/Lance5057/com/Reference.java
+++ b/src/main/java/gmail/Lance5057/com/Reference.java
@@ -1,10 +1,10 @@
-package gmail.Lance5057.com;
-
-public class Reference
-{
-
- public static final String MOD_ID = "tinkersdefense";
- public static final String VERSION = "1.1";
- public static final String MOD_NAME = "Tinkers' Defense";
-
-}
+package gmail.Lance5057.com;
+
+public class Reference
+{
+
+ public static final String MOD_ID = "tinkersdefense";
+ public static final String VERSION = "1.1";
+ public static final String MOD_NAME = "Tinkers' Defense";
+
+}
diff --git a/src/main/java/gmail/Lance5057/gui/Gui_CrestMount.java b/src/main/java/gmail/Lance5057/gui/Gui_CrestMount.java
index d7f6fad..4017c43 100644
--- a/src/main/java/gmail/Lance5057/gui/Gui_CrestMount.java
+++ b/src/main/java/gmail/Lance5057/gui/Gui_CrestMount.java
@@ -5,6 +5,8 @@ import gmail.Lance5057.tileentities.TileEntity_CrestMount;
import javax.swing.plaf.basic.BasicComboBoxUI.KeyHandler;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
@@ -26,7 +28,7 @@ private float ySize_lo;
/** ResourceLocation takes 2 parameters: ModId, path to texture at the location:
* "src/minecraft/assets/modid/" */
-private static final ResourceLocation iconLocation = new ResourceLocation("TileEntity_CrestMountmod", "textures/gui/TileEntity_CrestMount.png");
+private static final ResourceLocation iconLocation = new ResourceLocation("tinkersdefense", "textures/gui/crest_mount.png");
/** The inventory to render on screen */
private final TileEntity_CrestMount inventory;
@@ -35,6 +37,34 @@ public Gui_CrestMount(InventoryPlayer invPlayer, TileEntity_CrestMount te_crest)
{
super(new Container_CrestMount(invPlayer, te_crest));
this.inventory = te_crest;
+
+
+}
+
+@Override
+public void initGui()
+{
+ super.initGui();
+ //ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight);
+ this.buttonList.add(new GuiButton(1,this.guiLeft + 61, this.guiTop + 10, 16, 16,"Flip"));
+ this.buttonList.add(new GuiButton(2,this.guiLeft + 16, this.guiTop + 16, 16, 16,"Flip"));
+ this.buttonList.add(new GuiButton(3,this.guiLeft + 16, this.guiTop + 32, 16, 16,"Flip"));
+ this.buttonList.add(new GuiButton(4,this.guiLeft + 16, this.guiTop + 48, 16, 16,"Flip"));
+}
+
+@Override
+protected void actionPerformed(GuiButton button)
+{
+ for(int i = 1; i<5; i++)
+ {
+ if(button.id == i)
+ {
+ if(inventory.flip[i-1]==false)
+ inventory.flip[i-1]=true;
+ else
+ inventory.flip[i-1]=false;
+ }
+ }
}
/**
@@ -52,9 +82,7 @@ this.ySize_lo = (float)par2;
*/
protected void drawGuiContainerForegroundLayer(int par1, int par2)
{
- String s = inventory.hasCustomInventoryName() ? inventory.getInventoryName() : I18n.format(inventory.getInventoryName());
- this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 0, 4210752);
- this.fontRendererObj.drawString(I18n.format("container.inventory"), 26, this.ySize - 96 + 4, 4210752);
+
}
/**
diff --git a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
index 90e883c..a038bb8 100644
--- a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
+++ b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
@@ -21,7 +21,6 @@ public class ClientProxy extends CommonProxy
@Override
public void registerRenderers() {
- // This is for rendering entities and so forth later on
ClientRegistry.bindTileEntitySpecialRenderer(TileEntity_CrestMount.class, new Renderer_CrestMount());
}
diff --git a/src/main/java/gmail/Lance5057/tileentities/TileEntity_CrestMount.java b/src/main/java/gmail/Lance5057/tileentities/TileEntity_CrestMount.java
index 181f39d..135539f 100644
--- a/src/main/java/gmail/Lance5057/tileentities/TileEntity_CrestMount.java
+++ b/src/main/java/gmail/Lance5057/tileentities/TileEntity_CrestMount.java
@@ -5,17 +5,49 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.Constants;
public class TileEntity_CrestMount extends TileEntity implements IInventory
{
public static int invSize = 4;
- public ItemStack[] inventory = new ItemStack[invSize];
-
+ public ItemStack[] inventory;
+ public boolean[] flip;
private final String name = "Crest Inventory";
+ public TileEntity_CrestMount()
+ {
+ super();
+ inventory = new ItemStack[invSize];
+ flip = new boolean[4];
+ }
+
+ @Override
+ public void updateEntity()
+ {
+ super.updateEntity();
+ if (worldObj.isRemote)
+ {
+ markDirty();
+ }
+ }
+
+ @Override
+ public Packet getDescriptionPacket() {
+ NBTTagCompound tag = new NBTTagCompound();
+ writeToNBT(tag);
+ return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, tag);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
+ readFromNBT(pkt.func_148857_g());
+ }
+
@Override
public int getSizeInventory() {
return invSize;
@@ -112,13 +144,23 @@ public class TileEntity_CrestMount extends TileEntity implements IInventory
public void writeToNBT(NBTTagCompound compound)
{
super.writeToNBT(compound);
- writeInventoryToNBT(compound);
+ compound.setBoolean("flip_1", flip[0]);
+ compound.setBoolean("flip_2", flip[1]);
+ compound.setBoolean("flip_3", flip[2]);
+ compound.setBoolean("flip_4", flip[3]);
+
+ writeInventoryToNBT(compound);
}
@Override
public void readFromNBT(NBTTagCompound compound)
{
super.readFromNBT(compound);
+ flip[0] = compound.getBoolean("flip_1");
+ flip[1] = compound.getBoolean("flip_2");
+ flip[2] = compound.getBoolean("flip_3");
+ flip[3] = compound.getBoolean("flip_4");
+
readInventoryFromNBT(compound);
}