diff options
| author | Lance5057 <Lance5057@gmail.com> | 2015-03-07 03:26:32 -0600 |
|---|---|---|
| committer | Lance5057 <Lance5057@gmail.com> | 2015-03-07 03:26:32 -0600 |
| commit | c70a7618c8d3e016319a7194a67fee6c50fe45dd (patch) | |
| tree | 044b8aabc2554d8591c5c54a0c72b55794efe80a /src | |
| parent | 654b5cc0780f3458366f798f0784b9eb068e86d0 (diff) | |
Fixed Crest Mount rendering, added gui
Server still doesnt save item flipping
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java | 25 | ||||
| -rw-r--r-- | src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java | 124 | ||||
| -rw-r--r-- | src/main/java/gmail/Lance5057/com/Reference.java | 20 | ||||
| -rw-r--r-- | src/main/java/gmail/Lance5057/gui/Gui_CrestMount.java | 36 | ||||
| -rw-r--r-- | src/main/java/gmail/Lance5057/proxy/ClientProxy.java | 1 | ||||
| -rw-r--r-- | src/main/java/gmail/Lance5057/tileentities/TileEntity_CrestMount.java | 48 | ||||
| -rw-r--r-- | src/main/resources/assets/tinkersdefense/textures/gui/crest_mount.png | bin | 0 -> 1517 bytes |
7 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); } diff --git a/src/main/resources/assets/tinkersdefense/textures/gui/crest_mount.png b/src/main/resources/assets/tinkersdefense/textures/gui/crest_mount.png Binary files differnew file mode 100644 index 0000000..314e76d --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/textures/gui/crest_mount.png |
