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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
package gtPlusPlus.core.slots;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import gtPlusPlus.core.recipe.common.CI;
public class SlotIntegratedCircuit extends Slot {
public static Item mCircuitItem;
public static Item mCircuitItem2;
public static Item mCircuitItem3;
private final short mCircuitLock;
public SlotIntegratedCircuit(final IInventory inventory, final int slot, final int x, final int y) {
this(Short.MAX_VALUE+1, inventory, slot, x, y);
}
public SlotIntegratedCircuit(int mTypeLock, final IInventory inventory, final int slot, final int x, final int y) {
super(inventory, slot, x, y);
if (mTypeLock > Short.MAX_VALUE || mTypeLock < Short.MIN_VALUE) {
mCircuitLock = -1;
}
else {
mCircuitLock = (short) mTypeLock;
}
}
@Override
public synchronized boolean isItemValid(final ItemStack itemstack) {
return isItemValidForSlot(mCircuitLock, itemstack);
}
public static synchronized boolean isItemValidForSlot(final ItemStack itemstack) {
return isItemValidForSlot(-1, itemstack);
}
public static synchronized boolean isItemValidForSlot(int aLockedCircuitNumber, final ItemStack itemstack) {
boolean isValid = false;
if (mCircuitItem == null) {
mCircuitItem = CI.getNumberedCircuit(0).getItem();
}
if (mCircuitItem2 == null) {
mCircuitItem2 = CI.getNumberedBioCircuit(0).getItem();
}
if (mCircuitItem3 == null) {
mCircuitItem3 = CI.getNumberedAdvancedCircuit(0).getItem();
}
if (mCircuitItem != null && mCircuitItem2 != null && mCircuitItem3 != null) {
if (itemstack != null) {
if (itemstack.getItem() == mCircuitItem || itemstack.getItem() == mCircuitItem2 || itemstack.getItem() == mCircuitItem3) {
if (aLockedCircuitNumber == -1) {
isValid = true;
}
else {
if (itemstack.getItemDamage() == aLockedCircuitNumber) {
isValid = true;
}
}
}
}
}
return isValid;
}
/**
* Returns the circuit type. -1 is invalid, 0 is standard, 1 is GT++ bio.
* @param itemstack - the Circuit Stack.
* @return
*/
public static synchronized int isRegularProgrammableCircuit(final ItemStack itemstack) {
if (mCircuitItem == null) {
mCircuitItem = CI.getNumberedCircuit(0).getItem();
}
if (mCircuitItem2 == null) {
mCircuitItem2 = CI.getNumberedBioCircuit(0).getItem();
}
if (mCircuitItem3 == null) {
mCircuitItem3 = CI.getNumberedAdvancedCircuit(0).getItem();
}
if (mCircuitItem != null && mCircuitItem2 != null && mCircuitItem3 != null) {
if (itemstack != null) {
if (itemstack.getItem() == mCircuitItem || itemstack.getItem() == mCircuitItem2 || itemstack.getItem() == mCircuitItem3) {
if (itemstack.getItem() == mCircuitItem) {
return 0;
}
else if (itemstack.getItem() == mCircuitItem2) {
return 1;
}
else if (itemstack.getItem() == mCircuitItem3) {
return 2;
}
}
}
}
return -1;
}
@Override
public int getSlotStackLimit() {
return 64;
}
}
|