From 877312184c472d9845e5ef1008bc538f4634059f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Thu, 10 Aug 2017 18:50:56 +0300 Subject: fix missing source folder --- main/java/gregtech/api/objects/GT_HashSet.java | 84 ++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 main/java/gregtech/api/objects/GT_HashSet.java (limited to 'main/java/gregtech/api/objects/GT_HashSet.java') diff --git a/main/java/gregtech/api/objects/GT_HashSet.java b/main/java/gregtech/api/objects/GT_HashSet.java new file mode 100644 index 0000000..951b444 --- /dev/null +++ b/main/java/gregtech/api/objects/GT_HashSet.java @@ -0,0 +1,84 @@ +package gregtech.api.objects; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; + +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; + +public class GT_HashSet extends HashSet { + private transient HashMap map; + private static final Object OBJECT = new Object(); + + public GT_HashSet() { + map = new HashMap(); + GregTech_API.sItemStackMappings.add(map); + } + + public GT_HashSet(Collection c) { + map = new HashMap(Math.max((int) (c.size()/.75f) + 1, 16)); + addAll(c); + GregTech_API.sItemStackMappings.add(map); + } + + public GT_HashSet(int initialCapacity, float loadFactor) { + map = new HashMap(initialCapacity, loadFactor); + GregTech_API.sItemStackMappings.add(map); + } + + public GT_HashSet(int initialCapacity) { + map = new HashMap(initialCapacity); + GregTech_API.sItemStackMappings.add(map); + } + + GT_HashSet(int initialCapacity, float loadFactor, boolean dummy) { + map = new LinkedHashMap(initialCapacity, loadFactor); + GregTech_API.sItemStackMappings.add(map); + } + + public HashMap getMap(){return map;} + + @Override + public Iterator iterator() { + return (Iterator)map.keySet().iterator(); + } + + @Override + public int size() { + return map.size(); + } + + @Override + public boolean isEmpty() { + return map.isEmpty(); + } + + @Override + public boolean contains(Object o) { + return map.containsKey(o); + } + + public boolean add(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return false; + return map.put(new GT_ItemStack(aStack), OBJECT)==null; + } + + @Override + public boolean add(Object object) { + return map.put((GT_ItemStack) object, OBJECT)==null; + } + + @Override + public boolean remove(Object o) { + return map.remove(o)==OBJECT; + } + + @Override + public void clear() { + map.clear(); + } +} \ No newline at end of file -- cgit v1.2.3