-
Notifications
You must be signed in to change notification settings - Fork 497
/
Transactor.java
32 lines (25 loc) · 1.03 KB
/
Transactor.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package buildcraft.core.inventory;
import buildcraft.api.inventory.ISpecialInventory;
import buildcraft.core.utils.Utils;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.ForgeDirection;
public abstract class Transactor implements ITransactor {
@Override
public ItemStack add(ItemStack stack, ForgeDirection orientation, boolean doAdd) {
ItemStack added = stack.copy();
added.stackSize = inject(stack, orientation, doAdd);
return added;
}
public abstract int inject(ItemStack stack, ForgeDirection orientation, boolean doAdd);
public static ITransactor getTransactorFor(Object object) {
if (object instanceof ISpecialInventory)
return new TransactorSpecial((ISpecialInventory) object);
else if (object instanceof ISidedInventory)
return new TransactorSimple((ISidedInventory) object);
else if (object instanceof IInventory)
return new TransactorSimple(Utils.getInventory((IInventory) object));
return null;
}
}