storage cells + drives

This commit is contained in:
Raoul Van den Berge
2015-12-12 21:22:01 +01:00
parent 9cb06025b1
commit 8e443e5fd9
19 changed files with 396 additions and 38 deletions

View File

@@ -0,0 +1,28 @@
package storagecraft.inventory;
import net.minecraft.entity.player.EntityPlayer;
import storagecraft.SCItems;
import storagecraft.tile.TileDrive;
import storagecraft.inventory.slot.SlotItemFilter;
public class ContainerDrive extends ContainerSC {
public ContainerDrive(EntityPlayer player, TileDrive drive) {
super(player);
addPlayerInventory(8, 108);
int x = 71;
int y = 20;
for (int i = 0; i < 8; ++i) {
addSlotToContainer(new SlotItemFilter(drive, i, x, y, SCItems.STORAGE_CELL));
if ((i + 1) % 2 == 0) {
x = 71;
y += 18;
} else {
x += 18;
}
}
}
}

View File

@@ -21,12 +21,14 @@ public class ContainerSC extends Container {
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++;
}
}

View File

@@ -6,22 +6,18 @@ import net.minecraft.item.ItemStack;
public class InventoryBasic implements IInventory {
private ItemStack[] inventory;
private int inventorySize;
private int size;
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;
this.size = size;
this.inventory = new ItemStack[size];
}
@Override
public int getSizeInventory() {
return inventory.length;
return size;
}
@Override
@@ -30,38 +26,42 @@ public class InventoryBasic implements IInventory {
}
@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);
public ItemStack decrStackSize(int slot, int amount) {
ItemStack stack = getStackInSlot(slot);
if (itemStack.stackSize == 0) {
setInventorySlotContents(slotIndex, null);
if (stack != null) {
if (stack.stackSize <= amount) {
setInventorySlotContents(slot, null);
} else {
stack = stack.splitStack(amount);
if (stack.stackSize == 0) {
setInventorySlotContents(slot, null);
}
}
}
return itemStack;
return stack;
}
@Override
public ItemStack getStackInSlotOnClosing(int slotIndex) {
ItemStack itemStack = getStackInSlot(slotIndex);
if (itemStack != null) {
setInventorySlotContents(slotIndex, null);
public ItemStack getStackInSlotOnClosing(int slot) {
ItemStack stack = getStackInSlot(slot);
if (stack != null) {
setInventorySlotContents(slot, null);
}
return itemStack;
return stack;
}
@Override
public void setInventorySlotContents(int slotIndex, ItemStack itemStack) {
if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) {
itemStack.stackSize = getInventoryStackLimit();
public void setInventorySlotContents(int slot, ItemStack stack) {
if (stack != null && stack.stackSize > getInventoryStackLimit()) {
stack.stackSize = getInventoryStackLimit();
}
inventory[slotIndex] = itemStack;
inventory[slot] = stack;
}
@Override
@@ -80,7 +80,7 @@ public class InventoryBasic implements IInventory {
}
@Override
public boolean isUseableByPlayer(EntityPlayer var1) {
public boolean isUseableByPlayer(EntityPlayer player) {
return true;
}
@@ -93,7 +93,7 @@ public class InventoryBasic implements IInventory {
}
@Override
public boolean isItemValidForSlot(int var1, ItemStack var2) {
public boolean isItemValidForSlot(int slot, ItemStack stack) {
return true;
}

View File

@@ -0,0 +1,21 @@
package storagecraft.inventory.slot;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class SlotItemFilter extends Slot {
private Item item;
public SlotItemFilter(IInventory inventory, int id, int x, int y, Item item) {
super(inventory, id, x, y);
this.item = item;
}
@Override
public boolean isItemValid(ItemStack item) {
return item.getItem() == this.item;
}
}