diff options
author | Technus <daniel112092@gmail.com> | 2017-05-12 19:25:09 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-05-12 19:25:09 +0200 |
commit | 63f3b6c2bc54eb1ca18c180468c9a0551b4707ed (patch) | |
tree | 86d4dd10a55ecfbe440b4cd060bf3b445acc20a2 | |
parent | 43057795e44ff2163b3b271b1d4c92968e3240b4 (diff) | |
download | GT5-Unofficial-63f3b6c2bc54eb1ca18c180468c9a0551b4707ed.tar.gz GT5-Unofficial-63f3b6c2bc54eb1ca18c180468c9a0551b4707ed.tar.bz2 GT5-Unofficial-63f3b6c2bc54eb1ca18c180468c9a0551b4707ed.zip |
Refactoring 4th time
15 files changed, 531 insertions, 181 deletions
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java index 19d3b1566b..7891c273ba 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java @@ -12,7 +12,7 @@ public final class cElementalDecay { //Or cast null into ARRAY type but this static is more convenient!!! public static final cElementalDecay[] noProduct = new cElementalDecay[0]; //this in turn can be used to tell that the thing should just vanish - public final cElementalDefinitionStackMap outputStacks; + public final cElementalMutableDefinitionStackMap outputStacks; public final float probability; public cElementalDecay(iElementalDefinition... outSafe) { @@ -24,7 +24,7 @@ public final class cElementalDecay { for (int i = 0; i < outArr.length; i++) { outArr[i] = new cElementalDefinitionStack(outSafe[i], 1); } - this.outputStacks = new cElementalDefinitionStackMap(outArr); + this.outputStacks = new cElementalMutableDefinitionStackMap(outArr); this.probability = probability; } @@ -33,15 +33,15 @@ public final class cElementalDecay { } public cElementalDecay(float probability, cElementalDefinitionStack... out) { - this.outputStacks = new cElementalDefinitionStackMap(out); + this.outputStacks = new cElementalMutableDefinitionStackMap(out); this.probability = probability; } - public cElementalDecay(cElementalDefinitionStackMap tree) { + public cElementalDecay(cElementalMutableDefinitionStackMap tree) { this(2F, tree); } - public cElementalDecay(float probability, cElementalDefinitionStackMap tree) { + public cElementalDecay(float probability, cElementalMutableDefinitionStackMap tree) { this.outputStacks = tree; this.probability = probability; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java index e1223f823b..cac239c894 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java @@ -6,6 +6,7 @@ import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefini import net.minecraft.nbt.NBTTagCompound; import java.lang.reflect.Method; +import java.util.HashMap; import java.util.Map; import java.util.TreeMap; @@ -15,15 +16,19 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD * Created by danie_000 on 23.01.2017. */ public abstract class cElementalDefinition implements iElementalDefinition { - //add text based creators for recipe formula input? - private static final Map<Byte, Method> nbtCreationBind = new TreeMap<>();//creator methods in subclasses + //Nothing array + public static final iElementalDefinition[] nothing = new cElementalPrimitive[0]; + //add text based creators for recipe formula input? + private static final Map<Byte, Method> nbtCreationBind = new HashMap<>();//creator methods in subclasses protected static Method addCreatorFromNBT(byte b, Method m) { return nbtCreationBind.put(b, m); } - //Nothing array - public static final iElementalDefinition[] nothing = new cElementalPrimitive[0]; + @Override + protected final Object clone() { + return this;//IMMUTABLE + } public static iElementalDefinition fromNBT(NBTTagCompound nbt) { try { diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java index d32f034fb4..1bff45172a 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java @@ -19,8 +19,13 @@ public final class cElementalDefinitionStack implements iHasElementalDefinition } @Override + protected final Object clone() { + return this;//IMMUTABLE + } + + @Override public iElementalDefinition getDefinition() { - return definition; + return definition;//IMMUTABLE } @Override diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java index 1abffb7a26..d41554c5ef 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java @@ -6,50 +6,47 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import java.util.Map; -import java.util.TreeMap; import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveDefinition.debug__; /** - * Created by danie_000 on 22.01.2017. + * Created by Tec on 12.05.2017. */ -public final class cElementalDefinitionStackMap implements Comparable<cElementalDefinitionStackMap> { - private Map<iElementalDefinition, cElementalDefinitionStack> tree = new TreeMap<>(); - - //Constructors - public cElementalDefinitionStackMap() { +public class cElementalDefinitionStackMap/*IMMUTABLE*/ extends cElementalMutableDefinitionStackMap {//TODO MAKE IMMUTABLE + public cElementalDefinitionStackMap(cElementalMutableDefinitionStackMap mutable) { + map=mutable.Clone().map; } - @Deprecated - public cElementalDefinitionStackMap(iElementalDefinition... in) { - if (in == null) return; - for (iElementalDefinition definition : in) - tree.put(definition, new cElementalDefinitionStack(definition, 1)); + //IMMUTABLES DONT NEED IT + @Override + protected Object clone() { + return this; } - public cElementalDefinitionStackMap(cElementalDefinitionStack... in) { - if (in == null) return; - for (cElementalDefinitionStack stack : in) - tree.put(stack.definition, stack); + @Override + @Deprecated + public final cElementalMutableDefinitionStackMap Clone() { + return null; } - private cElementalDefinitionStackMap(Map<iElementalDefinition, cElementalDefinitionStack> in) { - if (in == null) return; - tree = in; + @Override + public final cElementalMutableDefinitionStackMap mutable() { + return new cElementalMutableDefinitionStackMap(map); } - public cElementalDefinitionStackMap(cElementalDefinitionStackMap in) { - this(in.tree); + @Override + public cElementalDefinitionStackMap immutable() { + return this; } - @Override - protected Object clone() throws CloneNotSupportedException { - return new cElementalDefinitionStackMap(tree); + @Deprecated + public Map<iElementalDefinition,cElementalDefinitionStack> getRawMap() { + return mutable().getRawMap(); } @Override - public int compareTo(cElementalDefinitionStackMap o) { - if (tree.size() != o.tree.size()) return tree.size() - o.tree.size(); + public int compareTo(cElementalMutableDefinitionStackMap o) { + if (map.size() != o.map.size()) return map.size() - o.map.size(); cElementalDefinitionStack[] ofThis = values(), ofThat = o.values(); for (int i = 0; i < ofThat.length; i++) { int result = ofThis[i].compareTo(ofThat[i]); @@ -60,32 +57,32 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental //Removers public void clear() { - tree.clear(); + map.clear(); } public cElementalDefinitionStack remove(iElementalDefinition def) { - return tree.remove(def); + return map.remove(def); } @Deprecated public cElementalDefinitionStack remove(iHasElementalDefinition has) { - return tree.remove(has.getDefinition()); + return map.remove(has.getDefinition()); } public void removeAll(iElementalDefinition... definitions) { for (iElementalDefinition def : definitions) - tree.remove(def); + map.remove(def); } @Deprecated private void removeAll(iHasElementalDefinition... hasElementals) { for (iHasElementalDefinition has : hasElementals) - tree.remove(has.getDefinition()); + map.remove(has.getDefinition()); } //Remove amounts public boolean removeAmount(boolean testOnly, cElementalInstanceStack instance) { - final cElementalDefinitionStack target = tree.get(instance.definition); + final cElementalDefinitionStack target = map.get(instance.definition); if (target == null) return false; if (testOnly) @@ -93,10 +90,10 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental else { final int diff = target.amount - instance.amount; if (diff > 0) { - tree.put(target.definition, new cElementalDefinitionStack(target.definition, diff)); + map.put(target.definition, new cElementalDefinitionStack(target.definition, diff)); return true; } else if (diff == 0) { - tree.remove(instance.definition); + map.remove(instance.definition); return true; } } @@ -104,7 +101,7 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental } public boolean removeAmount(boolean testOnly, cElementalDefinitionStack stack) { - final cElementalDefinitionStack target = tree.get(stack.definition); + final cElementalDefinitionStack target = map.get(stack.definition); if (target == null) return false; if (testOnly) @@ -112,10 +109,10 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental else { final int diff = target.amount - stack.amount; if (diff > 0) { - tree.put(target.definition, new cElementalDefinitionStack(target.definition, diff)); + map.put(target.definition, new cElementalDefinitionStack(target.definition, diff)); return true; } else if (diff == 0) { - tree.remove(stack.definition); + map.remove(stack.definition); return true; } } @@ -155,7 +152,7 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental return removeAllAmounts(testOnly, stacks); } - public boolean removeAllAmounts(boolean testOnly, cElementalDefinitionStackMap container) { + public boolean removeAllAmounts(boolean testOnly, cElementalMutableDefinitionStackMap container) { return removeAllAmounts(testOnly, container.values()); } @@ -165,25 +162,25 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental //Put replace public cElementalDefinitionStack putReplace(cElementalDefinitionStack defStackUnsafe) { - return tree.put(defStackUnsafe.definition, defStackUnsafe); + return map.put(defStackUnsafe.definition, defStackUnsafe); } public void putReplaceAll(cElementalDefinitionStack... defStacks) { for (cElementalDefinitionStack defStack : defStacks) - this.tree.put(defStack.definition, defStack); + this.map.put(defStack.definition, defStack); } private void putReplaceAll(Map<iElementalDefinition, cElementalDefinitionStack> inTreeUnsafe) { - this.tree.putAll(inTreeUnsafe); + this.map.putAll(inTreeUnsafe); } - public void putReplaceAll(cElementalDefinitionStackMap inContainerUnsafe) { - putReplaceAll(inContainerUnsafe.tree); + public void putReplaceAll(cElementalMutableDefinitionStackMap inContainerUnsafe) { + putReplaceAll(inContainerUnsafe.map); } //Put unify public cElementalDefinitionStack putUnify(cElementalDefinitionStack def) { - return tree.put(def.definition, def.unifyIntoNew(tree.get(def.definition))); + return map.put(def.definition, def.unifyIntoNew(map.get(def.definition))); } @Deprecated @@ -207,19 +204,19 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental putUnify(in); } - public void putUnifyAll(cElementalDefinitionStackMap containerUnsafe) { - putUnifyAll(containerUnsafe.tree); + public void putUnifyAll(cElementalMutableDefinitionStackMap containerUnsafe) { + putUnifyAll(containerUnsafe.map); } //Getters public cElementalDefinitionStack getDefinitionStack(iElementalDefinition def) { - return tree.get(def); + return map.get(def); } public String[] getElementalInfo() { - final String[] info = new String[tree.size() * 3]; + final String[] info = new String[map.size() * 3]; int i = 0; - for (cElementalDefinitionStack defStack : tree.values()) { + for (cElementalDefinitionStack defStack : map.values()) { info[i] = EnumChatFormatting.BLUE + defStack.definition.getName(); info[i + 1] = EnumChatFormatting.AQUA + defStack.definition.getSymbol(); info[i + 2] = "Amount " + EnumChatFormatting.GREEN + defStack.amount; @@ -229,28 +226,28 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental } public cElementalDefinitionStack[] values() { - return tree.values().toArray(new cElementalDefinitionStack[0]); + return map.values().toArray(new cElementalDefinitionStack[0]); } public iElementalDefinition[] keys() { - return tree.keySet().toArray(new iElementalDefinition[0]); + return map.keySet().toArray(new iElementalDefinition[0]); } //Tests public boolean containsDefinition(iElementalDefinition def) { - return tree.containsKey(def); + return map.containsKey(def); } public boolean containsDefinitionStack(cElementalDefinitionStack inst) { - return tree.containsValue(inst); + return map.containsValue(inst); } public int size() { - return tree.size(); + return map.size(); } public boolean hasStacks() { - return tree.size() > 0; + return map.size() > 0; } //NBT @@ -272,35 +269,35 @@ public final class cElementalDefinitionStackMap implements Comparable<cElemental public NBTTagCompound toNBT() { final NBTTagCompound nbt = new NBTTagCompound(); - nbt.setInteger("i", tree.size()); + nbt.setInteger("i", map.size()); int i = 0; - for (cElementalDefinitionStack defStack : tree.values()) + for (cElementalDefinitionStack defStack : map.values()) nbt.setTag(Integer.toString(i++), defStack.toNBT()); return nbt; } - public static cElementalDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { + public static cElementalMutableDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { final cElementalDefinitionStack[] defStacks = new cElementalDefinitionStack[nbt.getInteger("i")]; for (int i = 0; i < defStacks.length; i++) { defStacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i))); if (defStacks[i].definition.equals(debug__)) throw new tElementalException("Something went Wrong"); } - return new cElementalDefinitionStackMap(defStacks); + return new cElementalMutableDefinitionStackMap(defStacks); } //stackUp @Deprecated - public static cElementalDefinitionStackMap stackUpTree(iElementalDefinition... in) { - final cElementalDefinitionStackMap inTree = new cElementalDefinitionStackMap(); + public static cElementalMutableDefinitionStackMap stackUpTree(iElementalDefinition... in) { + final cElementalMutableDefinitionStackMap inTree = new cElementalMutableDefinitionStackMap(); for (iElementalDefinition def : in) { inTree.putUnify(new cElementalDefinitionStack(def, 1)); } return inTree; } - public static cElementalDefinitionStackMap stackUpTree(cElementalDefinitionStack... in) { - final cElementalDefinitionStackMap inTree = new cElementalDefinitionStackMap(); + public static cElementalMutableDefinitionStackMap stackUpTree(cElementalDefinitionStack... in) { + final cElementalMutableDefinitionStackMap inTree = new cElementalMutableDefinitionStackMap(); inTree.putUnifyAll(in); return inTree; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java index 0a840a20d8..a2ac4948cf 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java @@ -10,7 +10,7 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD /** * Created by danie_000 on 22.10.2016. */ -public final class cElementalInstanceStack implements iHasElementalDefinition { +public class cElementalInstanceStack implements iHasElementalDefinition { public final iElementalDefinition definition; //energy - if positive then particle should try to decay public int energy; @@ -48,6 +48,26 @@ public final class cElementalInstanceStack implements iHasElementalDefinition { this.amount = amount; } + //Clone proxy + private cElementalInstanceStack(cElementalInstanceStack stack){ + definition=stack.definition; + energy=stack.energy; + color=stack.color; + age=stack.age; + amount=stack.amount; + lifeTime=stack.lifeTime; + lifeTimeMult=stack.lifeTimeMult; + } + + @Override + protected final Object clone() { + return Clone(); + } + + public final cElementalInstanceStack Clone() { + return new cElementalInstanceStack(this); + } + @Override public int getAmount() { return amount; @@ -192,12 +212,6 @@ public final class cElementalInstanceStack implements iHasElementalDefinition { } } - public cElementalInstanceStack getCopy() { - cElementalInstanceStack cI = new cElementalInstanceStack(definition, amount, lifeTimeMult, age, energy); - cI.setColor(color); - return cI; - } - @Override public int compareTo(iHasElementalDefinition o) {//use for unification return definition.compareTo(o.getDefinition()); diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java index c317554a32..196dcefaec 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java @@ -13,8 +13,8 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD /** * Created by danie_000 on 22.01.2017. */ -public final class cElementalInstanceStackMap implements Comparable<cElementalInstanceStackMap> { - private Map<iElementalDefinition, cElementalInstanceStack> tree = new TreeMap<>(); +public class cElementalInstanceStackMap implements Comparable<cElementalInstanceStackMap> { + private Map<iElementalDefinition, cElementalInstanceStack> map = new TreeMap<>(); //Constructors public cElementalInstanceStackMap() { @@ -24,15 +24,14 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn this(true, inSafe); } - public cElementalInstanceStackMap(boolean copy, cElementalInstanceStack... in) { - if (in == null) return; - if (copy) { + public cElementalInstanceStackMap(boolean clone, cElementalInstanceStack... in) { + if (clone) { for (cElementalInstanceStack instance : in) { - tree.put(instance.definition, instance.getCopy()); + map.put(instance.definition, instance.Clone()); } } else { for (cElementalInstanceStack instance : in) { - tree.put(instance.definition, instance); + map.put(instance.definition, instance); } } } @@ -41,33 +40,41 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn this(true, inSafe); } - private cElementalInstanceStackMap(boolean copy, Map<iElementalDefinition, cElementalInstanceStack> in) { - if (in == null) return; - if (copy) { + private cElementalInstanceStackMap(boolean clone, Map<iElementalDefinition, cElementalInstanceStack> in) { + if (clone) { for (cElementalInstanceStack instance : in.values()) { - tree.put(instance.definition, instance.getCopy()); + map.put(instance.definition, instance.Clone()); } } else { - tree = in; + map = in; } } public cElementalInstanceStackMap(cElementalInstanceStackMap inSafe) { - this(true, inSafe.tree); + this(true, inSafe.map); } public cElementalInstanceStackMap(boolean copy, cElementalInstanceStackMap in) { - this(copy, in.tree); + this(copy, in.map); } @Override - protected Object clone() throws CloneNotSupportedException { - return new cElementalInstanceStackMap(tree); + protected final Object clone() { + return Clone(); + } + + public final cElementalInstanceStackMap Clone(){ + return new cElementalInstanceStackMap(map); + } + + @Deprecated + public Map<iElementalDefinition,cElementalInstanceStack> getRawMap() { + return map; } @Override public int compareTo(cElementalInstanceStackMap o) { - if (tree.size() != o.tree.size()) return tree.size() - o.tree.size(); + if (map.size() != o.map.size()) return map.size() - o.map.size(); cElementalInstanceStack[] ofThis = values(), ofThat = o.values(); for (int i = 0; i < ofThat.length; i++) { int result = ofThis[i].compareTo(ofThat[i]); @@ -78,32 +85,32 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn //Removers public void clear() { - tree.clear(); + map.clear(); } public cElementalInstanceStack remove(iElementalDefinition def) { - return tree.remove(def); + return map.remove(def); } @Deprecated public cElementalInstanceStack remove(iHasElementalDefinition has) { - return tree.remove(has.getDefinition()); + return map.remove(has.getDefinition()); } public void removeAll(iElementalDefinition... definitions) { for (iElementalDefinition def : definitions) - tree.remove(def); + map.remove(def); } @Deprecated private void removeAll(iHasElementalDefinition... hasElementals) { for (iHasElementalDefinition has : hasElementals) - tree.remove(has.getDefinition()); + map.remove(has.getDefinition()); } //Remove amounts public boolean removeAmount(boolean testOnly, cElementalInstanceStack instance) { - final cElementalInstanceStack target = tree.get(instance.definition); + final cElementalInstanceStack target = map.get(instance.definition); if (target == null) return false; if (testOnly) @@ -114,7 +121,7 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn target.amount = diff; return true; } else if (diff == 0) { - tree.remove(instance.definition); + map.remove(instance.definition); return true; } } @@ -122,7 +129,7 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn } public boolean removeAmount(boolean testOnly, cElementalDefinitionStack stack) { - final cElementalInstanceStack target = tree.get(stack.definition); + final cElementalInstanceStack target = map.get(stack.definition); if (target == null) return false; if (testOnly) @@ -133,7 +140,7 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn target.amount = diff; return true; } else if (diff == 0) { - tree.remove(stack.definition); + map.remove(stack.definition); return true; } } @@ -173,7 +180,7 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn return removeAllAmounts(testOnly, stacks); } - public boolean removeAllAmounts(boolean testOnly, cElementalDefinitionStackMap container) { + public boolean removeAllAmounts(boolean testOnly, cElementalMutableDefinitionStackMap container) { return removeAllAmounts(testOnly, container.values()); } @@ -185,11 +192,11 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn public float removeOverflow(int stacksCount, int stackCapacity) { float massRemoved = 0; - if (tree.size() > stacksCount) { + if (map.size() > stacksCount) { iElementalDefinition[] keys = this.keys(); for (int i = stacksCount; i < keys.length; i++) { - massRemoved += tree.get(keys[i]).getDefinitionStack().getMass(); - tree.remove(keys[i]); + massRemoved += map.get(keys[i]).getDefinitionStack().getMass(); + map.remove(keys[i]); } } @@ -203,25 +210,25 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn //Put replace public cElementalInstanceStack putReplace(cElementalInstanceStack instanceUnsafe) { - return tree.put(instanceUnsafe.definition, instanceUnsafe); + return map.put(instanceUnsafe.definition, instanceUnsafe); } public void putReplaceAll(cElementalInstanceStack... instances) { for (cElementalInstanceStack instance : instances) - this.tree.put(instance.definition, instance); + this.map.put(instance.definition, instance); } private void putReplaceAll(Map<iElementalDefinition, cElementalInstanceStack> inTreeUnsafe) { - this.tree.putAll(inTreeUnsafe); + this.map.putAll(inTreeUnsafe); } public void putReplaceAll(cElementalInstanceStackMap inContainerUnsafe) { - putReplaceAll(inContainerUnsafe.tree); + putReplaceAll(inContainerUnsafe.map); } //Put unify public cElementalInstanceStack putUnify(cElementalInstanceStack instance) { - return tree.put(instance.definition, instance.unifyIntoThis(tree.get(instance.definition))); + return map.put(instance.definition, instance.unifyIntoThis(map.get(instance.definition))); } public void putUnifyAll(cElementalInstanceStack... instances) { @@ -235,18 +242,18 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn } public void putUnifyAll(cElementalInstanceStackMap containerUnsafe) { - putUnifyAll(containerUnsafe.tree); + putUnifyAll(containerUnsafe.map); } //Getters public cElementalInstanceStack getInstance(iElementalDefinition def) { - return tree.get(def); + return map.get(def); } public String[] getElementalInfo() { - final String[] info = new String[tree.size() * 3]; + final String[] info = new String[map.size() * 3]; int i = 0; - for (cElementalInstanceStack instance : tree.values()) { + for (cElementalInstanceStack instance : map.values()) { info[i] = EnumChatFormatting.BLUE + instance.definition.getName(); info[i + 1] = EnumChatFormatting.AQUA + instance.definition.getSymbol(); info[i + 2] = "Amount " + EnumChatFormatting.GREEN + instance.amount; @@ -256,16 +263,16 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn } public cElementalInstanceStack[] values() { - return tree.values().toArray(new cElementalInstanceStack[0]); + return map.values().toArray(new cElementalInstanceStack[0]); } public iElementalDefinition[] keys() { - return tree.keySet().toArray(new iElementalDefinition[0]); + return map.keySet().toArray(new iElementalDefinition[0]); } public float getMass() { float mass = 0; - for (cElementalInstanceStack stack : tree.values()) { + for (cElementalInstanceStack stack : map.values()) { mass += stack.getMass(); } return mass; @@ -273,19 +280,19 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn //Tests public boolean containsDefinition(iElementalDefinition def) { - return tree.containsKey(def); + return map.containsKey(def); } public boolean containsInstance(cElementalInstanceStack inst) { - return tree.containsValue(inst); + return map.containsValue(inst); } public int size() { - return tree.size(); + return map.size(); } public boolean hasStacks() { - return tree.size() > 0; + return map.size() > 0; } //Tick Content @@ -295,7 +302,7 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn if (newThings == null) { instance.nextColor(); } else { - tree.remove(instance.definition); + map.remove(instance.definition); for (cElementalInstanceStack newInstance : newThings.values()) putUnify(newInstance); } @@ -309,7 +316,7 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn if (newThings == null) { instance.nextColor(); } else { - tree.remove(instance.definition); + map.remove(instance.definition); for (cElementalInstanceStack newInstance : newThings.values()) putUnify(newInstance); } @@ -336,9 +343,9 @@ public final class cElementalInstanceStackMap implements Comparable<cElementalIn public NBTTagCompound toNBT() { final NBTTagCompound nbt = new NBTTagCompound(); - nbt.setInteger("i", tree.size()); + nbt.setInteger("i", map.size()); int i = 0; - for (cElementalInstanceStack instance : tree.values()) + for (cElementalInstanceStack instance : map.values()) nbt.setTag(Integer.toString(i++), instance.toNBT()); return nbt; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java new file mode 100644 index 0000000000..eb105870d8 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java @@ -0,0 +1,326 @@ +package com.github.technus.tectech.elementalMatter.classes; + +import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; +import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; + +import java.util.Map; +import java.util.TreeMap; + +import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveDefinition.debug__; + +/** + * Created by danie_000 on 22.01.2017. + */ +public class cElementalMutableDefinitionStackMap implements Comparable<cElementalMutableDefinitionStackMap> {//TODO MAKE MUTABLE AF + protected Map<iElementalDefinition, cElementalDefinitionStack> map; + + //Constructors + Clone, all make a whole new OBJ. + public cElementalMutableDefinitionStackMap() {map=new TreeMap<>();} + + @Deprecated + public cElementalMutableDefinitionStackMap(iElementalDefinition... in) { + map=new TreeMap<>(); + for (iElementalDefinition definition : in) + map.put(definition, new cElementalDefinitionStack(definition, 1)); + } + + public cElementalMutableDefinitionStackMap(cElementalDefinitionStack... in) { + map=new TreeMap<>(); + for (cElementalDefinitionStack stack : in) + map.put(stack.definition, stack); + } + + public cElementalMutableDefinitionStackMap(Map<iElementalDefinition, cElementalDefinitionStack> in) { + this(true,in); + } + + public cElementalMutableDefinitionStackMap(boolean clone, Map<iElementalDefinition, cElementalDefinitionStack> in) { + if (clone) { + map = new TreeMap<>(); + for (cElementalDefinitionStack stack : in.values()) + map.put(stack.definition, stack); + } else { + map = in; + } + } + + @Override + protected Object clone() {//Equal to making new obj... + return Clone(); + } + + public cElementalMutableDefinitionStackMap Clone(){ + return new cElementalMutableDefinitionStackMap(map); + } + + public cElementalDefinitionStackMap immutable() { + return new cElementalDefinitionStackMap(this); + } + + public cElementalMutableDefinitionStackMap mutable() {return this;} + + @Deprecated + public Map<iElementalDefinition,cElementalDefinitionStack> getRawMap() { + return map; + } + + @Override + public int compareTo(cElementalMutableDefinitionStackMap o) { + if (map.size() != o.map.size()) return map.size() - o.map.size(); + cElementalDefinitionStack[] ofThis = values(), ofThat = o.values(); + for (int i = 0; i < ofThat.length; i++) { + int result = ofThis[i].compareTo(ofThat[i]); + if (result != 0) return result; + } + return 0; + } + + //Removers + public void clear() { + map.clear(); + } + + public cElementalDefinitionStack remove(iElementalDefinition def) { + return map.remove(def); + } + + @Deprecated + public cElementalDefinitionStack remove(iHasElementalDefinition has) { + return map.remove(has.getDefinition()); + } + + public void removeAll(iElementalDefinition... definitions) { + for (iElementalDefinition def : definitions) + map.remove(def); + } + + @Deprecated + private void removeAll(iHasElementalDefinition... hasElementals) { + for (iHasElementalDefinition has : hasElementals) + map.remove(has.getDefinition()); + } + + //Remove amounts + public boolean removeAmount(boolean testOnly, cElementalInstanceStack instance) { + final cElementalDefinitionStack target = map.get(instance.definition); + if (target == null) + return false; + if (testOnly) + return target.amount >= instance.amount; + else { + final int diff = target.amount - instance.amount; + if (diff > 0) { + map.put(target.definition, new cElementalDefinitionStack(target.definition, diff)); + return true; + } else if (diff == 0) { + map.remove(instance.definition); + return true; + } + } + return false; + } + + public boolean removeAmount(boolean testOnly, cElementalDefinitionStack stack) { + final cElementalDefinitionStack target = map.get(stack.definition); + if (target == null) + return false; + if (testOnly) + return target.amount >= stack.amount; + else { + final int diff = target.amount - stack.amount; + if (diff > 0) { + map.put(target.definition, new cElementalDefinitionStack(target.definition, diff)); + return true; + } else if (diff == 0) { + map.remove(stack.definition); + return true; + } + } + return false; + } + + @Deprecated + public boolean removeAmount(boolean testOnly, iElementalDefinition def) { + return removeAmount(testOnly, new cElementalDefinitionStack(def, 1)); + } + + public boolean removeAllAmounts(boolean testOnly, cElementalInstanceStack... instances) { + boolean test = true; + for (cElementalInstanceStack stack : instances) + test &= removeAmount(true, stack); + if (testOnly || !test) return test; + for (cElementalInstanceStack stack : instances) + removeAmount(false, stack); + return true; + } + + public boolean removeAllAmounts(boolean testOnly, cElementalDefinitionStack... stacks) { + boolean test = true; + for (cElementalDefinitionStack stack : stacks) + test &= removeAmount(true, stack); + if (testOnly || !test) return test; + for (cElementalDefinitionStack stack : stacks) + removeAmount(false, stack); + return true; + } + + @Deprecated + public boolean removeAllAmounts(boolean testOnly, iElementalDefinition... definitions) { + final cElementalDefinitionStack[] stacks = new cElementalDefinitionStack[definitions.length]; + for (int i = 0; i < stacks.length; i++) + stacks[i] = new cElementalDefinitionStack(definitions[i], 1); + return removeAllAmounts(testOnly, stacks); + } + + public boolean removeAllAmounts(boolean testOnly, cElementalMutableDefinitionStackMap container) { + return removeAllAmounts(testOnly, container.values()); + } + + public boolean removeAllAmounts(boolean testOnly, cElementalInstanceStackMap container) { + return removeAllAmounts(testOnly, container.values()); + } + + //Put replace + public cElementalDefinitionStack putReplace(cElementalDefinitionStack defStackUnsafe) { + return map.put(defStackUnsafe.definition, defStackUnsafe); + } + + public void putReplaceAll(cElementalDefinitionStack... defStacks) { + for (cElementalDefinitionStack defStack : defStacks) + this.map.put(defStack.definition, defStack); + } + + private void putReplaceAll(Map<iElementalDefinition, cElementalDefinitionStack> inTreeUnsafe) { + this.map.putAll(inTreeUnsafe); + } + + public void putReplaceAll(cElementalMutableDefinitionStackMap inContainerUnsafe) { + putReplaceAll(inContainerUnsafe.map); + } + + //Put unify + public cElementalDefinitionStack putUnify(cElementalDefinitionStack def) { + return map.put(def.definition, def.unifyIntoNew(map.get(def.definition))); + } + + @Deprecated + public cElementalDefinitionStack putUnify(iElementalDefinition def) { + return putUnify(new cElementalDefinitionStack(def, 1)); + } + + public void putUnifyAll(cElementalDefinitionStack... defs) { + for (cElementalDefinitionStack def : defs) + putUnify(def); + } + + @Deprecated + public void putUnifyAll(iElementalDefinition... defs) { + for (iElementalDefinition def : defs) + putUnify(def); + } + + private void putUnifyAll(Map<iElementalDefinition, cElementalDefinitionStack> inTreeUnsafe) { + for (cElementalDefinitionStack in : inTreeUnsafe.values()) + putUnify(in); + } + + public void putUnifyAll(cElementalMutableDefinitionStackMap containerUnsafe) { + putUnifyAll(containerUnsafe.map); + } + + //Getters + public cElementalDefinitionStack getDefinitionStack(iElementalDefinition def) { + return map.get(def); + } + + public String[] getElementalInfo() { + final String[] info = new String[map.size() * 3]; + int i = 0; + for (cElementalDefinitionStack defStack : map.values()) { + info[i] = EnumChatFormatting.BLUE + defStack.definition.getName(); + info[i + 1] = EnumChatFormatting.AQUA + defStack.definition.getSymbol(); + info[i + 2] = "Amount " + EnumChatFormatting.GREEN + defStack.amount; + i += 3; + } + return info; + } + + public cElementalDefinitionStack[] values() { + return map.values().toArray(new cElementalDefinitionStack[0]); + } + + public iElementalDefinition[] keys() { + return map.keySet().toArray(new iElementalDefinition[0]); + } + + //Tests + public boolean containsDefinition(iElementalDefinition def) { + return map.containsKey(def); + } + + public boolean containsDefinitionStack(cElementalDefinitionStack inst) { + return map.containsValue(inst); + } + + public int size() { + return map.size(); + } + + public boolean hasStacks() { + return map.size() > 0; + } + + //NBT + public NBTTagCompound getInfoNBT() { + final NBTTagCompound nbt = new NBTTagCompound(); + final String[] info = getElementalInfo(); + nbt.setInteger("i", info.length); + for (int i = 0; i < info.length; i++) + nbt.setString(Integer.toString(i), info[i]); + return nbt; + } + + public static String[] infoFromNBT(NBTTagCompound nbt) { + final String[] strings = new String[nbt.getInteger("i")]; + for (int i = 0; i < strings.length; i++) + strings[i] = nbt.getString(Integer.toString(i)); + return strings; + } + + public NBTTagCompound toNBT() { + final NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("i", map.size()); + int i = 0; + for (cElementalDefinitionStack defStack : map.values()) + nbt.setTag(Integer.toString(i++), defStack.toNBT()); + return nbt; + } + + public static cElementalMutableDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { + final cElementalDefinitionStack[] defStacks = new cElementalDefinitionStack[nbt.getInteger("i")]; + for (int i = 0; i < defStacks.length; i++) { + defStacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i))); + if (defStacks[i].definition.equals(debug__)) + throw new tElementalException("Something went Wrong"); + } + return new cElementalMutableDefinitionStackMap(defStacks); + } + + //stackUp + @Deprecated + public static cElementalMutableDefinitionStackMap stackUpTree(iElementalDefinition... in) { + final cElementalMutableDefinitionStackMap inTree = new cElementalMutableDefinitionStackMap(); + for (iElementalDefinition def : in) { + inTree.putUnify(new cElementalDefinitionStack(def, 1)); + } + return inTree; + } + + public static cElementalMutableDefinitionStackMap stackUpTree(cElementalDefinitionStack... in) { + final cElementalMutableDefinitionStackMap inTree = new cElementalMutableDefinitionStackMap(); + inTree.putUnifyAll(in); + return inTree; + } +} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java index 2e489835e2..8aaceee368 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java @@ -34,7 +34,7 @@ public abstract class cElementalPrimitive extends cElementalDefinition { public final byte color; //-1/-2/-3 anti matter generations, +1/+2/+3 matter generations, 0 self anti public final byte type; - private cElementalPrimitive anti; + private cElementalPrimitive anti;//IMMUTABLE private cElementalDecay[] elementalDecays; private byte naturalDecayInstant; private byte energeticDecayInstant; @@ -120,7 +120,7 @@ public abstract class cElementalPrimitive extends cElementalDefinition { } @Override - public final cElementalDefinitionStackMap getSubParticles() { + public final cElementalMutableDefinitionStackMap getSubParticles() { return null; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipe.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipe.java index 5e87924be7..c8222ef583 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipe.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipe.java @@ -7,17 +7,17 @@ import net.minecraftforge.fluids.FluidStack; * Created by Tec on 02.03.2017. */ public class rElementalRecipe implements Comparable<rElementalRecipe> { - public final cElementalDefinitionStackMap inEM; - public final cElementalDefinitionStackMap outEM; + public final cElementalMutableDefinitionStackMap inEM; + public final cElementalMutableDefinitionStackMap outEM; public final ItemStack[] outItems; public final FluidStack[] outFluids; public Object[] extension = null; public final short comparableID; public rElementalRecipe( - cElementalDefinitionStackMap inEMnotNull, + cElementalMutableDefinitionStackMap inEMnotNull, short comparableID, - cElementalDefinitionStackMap outEM, + cElementalMutableDefinitionStackMap outEM, ItemStack[] outItems, FluidStack[] outFluids) { this.inEM = inEMnotNull; diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipeTree.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipeTree.java index c0a1dc4555..0834d2e49e 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipeTree.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipeTree.java @@ -8,7 +8,7 @@ import java.util.TreeMap; */ public class rElementalRecipeTree { //Multimap for multiple recipes from the same thing - you know parameters might differ the output - private TreeMap<cElementalDefinitionStackMap, Map<Short,rElementalRecipe> > recipes = new TreeMap<>(); + private TreeMap<cElementalMutableDefinitionStackMap, Map<Short,rElementalRecipe> > recipes = new TreeMap<>(); public rElementalRecipeTree() {} @@ -26,33 +26,33 @@ public class rElementalRecipeTree { put(recipe); } - public Map<Short,rElementalRecipe> findExact(cElementalDefinitionStackMap in) { + public Map<Short,rElementalRecipe> findExact(cElementalMutableDefinitionStackMap in) { return recipes.get(in); } - public Map<Short,rElementalRecipe> findTopMatch(cElementalDefinitionStackMap in) { - for (cElementalDefinitionStackMap requirement : recipes.descendingKeySet()) + public Map<Short,rElementalRecipe> findTopMatch(cElementalMutableDefinitionStackMap in) { + for (cElementalMutableDefinitionStackMap requirement : recipes.descendingKeySet()) if (in.removeAllAmounts(true, requirement)) return recipes.get(requirement); return null; } public Map<Short,rElementalRecipe> findTopMatch(cElementalInstanceStackMap in, boolean testOnly) { - for (cElementalDefinitionStackMap requirement : recipes.descendingKeySet()) + for (cElementalMutableDefinitionStackMap requirement : recipes.descendingKeySet()) if (in.removeAllAmounts(testOnly, requirement)) return recipes.get(requirement); return null; } - public Map<Short,rElementalRecipe> findBottomMatch(cElementalDefinitionStackMap in) { - for (cElementalDefinitionStackMap requirement : recipes.keySet()) + public Map<Short,rElementalRecipe> findBottomMatch(cElementalMutableDefinitionStackMap in) { + for (cElementalMutableDefinitionStackMap requirement : recipes.keySet()) if (in.removeAllAmounts(true, requirement)) return recipes.get(requirement); return null; } public Map<Short,rElementalRecipe> findBottomMatch(cElementalInstanceStackMap in, boolean testOnly) { - for (cElementalDefinitionStackMap requirement : recipes.keySet()) + for (cElementalMutableDefinitionStackMap requirement : recipes.keySet()) if (in.removeAllAmounts(testOnly, requirement)) return recipes.get(requirement); return null; diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java index 5b392dc820..d369115568 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java @@ -11,7 +11,7 @@ import net.minecraftforge.fluids.FluidStack; import java.util.*; -import static com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap.stackUpTree; +import static com.github.technus.tectech.elementalMatter.classes.cElementalMutableDefinitionStackMap.stackUpTree; import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition.boson_Y__; import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition.deadEnd; @@ -47,7 +47,8 @@ public final class dAtomDefinition extends cElementalDefinition { //private final ItemStack itemThing; public final int isotope; public final int element; - private final cElementalDefinitionStackMap elementalStacks; + + private final cElementalMutableDefinitionStackMap elementalStacks;//CLONED I/O //stable is rawLifeTime>=10^9 @@ -56,29 +57,29 @@ public final class dAtomDefinition extends cElementalDefinition { @Deprecated public dAtomDefinition(iElementalDefinition... things) throws tElementalException { - this(true, stackUpTree(things)); + this(false, true, stackUpTree(things)); } @Deprecated private dAtomDefinition(boolean check, iElementalDefinition... things) throws tElementalException { - this(check, stackUpTree(things)); + this(false, check, stackUpTree(things)); } public dAtomDefinition(cElementalDefinitionStack... things) throws tElementalException { - this(true, stackUpTree(things)); + this(false, true, stackUpTree(things)); } private dAtomDefinition(boolean check, cElementalDefinitionStack... things) throws tElementalException { - this(check, stackUpTree(things)); + this(false, check, stackUpTree(things)); } - public dAtomDefinition(cElementalDefinitionStackMap things) throws tElementalException { - this(true, things); + public dAtomDefinition(cElementalMutableDefinitionStackMap things) throws tElementalException { + this(true, true, things); } - private dAtomDefinition(boolean check, cElementalDefinitionStackMap things) throws tElementalException { + private dAtomDefinition(boolean clone, boolean check, cElementalMutableDefinitionStackMap things) throws tElementalException { if (check && !canTheyBeTogether(things)) throw new tElementalException("Atom Definition error"); - this.elementalStacks = things; + this.elementalStacks = clone?things.Clone():things; float mass = 0; int cLeptons = 0; @@ -190,7 +191,7 @@ public final class dAtomDefinition extends cElementalDefinition { return rawLifeTime; } - private static boolean canTheyBeTogether(cElementalDefinitionStackMap stacks) { + private static boolean canTheyBeTogether(cElementalMutableDefinitionStackMap stacks) { boolean nuclei = false; for (cElementalDefinitionStack stack : stacks.values()) if (stack.definition instanceof dHadronDefinition) { @@ -273,8 +274,8 @@ public final class dAtomDefinition extends cElementalDefinition { } @Override - public cElementalDefinitionStackMap getSubParticles() { - return elementalStacks; + public cElementalMutableDefinitionStackMap getSubParticles() { + return elementalStacks.Clone(); } @Override @@ -300,7 +301,7 @@ public final class dAtomDefinition extends cElementalDefinition { } private cElementalDecay[] Emmision(cElementalDefinitionStack emit) { - final cElementalDefinitionStackMap tree = new cElementalDefinitionStackMap(elementalStacks.values()); + final cElementalMutableDefinitionStackMap tree = new cElementalMutableDefinitionStackMap(elementalStacks.values()); if (tree.removeAmount(false, emit)) { try { return new cElementalDecay[]{ @@ -316,7 +317,7 @@ public final class dAtomDefinition extends cElementalDefinition { } private cElementalDecay[] alphaDecay() { - final cElementalDefinitionStackMap tree = new cElementalDefinitionStackMap(elementalStacks.values()); + final cElementalMutableDefinitionStackMap tree = new cElementalMutableDefinitionStackMap(elementalStacks.values()); if (tree.removeAllAmounts(false, dHadronDefinition.hadron_n2, dHadronDefinition.hadron_p2)) { try { return new cElementalDecay[]{ @@ -332,7 +333,7 @@ public final class dAtomDefinition extends cElementalDefinition { } private cElementalDecay[] MbetaDecay() { - final cElementalDefinitionStackMap tree = new cElementalDefinitionStackMap(elementalStacks.values()); + final cElementalMutableDefinitionStackMap tree = new cElementalMutableDefinitionStackMap(elementalStacks.values()); if (tree.removeAmount(false, dHadronDefinition.hadron_n1)) { try { tree.putUnify(dHadronDefinition.hadron_p1); @@ -349,7 +350,7 @@ public final class dAtomDefinition extends cElementalDefinition { } private cElementalDecay[] PbetaDecay() { - final cElementalDefinitionStackMap tree = new cElementalDefinitionStackMap(elementalStacks.values()); + final cElementalMutableDefinitionStackMap tree = new cElementalMutableDefinitionStackMap(elementalStacks.values()); if (tree.removeAmount(false, dHadronDefinition.hadron_p1)) { try { tree.putUnify(dHadronDefinition.hadron_n1); @@ -411,10 +412,10 @@ public final class dAtomDefinition extends cElementalDefinition { @Override public iElementalDefinition getAnti() { - cElementalDefinitionStack[] elementalStacks = this.elementalStacks.values(); - cElementalDefinitionStack[] antiElements = new cElementalDefinitionStack[elementalStacks.length]; + cElementalDefinitionStack[] antiStacks = this.elementalStacks.values(); + cElementalDefinitionStack[] antiElements = new cElementalDefinitionStack[antiStacks.length]; for (int i = 0; i < antiElements.length; i++) { - antiElements[i] = new cElementalDefinitionStack(elementalStacks[i].definition.getAnti(), elementalStacks[i].amount); + antiElements[i] = new cElementalDefinitionStack(antiStacks[i].definition.getAnti(), antiStacks[i].amount); } try { return new dAtomDefinition(false, antiElements); diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java index 17cec96169..b3c6c910d8 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java @@ -17,10 +17,10 @@ public class dComplexAspectDefinition extends cElementalDefinition { private static final byte nbtType = (byte) 'c'; - private final cElementalDefinitionStackMap aspectStacks; + private final cElementalMutableDefinitionStackMap aspectStacks; public dComplexAspectDefinition(cElementalDefinitionStack[] tree) throws tElementalException{//todo constructors - aspectStacks=new cElementalDefinitionStackMap(); + aspectStacks=new cElementalMutableDefinitionStackMap(); } @Override @@ -81,7 +81,7 @@ public class dComplexAspectDefinition extends cElementalDefinition { } @Override - public cElementalDefinitionStackMap getSubParticles() { + public cElementalMutableDefinitionStackMap getSubParticles() { return aspectStacks; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java index ed91c43d32..dadd3e7c79 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import java.util.Map; import java.util.TreeMap; -import static com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap.stackUpTree; +import static com.github.technus.tectech.elementalMatter.classes.cElementalMutableDefinitionStackMap.stackUpTree; import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition.boson_Y__; /** @@ -37,7 +37,7 @@ public final class dHadronDefinition extends cElementalDefinition { public final byte type; //private final FluidStack fluidThing; //private final ItemStack itemThing; - private final cElementalDefinitionStackMap quarkStacks; + private final cElementalMutableDefinitionStackMap quarkStacks; @Deprecated public dHadronDefinition(eQuarkDefinition... quarks) throws tElementalException { @@ -57,11 +57,11 @@ public final class dHadronDefinition extends cElementalDefinition { this(check, stackUpTree(quarks)); } - public dHadronDefinition(cElementalDefinitionStackMap quarks) throws tElementalException { + public dHadronDefinition(cElementalMutableDefinitionStackMap quarks) throws tElementalException { this(true, quarks); } - private dHadronDefinition(boolean check, cElementalDefinitionStackMap quarks) throws tElementalException { + private dHadronDefinition(boolean check, cElementalMutableDefinitionStackMap quarks) throws tElementalException { if (check && !canTheyBeTogether(quarks)) throw new tElementalException("Hadron Definition error"); this.quarkStacks = quarks; @@ -97,7 +97,7 @@ public final class dHadronDefinition extends cElementalDefinition { } //public but u can just try{}catch(){} the constructor it still calls this method - private static boolean canTheyBeTogether(cElementalDefinitionStackMap stacks) { + private static boolean canTheyBeTogether(cElementalMutableDefinitionStackMap stacks) { int amount = 0; for (cElementalDefinitionStack quarks : stacks.values()) { if (!(quarks.definition instanceof eQuarkDefinition)) return false; @@ -155,7 +155,7 @@ public final class dHadronDefinition extends cElementalDefinition { } @Override - public cElementalDefinitionStackMap getSubParticles() { + public cElementalMutableDefinitionStackMap getSubParticles() { return quarkStacks; } @@ -250,7 +250,7 @@ public final class dHadronDefinition extends cElementalDefinition { @Override public iElementalDefinition getAnti() { - cElementalDefinitionStackMap anti = new cElementalDefinitionStackMap(); + cElementalMutableDefinitionStackMap anti = new cElementalMutableDefinitionStackMap(); for (cElementalDefinitionStack stack : quarkStacks.values()) anti.putReplace(new cElementalDefinitionStack(stack.definition.getAnti(), stack.amount)); try { diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java index 90154a3c5a..cff7bd9697 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java @@ -1,7 +1,7 @@ package com.github.technus.tectech.elementalMatter.interfaces; import com.github.technus.tectech.elementalMatter.classes.cElementalDecay; -import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap; +import com.github.technus.tectech.elementalMatter.classes.cElementalMutableDefinitionStackMap; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; @@ -37,7 +37,7 @@ public interface iElementalDefinition extends Comparable<iElementalDefinition> { float getRawLifeTime();//defined in static fields or generated - cElementalDefinitionStackMap getSubParticles();//contents... null if none + cElementalMutableDefinitionStackMap getSubParticles();//contents... null if none ItemStack materializesIntoItem(); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java index fbde43068e..579b3c8f3a 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java @@ -11,19 +11,14 @@ import com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition; import com.github.technus.tectech.elementalMatter.definitions.dHadronDefinition; import com.github.technus.tectech.elementalMatter.definitions.eLeptonDefinition; import com.github.technus.tectech.thing.block.QuantumGlassBlock; -import com.github.technus.tectech.thing.casing.GT_Container_CasingsTT; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.objects.GT_RenderedTexture; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; |