RyanHub – file viewer
filename: common/src/main/java/rearth/oritech/api/item/containers/InOutInventoryStorage.java
branch: 1.21
back to repo
package rearth.oritech.api.item.containers;

import net.minecraft.item.ItemStack;
import rearth.oritech.util.InventorySlotAssignment;

public class InOutInventoryStorage extends SimpleInventoryStorage {
    
    private final InventorySlotAssignment slotAssignment;
    
    public InOutInventoryStorage(int size, Runnable onUpdate, InventorySlotAssignment slotAssignment) {
        super(size, onUpdate);
        this.slotAssignment = slotAssignment;
    }
    
    @Override
    public int insertToSlot(ItemStack addedStack, int slot, boolean simulate) {
        if (!slotAssignment.isInput(slot)) return 0;
        return super.insertToSlot(addedStack, slot, simulate);
    }
    
    @Override
    public int extractFromSlot(ItemStack extracted, int slot, boolean simulate) {
        if (!slotAssignment.isOutput(slot)) return 0;
        return super.extractFromSlot(extracted, slot, simulate);
    }
}