From 8a2119d5d23daa0341aeedc0dc8fda64980b2b84 Mon Sep 17 00:00:00 2001 From: Universal Date: Sun, 14 Jun 2015 01:13:09 +0200 Subject: [PATCH] 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