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 000000000..1df4b970e Binary files /dev/null and b/src/main/resources/assets/techreborn/textures/gui/destructopack.png differ