111 lines
2.7 KiB
Java
111 lines
2.7 KiB
Java
package wtf.hak.survivalfabric.sharedenderchest;
|
|
import net.minecraft.entity.player.PlayerEntity;
|
|
import net.minecraft.inventory.Inventories;
|
|
import net.minecraft.inventory.Inventory;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.collection.DefaultedList;
|
|
|
|
import java.util.Iterator;
|
|
|
|
public class SharedInventory implements Inventory {
|
|
|
|
private final DefaultedList<ItemStack> stacks;
|
|
|
|
public SharedInventory(int inventoryRows) {
|
|
this.stacks = DefaultedList.ofSize(inventoryRows * 9, ItemStack.EMPTY);
|
|
}
|
|
|
|
public SharedInventory(DefaultedList<ItemStack> dl) {
|
|
this.stacks = dl;
|
|
}
|
|
|
|
/*
|
|
@Override
|
|
public void onClose(PlayerEntity player) {
|
|
Inventory.super.onClose(player);
|
|
EnderChestBlockEntity blockEntity = enderChests.remove(player);
|
|
if (blockEntity != null)
|
|
blockEntity.onClose(player);
|
|
}
|
|
|
|
@Override
|
|
public void onOpen(PlayerEntity player) {
|
|
Inventory.super.onOpen(player);
|
|
EnderChestBlockEntity blockEntity = enderChests.get(player);
|
|
if (blockEntity != null)
|
|
blockEntity.onOpen(player);
|
|
}
|
|
|
|
public void setBlockEntity(PlayerEntity player, EnderChestBlockEntity be) {
|
|
enderChests.put(player, be);
|
|
}
|
|
*/
|
|
|
|
|
|
public DefaultedList<ItemStack> getList(DefaultedList<ItemStack> dl) {
|
|
dl = stacks;
|
|
return dl;
|
|
}
|
|
|
|
@Override
|
|
public int size() {
|
|
return stacks.size();
|
|
}
|
|
|
|
@Override
|
|
public boolean isEmpty() {
|
|
Iterator<ItemStack> var1 = this.stacks.iterator();
|
|
|
|
ItemStack itemStack_1;
|
|
do {
|
|
if (!var1.hasNext()) {
|
|
return true;
|
|
}
|
|
|
|
itemStack_1 = (ItemStack)var1.next();
|
|
} while(itemStack_1.isEmpty());
|
|
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack getStack(int i) {
|
|
return i >= stacks.size() ? ItemStack.EMPTY : stacks.get(i);
|
|
}
|
|
|
|
@Override
|
|
public ItemStack removeStack(int int_1, int int_2) {
|
|
ItemStack itemStack_1 = Inventories.splitStack(this.stacks, int_1, int_2);
|
|
if (!itemStack_1.isEmpty()) {
|
|
//this.container.onContentChanged(this);
|
|
}
|
|
|
|
return itemStack_1;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack removeStack(int i) {
|
|
return Inventories.removeStack(this.stacks, i);
|
|
}
|
|
|
|
@Override
|
|
public void setStack(int i, ItemStack itemStack) {
|
|
this.stacks.set(i, itemStack);
|
|
//this.container.onContentChanged(this);
|
|
}
|
|
|
|
@Override
|
|
public void markDirty() {
|
|
|
|
}
|
|
|
|
@Override
|
|
public boolean canPlayerUse(PlayerEntity playerEntity) {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void clear() {
|
|
stacks.clear();
|
|
}
|
|
} |