2014-04-29 10:54:20 +10:00
|
|
|
package codechicken.nei;
|
|
|
|
|
|
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
|
import net.minecraft.inventory.IInventory;
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
|
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
2023-01-28 17:55:51 -08:00
|
|
|
|
2022-06-24 12:32:13 +01:00
|
|
|
public class ExtendedCreativeInv implements IInventory {
|
2023-01-28 17:55:51 -08:00
|
|
|
|
2019-12-30 20:19:16 -08:00
|
|
|
final PlayerSave playerSave;
|
|
|
|
|
final Side side;
|
2014-04-29 10:54:20 +10:00
|
|
|
|
|
|
|
|
public ExtendedCreativeInv(PlayerSave playerSave, Side side) {
|
|
|
|
|
this.playerSave = playerSave;
|
|
|
|
|
this.side = side;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int getSizeInventory() {
|
|
|
|
|
return 54;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ItemStack getStackInSlot(int slot) {
|
2022-06-24 12:32:13 +01:00
|
|
|
if (side.isClient()) return NEIClientConfig.creativeInv[slot];
|
2014-04-29 10:54:20 +10:00
|
|
|
return playerSave.creativeInv[slot];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ItemStack decrStackSize(int slot, int size) {
|
|
|
|
|
ItemStack item = getStackInSlot(slot);
|
|
|
|
|
|
|
|
|
|
if (item != null) {
|
|
|
|
|
if (item.stackSize <= size) {
|
|
|
|
|
setInventorySlotContents(slot, null);
|
|
|
|
|
markDirty();
|
2019-12-30 20:19:16 -08:00
|
|
|
return item;
|
2014-04-29 10:54:20 +10:00
|
|
|
}
|
|
|
|
|
ItemStack itemstack1 = item.splitStack(size);
|
|
|
|
|
if (item.stackSize == 0) {
|
|
|
|
|
setInventorySlotContents(slot, null);
|
|
|
|
|
}
|
|
|
|
|
markDirty();
|
|
|
|
|
return itemstack1;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ItemStack getStackInSlotOnClosing(int slot) {
|
|
|
|
|
synchronized (this) {
|
|
|
|
|
ItemStack stack = getStackInSlot(slot);
|
|
|
|
|
setInventorySlotContents(slot, null);
|
|
|
|
|
return stack;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void setInventorySlotContents(int slot, ItemStack stack) {
|
2022-06-24 12:32:13 +01:00
|
|
|
if (side.isClient()) NEIClientConfig.creativeInv[slot] = stack;
|
|
|
|
|
else playerSave.creativeInv[slot] = stack;
|
2014-04-29 10:54:20 +10:00
|
|
|
|
|
|
|
|
markDirty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getInventoryName() {
|
|
|
|
|
return "Extended Creative";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int getInventoryStackLimit() {
|
|
|
|
|
return 64;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void markDirty() {
|
2022-06-24 12:32:13 +01:00
|
|
|
if (side.isServer()) playerSave.setCreativeDirty();
|
2014-04-29 10:54:20 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean isUseableByPlayer(EntityPlayer var1) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public void openInventory() {}
|
2014-04-29 10:54:20 +10:00
|
|
|
|
|
|
|
|
@Override
|
2022-06-24 12:32:13 +01:00
|
|
|
public void closeInventory() {}
|
2014-04-29 10:54:20 +10:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean isItemValidForSlot(int slot, ItemStack stack) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean hasCustomInventoryName() {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|