storage cells + drives
This commit is contained in:
28
src/main/java/storagecraft/inventory/ContainerDrive.java
Normal file
28
src/main/java/storagecraft/inventory/ContainerDrive.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user