aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/slots
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/slots')
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java45
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotGeneric.java5
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotIntegratedCircuit.java49
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotNoInputLogging.java36
4 files changed, 127 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java b/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java
new file mode 100644
index 0000000000..6cd13dc209
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java
@@ -0,0 +1,45 @@
+package gtPlusPlus.core.slots;
+
+import gregtech.api.util.Recipe_GT;
+import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidContainerRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+public class SlotChemicalPlantInput extends Slot {
+
+ public SlotChemicalPlantInput(final IInventory inventory, final int index, final int x, final int y) {
+ super(inventory, index, x, y);
+ }
+
+ @Override
+ public boolean isItemValid(final ItemStack itemstack) {
+ return isItemValidForChemicalPlantSlot(itemstack);
+ }
+
+ public static boolean isItemValidForChemicalPlantSlot(ItemStack aStack) {
+ boolean validItem = Gregtech_Recipe_Map.sFluidChemicalReactorRecipes.containsInput(aStack);
+ if (!validItem) {
+ for (Recipe_GT f : Gregtech_Recipe_Map.sFluidChemicalReactorRecipes.mRecipeList) {
+ if (f.mFluidInputs.length > 0) {
+ for (FluidStack g : f.mFluidInputs) {
+ if (g != null) {
+ if (FluidContainerRegistry.containsFluid(aStack, g)) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return validItem;
+ }
+
+ @Override
+ public int getSlotStackLimit() {
+ return 64;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/slots/SlotGeneric.java b/src/Java/gtPlusPlus/core/slots/SlotGeneric.java
index d4c389d9cc..533539d914 100644
--- a/src/Java/gtPlusPlus/core/slots/SlotGeneric.java
+++ b/src/Java/gtPlusPlus/core/slots/SlotGeneric.java
@@ -6,9 +6,8 @@ import net.minecraft.item.ItemStack;
public class SlotGeneric extends Slot {
- public SlotGeneric(final IInventory inventory, final int x, final int y, final int z) {
- super(inventory, x, y, z);
-
+ public SlotGeneric(final IInventory inventory, final int aSlotID, final int x, final int y) {
+ super(inventory, aSlotID, x, y);
}
@Override
diff --git a/src/Java/gtPlusPlus/core/slots/SlotIntegratedCircuit.java b/src/Java/gtPlusPlus/core/slots/SlotIntegratedCircuit.java
index c41a385c4b..48b050d678 100644
--- a/src/Java/gtPlusPlus/core/slots/SlotIntegratedCircuit.java
+++ b/src/Java/gtPlusPlus/core/slots/SlotIntegratedCircuit.java
@@ -10,12 +10,13 @@ import gtPlusPlus.core.recipe.common.CI;
public class SlotIntegratedCircuit extends Slot {
public static Item mCircuitItem;
+ public static Item mCircuitItem2;
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) {
@@ -28,18 +29,29 @@ public class SlotIntegratedCircuit extends Slot {
@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 (mCircuitItem != null) {
+ if (mCircuitItem2 == null) {
+ mCircuitItem2 = CI.getNumberedBioCircuit(0).getItem();
+ }
+ if (mCircuitItem != null && mCircuitItem2 != null) {
if (itemstack != null) {
- if (itemstack.getItem() == mCircuitItem) {
- if (mCircuitLock == -1) {
+ if (itemstack.getItem() == mCircuitItem || itemstack.getItem() == mCircuitItem2) {
+ if (aLockedCircuitNumber == -1) {
isValid = true;
}
else {
- if (itemstack.getItemDamage() == mCircuitLock) {
+ if (itemstack.getItemDamage() == aLockedCircuitNumber) {
isValid = true;
}
}
@@ -49,6 +61,33 @@ public class SlotIntegratedCircuit extends Slot {
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 (mCircuitItem != null && mCircuitItem2 != null) {
+ if (itemstack != null) {
+ if (itemstack.getItem() == mCircuitItem || itemstack.getItem() == mCircuitItem2) {
+ if (itemstack.getItem() == mCircuitItem) {
+ return 0;
+ }
+ else if (itemstack.getItem() == mCircuitItem2) {
+ return 1;
+ }
+ }
+ }
+ }
+ return -1;
+ }
+
@Override
public int getSlotStackLimit() {
return 64;
diff --git a/src/Java/gtPlusPlus/core/slots/SlotNoInputLogging.java b/src/Java/gtPlusPlus/core/slots/SlotNoInputLogging.java
new file mode 100644
index 0000000000..762714ac94
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/slots/SlotNoInputLogging.java
@@ -0,0 +1,36 @@
+package gtPlusPlus.core.slots;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.block.Block;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+
+public class SlotNoInputLogging extends SlotNoInput {
+
+ private final int aSlotIndex;
+
+ public SlotNoInputLogging(final IInventory inventory, final int index, final int x, final int y) {
+ super(inventory, index, x, y);
+ aSlotIndex = index;
+ Logger.INFO("Slot "+index+" is doing logging");
+ }
+
+ @Override
+ public boolean isItemValid(final ItemStack itemstack) {
+ if (ItemUtils.checkForInvalidItems(itemstack)) {
+ Logger.INFO("Tried Inserting "+ItemUtils.getItemName(itemstack)+" into slot "+aSlotIndex);
+ Block b = Block.getBlockFromItem(itemstack.getItem());
+ Logger.INFO(""+itemstack.getUnlocalizedName());
+ if (b != null) {
+ Logger.INFO(""+b.getLocalizedName());
+ Logger.INFO(""+b.getUnlocalizedName());
+ }
+ }
+ else {
+ Logger.INFO("Bad Itemstack");
+ }
+ return false;
+ }
+
+}