aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java
diff options
context:
space:
mode:
authorAlkalus <Draknyte1@hotmail.com>2020-11-05 02:11:29 +0000
committerAlkalus <Draknyte1@hotmail.com>2020-11-05 02:11:29 +0000
commit0aa283261421d95ae2370d25ba8a2ac318368afc (patch)
tree10f6588536330f7bdf2ad4daf85f91802df30d7c /src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java
parent8ee7350f7e52b898126331aea6e673c70942e42a (diff)
downloadGT5-Unofficial-0aa283261421d95ae2370d25ba8a2ac318368afc.tar.gz
GT5-Unofficial-0aa283261421d95ae2370d25ba8a2ac318368afc.tar.bz2
GT5-Unofficial-0aa283261421d95ae2370d25ba8a2ac318368afc.zip
+ Added RTG power Hatch.
+ Added better handler for packager recipes. % Moved RTG fuel pellet recipe handling to it's own function. $ Fixed minor oversight in ItemStackData. $ Fixed TC Alchemical Furnace being a laggy PoS. $ Maybe fixed TC Aspect scanner on items with invalid unlocal names.
Diffstat (limited to 'src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java')
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java b/src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java
new file mode 100644
index 0000000000..947b0a97b4
--- /dev/null
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java
@@ -0,0 +1,71 @@
+package gtPlusPlus.api.objects.minecraft;
+
+import java.util.Iterator;
+import java.util.Stack;
+
+import net.minecraft.item.ItemStack;
+import thaumcraft.api.aspects.AspectList;
+
+public class ThaumcraftDataStack extends Stack<ThaumcraftItemStackData> {
+
+ private final int mStackSize;
+
+ public ThaumcraftDataStack() {
+ this(Integer.MAX_VALUE);
+ }
+
+ public ThaumcraftDataStack(int aMaxSize) {
+ mStackSize = aMaxSize;
+ }
+
+ public boolean containsItemStack(ItemStack aStack, boolean aAddItemStackIfMissingFromStack) {
+ return getItemStackIndex(aStack) != -1;
+ }
+
+ private int getItemStackIndex(ItemStack aStack) {
+ if (this.empty() || aStack == null) {
+ return -1;
+ }
+ Iterator<ThaumcraftItemStackData> iterator = this.iterator();
+ int aIndex = 0;
+ while(iterator.hasNext()){
+ ThaumcraftItemStackData value = iterator.next();
+ if (value.doesItemStackDataMatch(aStack)) {
+ //int index = this.search(value);
+ return aIndex;
+ }
+ aIndex++;
+ }
+ return -1;
+ }
+
+ public AspectList getAspectsForStack(ItemStack aStack) {
+ if (aStack != null) {
+ int aIndex = getItemStackIndex(aStack);
+ if (!this.empty()) {
+ if (aIndex != -1) {
+ ThaumcraftItemStackData aValue = this.elementAt(aIndex);
+ if (aValue != null) {
+ return aValue.getAspectList();
+ }
+ }
+ }
+ if (this.empty() || aIndex == -1) {
+ ThaumcraftItemStackData aTemp = new ThaumcraftItemStackData(aStack);
+ this.push(aTemp);
+ return aTemp.getAspectList();
+ }
+ }
+ return new AspectList();
+ }
+
+ @Override
+ public ThaumcraftItemStackData push(ThaumcraftItemStackData item) {
+ if (this.size() >= this.mStackSize) {
+ this.pop();
+ }
+ return super.push(item);
+ }
+
+
+}