add gui for controllers

This commit is contained in:
Raoul Van den Berge
2015-12-09 16:40:16 +01:00
parent d5ec3faf5a
commit ec81755506
10 changed files with 290 additions and 16 deletions

View File

@@ -0,0 +1,11 @@
package storagecraft.inventory;
import net.minecraft.entity.player.EntityPlayer;
public class ContainerController extends ContainerSC {
public ContainerController(EntityPlayer player) {
super(player);
addPlayerInventory(8, 108);
}
}

View File

@@ -0,0 +1,40 @@
package storagecraft.inventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerSC extends Container {
private EntityPlayer player;
public ContainerSC(EntityPlayer player) {
this.player = player;
}
protected void addPlayerInventory(int xInventory, int yInventory) {
int id = 0;
for (int i = 0; i < 9; i++) {
addSlotToContainer(new Slot(player.inventory, id, xInventory + i * 18, yInventory + 4 + (3 * 18)));
id++;
}
for (int y = 0; y < 3; y++) {
for (int x = 0; x < 9; x++) {
addSlotToContainer(new Slot(player.inventory, id, xInventory + x * 18, yInventory + y * 18));
id++;
}
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
return null;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return true;
}
}

View File

@@ -0,0 +1,103 @@
package storagecraft.inventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
public class InventoryBasic implements IInventory {
private ItemStack[] inventory;
private int inventorySize;
private String name;
public InventoryBasic(String name, int size) {
this.name = name;
this.inventorySize = size;
this.inventory = new ItemStack[inventorySize];
}
public void setInventoryStack(ItemStack[] stack) {
this.inventory = stack;
}
@Override
public int getSizeInventory() {
return inventory.length;
}
@Override
public ItemStack getStackInSlot(int slotIndex) {
return inventory[slotIndex];
}
@Override
public ItemStack decrStackSize(int slotIndex, int decrementAmount) {
ItemStack itemStack = getStackInSlot(slotIndex);
if (itemStack != null) {
if (itemStack.stackSize <= decrementAmount) {
setInventorySlotContents(slotIndex, null);
} else {
itemStack = itemStack.splitStack(decrementAmount);
if (itemStack.stackSize == 0) {
setInventorySlotContents(slotIndex, null);
}
}
}
return itemStack;
}
@Override
public ItemStack getStackInSlotOnClosing(int slotIndex) {
ItemStack itemStack = getStackInSlot(slotIndex);
if (itemStack != null) {
setInventorySlotContents(slotIndex, null);
}
return itemStack;
}
@Override
public void setInventorySlotContents(int slotIndex, ItemStack itemStack) {
if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) {
itemStack.stackSize = getInventoryStackLimit();
}
inventory[slotIndex] = itemStack;
}
@Override
public String getInventoryName() {
return this.name;
}
@Override
public boolean hasCustomInventoryName() {
return true;
}
@Override
public int getInventoryStackLimit() {
return 64;
}
@Override
public boolean isUseableByPlayer(EntityPlayer var1) {
return true;
}
@Override
public void openInventory() {
}
@Override
public void closeInventory() {
}
@Override
public boolean isItemValidForSlot(int var1, ItemStack var2) {
return true;
}
@Override
public void markDirty() {
}
}