package mods.eln.transparentnode.electricalmachine;
import mods.eln.misc.Direction;
import mods.eln.node.transparent.TransparentNodeElementInventory;
import mods.eln.node.transparent.TransparentNodeElementRender;
import net.minecraft.item.ItemStack;
public class ElectricalMachineInventory extends TransparentNodeElementInventory {
private ElectricalMachineElement machineElement;
public ElectricalMachineInventory(int size, int stackLimit, ElectricalMachineElement machineElement) {
super(size, stackLimit, machineElement);
this.machineElement = machineElement;
}
public ElectricalMachineInventory(int size, int stackLimit, TransparentNodeElementRender TransparentnodeRender) {
super(size, stackLimit, TransparentnodeRender);
}
ElectricalMachineDescriptor getDescriptor() {
if (transparentNodeRender != null) return ((ElectricalMachineRender) transparentNodeRender).descriptor;
if (transparentNodeElement != null) return ((ElectricalMachineElement) transparentNodeElement).descriptor;
return null;
}
@Override
public int[] getAccessibleSlotsFromSide(int side) {
if (transparentNodeElement == null) return new int[0];
switch (Direction.fromIntMinecraftSide(side)) {
case YP:
return new int[]{machineElement.inSlotId};
default:
int[] slots = new int[machineElement.descriptor.outStackCount];
for (int idx = 0; idx < slots.length; idx++) {
slots[idx] = idx + machineElement.outSlotId;
}
return slots;
}
}
@Override
public boolean canInsertItem(int var1, ItemStack var2, int side) {
switch (Direction.fromIntMinecraftSide(side)) {
case YP:
return true;
default:
return false;
}
}
@Override
public boolean canExtractItem(int var1, ItemStack var2, int side) {
switch (Direction.fromIntMinecraftSide(side)) {
case YP:
return false;
default:
return true;
}
}
}