diff options
author | Alkalus <Draknyte1@hotmail.com> | 2020-11-05 02:11:29 +0000 |
---|---|---|
committer | Alkalus <Draknyte1@hotmail.com> | 2020-11-05 02:11:29 +0000 |
commit | 0aa283261421d95ae2370d25ba8a2ac318368afc (patch) | |
tree | 10f6588536330f7bdf2ad4daf85f91802df30d7c /src/Java/gtPlusPlus/api/objects/minecraft/ThaumcraftDataStack.java | |
parent | 8ee7350f7e52b898126331aea6e673c70942e42a (diff) | |
download | GT5-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.java | 71 |
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); + } + + +} |