From 8a2119d5d23daa0341aeedc0dc8fda64980b2b84 Mon Sep 17 00:00:00 2001 From: Universal Date: Sun, 14 Jun 2015 01:13:09 +0200 Subject: [PATCH 1/2] Made destructopack work --- .../techreborn/client/SlotFilteredVoid.java | 37 ++++++++++++++ .../container/ContainerDestructoPack.java | 45 ++++++++++++++++++ .../client/gui/GuiDestructoPack.java | 40 ++++++++++++++++ .../techreborn/textures/gui/destructopack.png | Bin 0 -> 1041 bytes 4 files changed, 122 insertions(+) create mode 100644 src/main/java/techreborn/client/SlotFilteredVoid.java create mode 100644 src/main/java/techreborn/client/container/ContainerDestructoPack.java create mode 100644 src/main/java/techreborn/client/gui/GuiDestructoPack.java create mode 100644 src/main/resources/assets/techreborn/textures/gui/destructopack.png diff --git a/src/main/java/techreborn/client/SlotFilteredVoid.java b/src/main/java/techreborn/client/SlotFilteredVoid.java new file mode 100644 index 000000000..508cf7ded --- /dev/null +++ b/src/main/java/techreborn/client/SlotFilteredVoid.java @@ -0,0 +1,37 @@ +package techreborn.client; + + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class SlotFilteredVoid extends Slot { + + private List filter = new ArrayList(); + public SlotFilteredVoid(IInventory par1iInventory, int id, int x, int y) + { + super(par1iInventory, id, x, y); + } + + public SlotFilteredVoid(IInventory par1iInventory, int id, int x, int y, ItemStack[] filterList) + { + super(par1iInventory, id, x, y); + for (ItemStack itemStack : filterList) + this.filter.add(itemStack); + } + + @Override + public boolean isItemValid(ItemStack stack) { + for (ItemStack itemStack : filter) + if (itemStack.getItem().equals(stack.getItem()) && itemStack.getItemDamage() == stack.getItemDamage()) + return false; + + return super.isItemValid(stack); + } + + @Override + public void putStack(ItemStack arg0) { } +} diff --git a/src/main/java/techreborn/client/container/ContainerDestructoPack.java b/src/main/java/techreborn/client/container/ContainerDestructoPack.java new file mode 100644 index 000000000..b51669655 --- /dev/null +++ b/src/main/java/techreborn/client/container/ContainerDestructoPack.java @@ -0,0 +1,45 @@ +package techreborn.client.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import techreborn.client.SlotFilteredVoid; +import techreborn.init.ModItems; +import techreborn.util.Inventory; + +public class ContainerDestructoPack extends TechRebornContainer { + + private EntityPlayer player; + private Inventory inv; + public ContainerDestructoPack(EntityPlayer player) { + this.player = player; + inv = new Inventory(1, "destructopack", 64); + buildContainer(); + } + + @Override + public boolean canInteractWith(EntityPlayer arg0) { + return true; + } + + + private void buildContainer() { + this.addSlotToContainer(new SlotFilteredVoid(inv, 0, 80, 36, new ItemStack[] { new ItemStack(ModItems.parts, 1, 37)})); + int i; + + for (i = 0; i < 3; ++i) + { + for (int j = 0; j < 9; ++j) + { + this.addSlotToContainer(new Slot(player.inventory, j + i * 9 + + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for (i = 0; i < 9; ++i) + { + this.addSlotToContainer(new Slot(player.inventory, i, 8 + i * 18, + 142)); + } + } +} diff --git a/src/main/java/techreborn/client/gui/GuiDestructoPack.java b/src/main/java/techreborn/client/gui/GuiDestructoPack.java new file mode 100644 index 000000000..825738af3 --- /dev/null +++ b/src/main/java/techreborn/client/gui/GuiDestructoPack.java @@ -0,0 +1,40 @@ +package techreborn.client.gui; + +import techreborn.init.ModItems; + +import com.mojang.realmsclient.gui.ChatFormatting; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +public class GuiDestructoPack extends GuiContainer { + + private static final ResourceLocation texture = new ResourceLocation( + "techreborn", "textures/gui/destructopack.png"); + + public GuiDestructoPack(Container container) { + super(container); + this.xSize = 176; + this.ySize = 166; + } + + @Override + protected void drawGuiContainerBackgroundLayer(float arg0, int arg1, int arg2) { + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, 176, 166); + } + + @Override + protected void drawGuiContainerForegroundLayer(int arg0, int arg1) { + String name = StatCollector.translateToLocal("item.techreborn.part.destructoPack.name"); + fontRendererObj.drawString(name, xSize / 2 - fontRendererObj.getStringWidth(name) / 2, 5, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, + this.ySize - 96 + 2, 4210752); + super.drawGuiContainerForegroundLayer(arg0, arg1); + } +} diff --git a/src/main/resources/assets/techreborn/textures/gui/destructopack.png b/src/main/resources/assets/techreborn/textures/gui/destructopack.png new file mode 100644 index 0000000000000000000000000000000000000000..1df4b970e62f4a6482bfb99cb36f621fb95fc1df GIT binary patch literal 1041 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&6|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD+3&OQiW#%)v<^SRz`#7u)5S5Q;?~={2Xk*FNHjb= zAA0VNt|6na!k%OMIVOGopkTmm0Ob8V*2sEi@@*%jkVNZ^A3w*e3VAF3l0A;cC4SS7 z)toch&Io>~p5S}A;*aq}>)dIb4*qqOAB;`g4<8iG?hj`uXS9&(_iGJYy-G_-sciRL z?MAtE3^qR;LEd0t5MXd1pYiW>yK=?dvfXcOl$VOQ23q*AByrBwFy*I(z2|2#IX{r%?sr}-N{XdYnr$9v#wRc}Yf>8FnpkR1J>`lmzzL-)}~ z@6LC0JS}?3-XPFWUT!s4hKb3*z3u=zp10DDA*%o4auNd8U7VJ1}gUQL-8z5Q^ywUsr^0>Q8O5`+9N`83AXFbEFvuTe_ uX7J=Qe0%(nLE8P0%lqBHd_^1Zfvt|&NB7MOdv3m5kPV)$elF{r5}E)y&o?aq literal 0 HcmV?d00001 From 600293b0e89ca5dd9708845fd152a70e751fc8d8 Mon Sep 17 00:00:00 2001 From: Universal Date: Sun, 14 Jun 2015 01:21:03 +0200 Subject: [PATCH 2/2] Made destructopack work Missed two files... --- src/main/java/techreborn/client/GuiHandler.java | 9 ++++++++- src/main/java/techreborn/items/ItemParts.java | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/client/GuiHandler.java b/src/main/java/techreborn/client/GuiHandler.java index 2784692da..686cbfff8 100644 --- a/src/main/java/techreborn/client/GuiHandler.java +++ b/src/main/java/techreborn/client/GuiHandler.java @@ -11,6 +11,7 @@ import techreborn.client.container.ContainerBlastFurnace; import techreborn.client.container.ContainerCentrifuge; import techreborn.client.container.ContainerChemicalReactor; import techreborn.client.container.ContainerChunkloader; +import techreborn.client.container.ContainerDestructoPack; import techreborn.client.container.ContainerDieselGenerator; import techreborn.client.container.ContainerGrinder; import techreborn.client.container.ContainerImplosionCompressor; @@ -34,6 +35,7 @@ import techreborn.client.gui.GuiBlastFurnace; import techreborn.client.gui.GuiCentrifuge; import techreborn.client.gui.GuiChemicalReactor; import techreborn.client.gui.GuiChunkLoader; +import techreborn.client.gui.GuiDestructoPack; import techreborn.client.gui.GuiDieselGenerator; import techreborn.client.gui.GuiGrinder; import techreborn.client.gui.GuiImplosionCompressor; @@ -79,7 +81,8 @@ public class GuiHandler implements IGuiHandler { public static final int semifluidGeneratorID = 21; public static final int gasTurbineID = 22; public static final int digitalChestID = 23; - + public static final int destructoPackID = 25; + @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) @@ -179,6 +182,8 @@ public class GuiHandler implements IGuiHandler { } else if (ID == pdaID) { return null; + } else if (ID == destructoPackID) { + return new ContainerDestructoPack(player); } return null; @@ -283,6 +288,8 @@ public class GuiHandler implements IGuiHandler { } else if (ID == pdaID) { return new GuiPda(player); + } else if (ID == destructoPackID) { + return new GuiDestructoPack(new ContainerDestructoPack(player)); } return null; } diff --git a/src/main/java/techreborn/items/ItemParts.java b/src/main/java/techreborn/items/ItemParts.java index 68a2be5b4..a74062adc 100644 --- a/src/main/java/techreborn/items/ItemParts.java +++ b/src/main/java/techreborn/items/ItemParts.java @@ -4,9 +4,13 @@ import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import techreborn.Core; +import techreborn.client.GuiHandler; import techreborn.client.TechRebornCreativeTab; import techreborn.init.ModItems; @@ -95,4 +99,14 @@ public class ItemParts extends Item { list.add(new ItemStack(item, 1, meta)); } } + + public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { + switch (itemStack.getItemDamage()) { + case 37: // Destructo pack + player.openGui(Core.INSTANCE, GuiHandler.destructoPackID, world, + (int) player.posX, (int) player.posY, (int) player.posY); + break; + } + return itemStack; + } }