diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
commit | 869c206c4fcc8001bd2e1d66f704290331813835 (patch) | |
tree | 96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/core/util | |
parent | ec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff) | |
download | GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2 GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip |
Initial Commit
Diffstat (limited to 'src/Java/binnie/core/util')
-rw-r--r-- | src/Java/binnie/core/util/FluidStackSet.java | 128 | ||||
-rw-r--r-- | src/Java/binnie/core/util/IValidator.java | 6 | ||||
-rw-r--r-- | src/Java/binnie/core/util/ItemStackSet.java | 128 | ||||
-rw-r--r-- | src/Java/binnie/core/util/UniqueFluidStackSet.java | 28 | ||||
-rw-r--r-- | src/Java/binnie/core/util/UniqueItemStackSet.java | 28 |
5 files changed, 318 insertions, 0 deletions
diff --git a/src/Java/binnie/core/util/FluidStackSet.java b/src/Java/binnie/core/util/FluidStackSet.java new file mode 100644 index 0000000000..1283435293 --- /dev/null +++ b/src/Java/binnie/core/util/FluidStackSet.java @@ -0,0 +1,128 @@ +package binnie.core.util; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import net.minecraftforge.fluids.FluidStack; + +class FluidStackSet + implements Set<FluidStack> +{ + public String toString() + { + return this.itemStacks.toString(); + } + + List<FluidStack> itemStacks = new ArrayList(); + + protected FluidStack getExisting(FluidStack stack) + { + for (FluidStack stack2 : this.itemStacks) { + if (stack2.isFluidEqual(stack)) { + return stack2; + } + } + return null; + } + + public boolean add(FluidStack e) + { + if (e != null) + { + if (getExisting(e) == null) { + return this.itemStacks.add(e.copy()); + } + getExisting(e).amount += e.amount; + } + return false; + } + + public boolean addAll(Collection<? extends FluidStack> c) + { + boolean addedAll = true; + for (FluidStack stack : c) { + addedAll = (add(stack)) && (addedAll); + } + return addedAll; + } + + public void clear() + { + this.itemStacks.clear(); + } + + public boolean contains(Object o) + { + if (!(o instanceof FluidStack)) { + return false; + } + return getExisting((FluidStack)o) != null; + } + + public boolean containsAll(Collection<?> c) + { + boolean addedAll = true; + for (Object o : c) { + addedAll = (addedAll) && (contains(o)); + } + return false; + } + + public boolean isEmpty() + { + return this.itemStacks.isEmpty(); + } + + public Iterator<FluidStack> iterator() + { + return this.itemStacks.iterator(); + } + + public boolean remove(Object o) + { + if (contains(o)) + { + FluidStack r = (FluidStack)o; + FluidStack existing = getExisting(r); + if (existing.amount > r.amount) { + existing.amount -= r.amount; + } else { + this.itemStacks.remove(existing); + } + } + return false; + } + + public boolean removeAll(Collection<?> c) + { + boolean addedAll = true; + for (Object o : c) + { + boolean removed = remove(o); + addedAll = (removed) && (addedAll); + } + return false; + } + + public boolean retainAll(Collection<?> c) + { + return this.itemStacks.retainAll(c); + } + + public int size() + { + return this.itemStacks.size(); + } + + public Object[] toArray() + { + return this.itemStacks.toArray(); + } + + public <T> T[] toArray(T[] a) + { + return this.itemStacks.toArray(a); + } +} diff --git a/src/Java/binnie/core/util/IValidator.java b/src/Java/binnie/core/util/IValidator.java new file mode 100644 index 0000000000..c6b39dc153 --- /dev/null +++ b/src/Java/binnie/core/util/IValidator.java @@ -0,0 +1,6 @@ +package binnie.core.util; + +public abstract interface IValidator<T> +{ + public abstract boolean isValid(T paramT); +} diff --git a/src/Java/binnie/core/util/ItemStackSet.java b/src/Java/binnie/core/util/ItemStackSet.java new file mode 100644 index 0000000000..a154f7edfc --- /dev/null +++ b/src/Java/binnie/core/util/ItemStackSet.java @@ -0,0 +1,128 @@ +package binnie.core.util; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import net.minecraft.item.ItemStack; + +public class ItemStackSet + implements Set<ItemStack> +{ + public String toString() + { + return this.itemStacks.toString(); + } + + List<ItemStack> itemStacks = new ArrayList(); + + protected ItemStack getExisting(ItemStack stack) + { + for (ItemStack stack2 : this.itemStacks) { + if (stack2.isItemEqual(stack)) { + return stack2; + } + } + return null; + } + + public boolean add(ItemStack e) + { + if (e != null) + { + if (getExisting(e) == null) { + return this.itemStacks.add(e.copy()); + } + getExisting(e).stackSize += e.stackSize; + } + return false; + } + + public boolean addAll(Collection<? extends ItemStack> c) + { + boolean addedAll = true; + for (ItemStack stack : c) { + addedAll = (add(stack)) && (addedAll); + } + return addedAll; + } + + public void clear() + { + this.itemStacks.clear(); + } + + public boolean contains(Object o) + { + if (!(o instanceof ItemStack)) { + return false; + } + return getExisting((ItemStack)o) != null; + } + + public boolean containsAll(Collection<?> c) + { + boolean addedAll = true; + for (Object o : c) { + addedAll = (addedAll) && (contains(o)); + } + return false; + } + + public boolean isEmpty() + { + return this.itemStacks.isEmpty(); + } + + public Iterator<ItemStack> iterator() + { + return this.itemStacks.iterator(); + } + + public boolean remove(Object o) + { + if (contains(o)) + { + ItemStack r = (ItemStack)o; + ItemStack existing = getExisting(r); + if (existing.stackSize > r.stackSize) { + existing.stackSize -= r.stackSize; + } else { + this.itemStacks.remove(existing); + } + } + return false; + } + + public boolean removeAll(Collection<?> c) + { + boolean addedAll = true; + for (Object o : c) + { + boolean removed = remove(o); + addedAll = (removed) && (addedAll); + } + return false; + } + + public boolean retainAll(Collection<?> c) + { + return this.itemStacks.retainAll(c); + } + + public int size() + { + return this.itemStacks.size(); + } + + public Object[] toArray() + { + return this.itemStacks.toArray(); + } + + public <T> T[] toArray(T[] a) + { + return this.itemStacks.toArray(a); + } +} diff --git a/src/Java/binnie/core/util/UniqueFluidStackSet.java b/src/Java/binnie/core/util/UniqueFluidStackSet.java new file mode 100644 index 0000000000..49a7dbab35 --- /dev/null +++ b/src/Java/binnie/core/util/UniqueFluidStackSet.java @@ -0,0 +1,28 @@ +package binnie.core.util; + +import java.util.List; +import net.minecraftforge.fluids.FluidStack; + +public class UniqueFluidStackSet + extends FluidStackSet +{ + public boolean add(FluidStack e) + { + if ((e != null) && + (getExisting(e) == null)) { + return this.itemStacks.add(e.copy()); + } + return false; + } + + public boolean remove(Object o) + { + if (contains(o)) + { + FluidStack r = (FluidStack)o; + FluidStack existing = getExisting(r); + this.itemStacks.remove(existing); + } + return false; + } +} diff --git a/src/Java/binnie/core/util/UniqueItemStackSet.java b/src/Java/binnie/core/util/UniqueItemStackSet.java new file mode 100644 index 0000000000..f9571e8fee --- /dev/null +++ b/src/Java/binnie/core/util/UniqueItemStackSet.java @@ -0,0 +1,28 @@ +package binnie.core.util; + +import java.util.List; +import net.minecraft.item.ItemStack; + +public class UniqueItemStackSet + extends ItemStackSet +{ + public boolean add(ItemStack e) + { + if ((e != null) && + (getExisting(e) == null)) { + return this.itemStacks.add(e.copy()); + } + return false; + } + + public boolean remove(Object o) + { + if (contains(o)) + { + ItemStack r = (ItemStack)o; + ItemStack existing = getExisting(r); + this.itemStacks.remove(existing); + } + return false; + } +} |