2020-06-16 22:33:45 +00:00
|
|
|
package com.thebrokenrail.twine.util.boat.inventory;
|
2020-06-15 15:15:20 +00:00
|
|
|
|
2020-06-16 22:33:45 +00:00
|
|
|
import com.thebrokenrail.twine.util.boat.BoatChestMode;
|
|
|
|
import com.thebrokenrail.twine.util.boat.BoatUtil;
|
2020-06-15 15:15:20 +00:00
|
|
|
import net.minecraft.entity.Entity;
|
|
|
|
import net.minecraft.entity.player.PlayerEntity;
|
|
|
|
import net.minecraft.inventory.Inventory;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
2020-06-16 22:33:45 +00:00
|
|
|
public class BoatInventoryWrapper implements Inventory {
|
|
|
|
private final Inventory inventory;
|
2020-06-15 15:15:20 +00:00
|
|
|
private final Entity entity;
|
2020-06-16 22:33:45 +00:00
|
|
|
private final BoatChestMode mode;
|
2020-06-15 15:15:20 +00:00
|
|
|
|
2020-06-16 22:33:45 +00:00
|
|
|
public BoatInventoryWrapper(Entity entity, Inventory inventory, BoatChestMode mode) {
|
2020-06-15 15:15:20 +00:00
|
|
|
this.entity = entity;
|
|
|
|
this.inventory = inventory;
|
2020-06-16 22:33:45 +00:00
|
|
|
this.mode = mode;
|
2020-06-15 15:15:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int size() {
|
|
|
|
return inventory.size();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isEmpty() {
|
|
|
|
return inventory.isEmpty();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ItemStack getStack(int slot) {
|
|
|
|
return inventory.getStack(slot);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ItemStack removeStack(int slot, int amount) {
|
|
|
|
return inventory.removeStack(slot, amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ItemStack removeStack(int slot) {
|
|
|
|
return inventory.removeStack(slot);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setStack(int slot, ItemStack stack) {
|
|
|
|
inventory.setStack(slot, stack);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void markDirty() {
|
|
|
|
inventory.markDirty();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean canPlayerUse(PlayerEntity player) {
|
2020-06-16 22:33:45 +00:00
|
|
|
return BoatUtil.canReachEntity(player, entity) && entity.isAlive() && ((BoatUtil) entity).getChestMode() == mode;
|
2020-06-15 15:15:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onOpen(PlayerEntity player) {
|
2020-06-16 22:33:45 +00:00
|
|
|
if (mode.getOpenSound() != null) {
|
|
|
|
BoatUtil.playSound(entity, mode.getOpenSound());
|
|
|
|
}
|
2020-06-15 15:15:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onClose(PlayerEntity player) {
|
2020-06-16 22:33:45 +00:00
|
|
|
if (mode.getCloseSound() != null) {
|
|
|
|
BoatUtil.playSound(entity, mode.getCloseSound());
|
|
|
|
}
|
2020-06-15 15:15:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void clear() {
|
|
|
|
inventory.clear();
|
|
|
|
}
|
|
|
|
}
|