This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
Twine/src/main/java/com/thebrokenrail/twine/util/boat/inventory/BoatInventoryWrapper.java

80 lines
2.0 KiB
Java

package com.thebrokenrail.twine.util.boat.inventory;
import com.thebrokenrail.twine.util.boat.BoatChestMode;
import com.thebrokenrail.twine.util.boat.BoatUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.Inventory;
import net.minecraft.item.ItemStack;
public class BoatInventoryWrapper implements Inventory {
private final Inventory inventory;
private final Entity entity;
private final BoatChestMode mode;
public BoatInventoryWrapper(Entity entity, Inventory inventory, BoatChestMode mode) {
this.entity = entity;
this.inventory = inventory;
this.mode = mode;
}
@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) {
return BoatUtil.canReachEntity(player, entity) && entity.isAlive() && ((BoatUtil) entity).getChestMode() == mode;
}
@Override
public void onOpen(PlayerEntity player) {
if (mode.getOpenSound() != null) {
BoatUtil.playSound(entity, mode.getOpenSound());
}
}
@Override
public void onClose(PlayerEntity player) {
if (mode.getCloseSound() != null) {
BoatUtil.playSound(entity, mode.getCloseSound());
}
}
@Override
public void clear() {
inventory.clear();
}
}