Merge pull request #32 from UniversalLP/master

Added destructopack gui
This commit is contained in:
Modmuss50 2015-06-14 10:48:03 +01:00
commit 870958cd68
6 changed files with 144 additions and 1 deletions

View file

@ -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;
}

View file

@ -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<ItemStack> filter = new ArrayList<ItemStack>();
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) { }
}

View file

@ -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));
}
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB