aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2022-01-15 00:16:05 +0100
committerTec <daniel112092@gmail.com>2022-01-15 19:19:10 +0100
commitdee0db40e8be451b69bc889dca009267f176b758 (patch)
treef2abcee916b5762607cd2b0b7e5c912fdcb245b7 /src
parente84ef7e2100575e7941a6329edc56dafa261aee7 (diff)
downloadGT5-Unofficial-dee0db40e8be451b69bc889dca009267f176b758.tar.gz
GT5-Unofficial-dee0db40e8be451b69bc889dca009267f176b758.tar.bz2
GT5-Unofficial-dee0db40e8be451b69bc889dca009267f176b758.zip
Cleanup EM maps
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java27
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java4
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java42
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/ePrimalAspectDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java6
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java4
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalInstanceStackMap.java565
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalMutableDefinitionStackMap.java278
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalStackMap.java181
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/commands/GiveEM.java6
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/decay/cElementalDecay.java (renamed from src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecay.java)22
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/decay/cElementalDecayResult.java (renamed from src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecayResult.java)8
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalContainer.java12
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalInstanceContainer.java10
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalConstantStackMap.java58
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalDefinitionStackMap.java (renamed from src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDefinitionStackMap.java)43
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalInstanceStackMap.java214
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalStackMap.java50
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapR.java187
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapRW.java130
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/recipes/rElementalRecipe.java (renamed from src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/rElementalRecipe.java)15
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/recipes/rElementalRecipeMap.java (renamed from src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/rElementalRecipeMap.java)19
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalDefinitionStack.java35
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalInstanceStack.java54
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iElementalStack.java (renamed from src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iHasElementalDefinition.java)9
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalDefinition.java10
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java6
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java6
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidDequantizationInfo.java14
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidQuantizationInfo.java14
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemDequantizationInfo.java14
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemQuantizationInfo.java16
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictDequantizationInfo.java18
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictQuantizationInfo.java18
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/bTransformationInfo.java16
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dAtomDefinition.java194
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dHadronDefinition.java68
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/cPrimitiveDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eBosonDefinition.java4
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eLeptonDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eNeutrinoDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eQuarkDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/recipe/TT_recipe.java30
-rw-r--r--src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java14
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/DebugElementalInstanceContainer_EM.java12
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionContainer_EM.java18
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionScanStorage_EM.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java8
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputElemental.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java36
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java8
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java6
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java14
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java16
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java8
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java6
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java6
63 files changed, 1091 insertions, 1510 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java
index fd039a0630..e027c83107 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java
@@ -1,9 +1,8 @@
package com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turret;
-import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles.projectileEM;
import com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turretbase.TileTurretBaseEM;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.thing.item.DebugElementalInstanceContainer_EM;
import net.minecraft.entity.Entity;
@@ -16,7 +15,6 @@ import openmodularturrets.tileentity.turrets.TurretHead;
import openmodularturrets.util.TurretHeadUtil;
import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT;
-import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT_DIMINISHED;
/**
* Created by Bass on 27/07/2017.
@@ -54,7 +52,7 @@ public class TileTurretHeadEM extends TurretHead{
@Override
public boolean requiresAmmo() {
- return hatchContentPointer == null || !hatchContentPointer.hasStacks();
+ return hatchContentPointer == null || hatchContentPointer.isEmpty();
}
@Override
@@ -69,20 +67,15 @@ public class TileTurretHeadEM extends TurretHead{
@Override
public final TurretProjectile createProjectile(World world, Entity target, ItemStack ammo) {
- while(hatchContentPointer!=null && hatchContentPointer.hasStacks()) {
- cElementalInstanceStack stack = hatchContentPointer.get(TecTech.RANDOM.nextInt(hatchContentPointer.size()));
- if(stack.amount<AVOGADRO_CONSTANT_DIMINISHED){
- TecTech.anomalyHandler.addAnomaly(this,hatchContentPointer.remove(stack.definition).getMass());//todo reduce
- continue;
- }
- hatchContentPointer.removeAmount(false, stack.definition.getStackForm(AVOGADRO_CONSTANT));
- stack=stack.clone();
- stack.amount = AVOGADRO_CONSTANT;
- return new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), stack);
+ if (hatchContentPointer == null || hatchContentPointer.isEmpty()) {
+ return new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), null);
}
- return new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), null);
-
- //todo make the recipe require some overflow hatches
+ cElementalInstanceStack stack = hatchContentPointer.getRandom();
+ double amount = Math.min(AVOGADRO_CONSTANT,stack.amount);
+ hatchContentPointer.removeAmount(false, stack.definition.getStackForm(AVOGADRO_CONSTANT));
+ stack=stack.clone();
+ stack.amount = amount;
+ return new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), stack);
}
@Override
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java
index a31ba4ef2c..a5d64fb886 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turretbase;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental;
import cpw.mods.fml.common.Optional;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -63,6 +63,6 @@ public class TileTurretBaseEM extends TurretBaseTierFiveTileEntity {
private cElementalInstanceStackMap getFromHatch(GT_MetaTileEntity_Hatch_InputElemental hatch) {
hatch.updateTexture((byte) 8,(byte) 4);
- return hatch.getContainerHandler();
+ return hatch.getContentHandler();
}
}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java
index 8f570c1247..98ad5bbf63 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java
@@ -3,8 +3,8 @@ package com.github.technus.tectech.compatibility.thaumcraft.elementalMatter.defi
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.compatibility.thaumcraft.elementalMatter.transformations.AspectDefinitionCompat;
import com.github.technus.tectech.util.Util;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalDefinition;
@@ -18,7 +18,7 @@ import net.minecraft.nbt.NBTTagCompound;
import java.util.ArrayList;
import static com.github.technus.tectech.loader.TecTechConfig.DEBUG_MODE;
-import static com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay.noDecay;
+import static com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay.noDecay;
import static com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_scanner.*;
import static net.minecraft.util.StatCollector.translateToLocal;
@@ -31,37 +31,27 @@ public final class dComplexAspectDefinition extends cElementalDefinition {
private static final byte nbtType = (byte) 'c';
- private final cElementalDefinitionStackMap aspectStacks;
-
- @Deprecated
- public dComplexAspectDefinition(cElementalDefinition... aspects) throws tElementalException {
- this(true, new cElementalDefinitionStackMap(aspects));
- }
-
- @Deprecated
- private dComplexAspectDefinition(boolean check, cElementalDefinition... aspects) throws tElementalException {
- this(check, new cElementalDefinitionStackMap(aspects));
- }
+ private final cElementalConstantStackMap aspectStacks;
public dComplexAspectDefinition(cElementalDefinitionStack... aspects) throws tElementalException {
- this(true, new cElementalDefinitionStackMap(aspects));
+ this(true, new cElementalConstantStackMap(aspects));
}
private dComplexAspectDefinition(boolean check, cElementalDefinitionStack... aspects) throws tElementalException {
- this(check, new cElementalDefinitionStackMap(aspects));
+ this(check, new cElementalConstantStackMap(aspects));
}
- public dComplexAspectDefinition(cElementalDefinitionStackMap aspects) throws tElementalException {
+ public dComplexAspectDefinition(cElementalConstantStackMap aspects) throws tElementalException {
this(true, aspects);
}
- private dComplexAspectDefinition(boolean check, cElementalDefinitionStackMap aspects) throws tElementalException {
+ private dComplexAspectDefinition(boolean check, cElementalConstantStackMap aspects) throws tElementalException {
if (check && !canTheyBeTogether(aspects)) {
throw new tElementalException("Hadron Definition error");
}
aspectStacks = aspects;
float mass = 0;
- for (cElementalDefinitionStack stack : aspects.values()) {
+ for (cElementalDefinitionStack stack : aspects.valuesToArray()) {
mass += stack.getMass();
}
this.mass = mass;
@@ -69,9 +59,9 @@ public final class dComplexAspectDefinition 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(cElementalConstantStackMap stacks) {
long amount = 0;
- for (cElementalDefinitionStack aspects : stacks.values()) {
+ for (cElementalDefinitionStack aspects : stacks.valuesToArray()) {
if (!(aspects.definition instanceof dComplexAspectDefinition) && !(aspects.definition instanceof ePrimalAspectDefinition)) {
return false;
}
@@ -97,7 +87,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition {
@Override
public String getSymbol() {
StringBuilder symbol = new StringBuilder(8);
- for (cElementalDefinitionStack aspect : aspectStacks.values()) {
+ for (cElementalDefinitionStack aspect : aspectStacks.valuesToArray()) {
if (aspect.definition instanceof ePrimalAspectDefinition) {
for (int i = 0; i < aspect.amount; i++) {
symbol.append(aspect.definition.getSymbol());
@@ -116,7 +106,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition {
@Override
public String getShortSymbol() {
StringBuilder symbol = new StringBuilder(8);
- for (cElementalDefinitionStack aspect : aspectStacks.values()) {
+ for (cElementalDefinitionStack aspect : aspectStacks.valuesToArray()) {
if (aspect.definition instanceof ePrimalAspectDefinition) {
for (int i = 0; i < aspect.amount; i++) {
symbol.append(aspect.definition.getShortSymbol());
@@ -137,10 +127,10 @@ public final class dComplexAspectDefinition extends cElementalDefinition {
return getNbtTagCompound(nbtType, aspectStacks);
}
- public static NBTTagCompound getNbtTagCompound(byte nbtType, cElementalDefinitionStackMap aspectStacks) {
+ public static NBTTagCompound getNbtTagCompound(byte nbtType, cElementalConstantStackMap aspectStacks) {
NBTTagCompound nbt = new NBTTagCompound();
nbt.setByte("t", nbtType);
- cElementalDefinitionStack[] quarkStacksValues = aspectStacks.values();
+ cElementalDefinitionStack[] quarkStacksValues = aspectStacks.valuesToArray();
nbt.setInteger("i", quarkStacksValues.length);
for (int i = 0; i < quarkStacksValues.length; i++) {
nbt.setTag(Integer.toString(i), quarkStacksValues[i].toNBT());
@@ -189,7 +179,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition {
}
@Override
- public cElementalDefinitionStackMap getSubParticles() {
+ public cElementalConstantStackMap getSubParticles() {
return aspectStacks;
}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/ePrimalAspectDefinition.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/ePrimalAspectDefinition.java
index 9c6d107bff..5db067a552 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/ePrimalAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/ePrimalAspectDefinition.java
@@ -2,7 +2,7 @@ package com.github.technus.tectech.compatibility.thaumcraft.elementalMatter.defi
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
-import static com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay.noDecay;
+import static com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay.noDecay;
import static net.minecraft.util.StatCollector.translateToLocal;
/**
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
index c11a68b5d0..c939f10d6b 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
@@ -2,7 +2,7 @@ package com.github.technus.tectech.compatibility.thaumcraft.thing.metaTileEntity
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.structure.Structure;
import com.github.technus.tectech.mechanics.structure.adders.IHatchAdder;
@@ -94,12 +94,12 @@ public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_
return false;
}
- cElementalInstanceStackMap inputHatchContainer = eInputHatches.get(0).getContainerHandler();
+ cElementalInstanceStackMap inputHatchContainer = eInputHatches.get(0).getContentHandler();
if (inputHatchContainer == null || !inputHatchContainer.hasStacks()) {
return false;
}
- cElementalInstanceStack stack = inputHatchContainer.get(TecTech.RANDOM.nextInt(inputHatchContainer.size()));
+ cElementalInstanceStack stack = inputHatchContainer.getRandom();
if (stack.amount < AVOGADRO_CONSTANT_DIMINISHED) {
cleanStackEM_EM(inputHatchContainer.remove(stack.definition));
mEUt = (int) -V[6];
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
index 74dff47aa4..62ac339155 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
@@ -3,7 +3,7 @@ package com.github.technus.tectech.compatibility.thaumcraft.thing.metaTileEntity
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.compatibility.thaumcraft.elementalMatter.definitions.ePrimalAspectDefinition;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
import com.github.technus.tectech.mechanics.structure.Structure;
@@ -108,7 +108,7 @@ public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_Mu
stopMachine();
return;
}
- eOutputHatches.get(0).getContainerHandler().putUnifyAll(outputEM[0]);
+ eOutputHatches.get(0).getContentHandler().putUnifyAll(outputEM[0]);
outputEM = null;
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalInstanceStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalInstanceStackMap.java
deleted file mode 100644
index e1fdc6a553..0000000000
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalInstanceStackMap.java
+++ /dev/null
@@ -1,565 +0,0 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
-
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
-import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.EnumChatFormatting;
-
-import java.util.*;
-
-import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT;
-import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT_UNCERTAINTY;
-import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.cPrimitiveDefinition.nbtE__;
-import static com.github.technus.tectech.util.DoubleCount.add;
-import static com.github.technus.tectech.util.DoubleCount.sub;
-
-/**
- * Created by danie_000 on 22.01.2017.
- */
-public final class cElementalInstanceStackMap implements Comparable<cElementalInstanceStackMap> {
- TreeMap<iElementalDefinition, cElementalInstanceStack> map;
-
- //Constructors
- public cElementalInstanceStackMap() {
- map = new TreeMap<>();
- }
-
- public cElementalInstanceStackMap(cElementalInstanceStack... inSafe) {
- this(true, inSafe);
- }
-
- public cElementalInstanceStackMap(boolean clone, cElementalInstanceStack... in) {
- map = new TreeMap<>();
- if (clone) {
- cElementalInstanceStack[] stacks=new cElementalInstanceStack[in.length];
- for(int i=0;i<stacks.length;i++) {
- stacks[i] = in[i].clone();
- }
- putUnifyAll(stacks);
- } else {
- putUnifyAll(in);
- }
- }
-
- @Deprecated
- private cElementalInstanceStackMap(TreeMap<iElementalDefinition, cElementalInstanceStack> inSafe) {
- this(true, inSafe);
- }
-
- @Deprecated
- private cElementalInstanceStackMap(boolean clone, TreeMap<iElementalDefinition, cElementalInstanceStack> in) {
- if (clone) {
- map = new TreeMap<>();
- for(cElementalInstanceStack stack:in.values()) {
- putUnify(stack.clone());
- }
- } else {
- map = in;
- }
- }
-
- public cElementalInstanceStackMap(cElementalInstanceStackMap inSafe) {
- this(true, inSafe.map);
- }
-
- public cElementalInstanceStackMap(boolean copy, cElementalInstanceStackMap in) {
- this(copy, in.map);
- }
-
- @Override
- public cElementalInstanceStackMap clone() {
- return new cElementalInstanceStackMap(map);
- }
-
- public cElementalMutableDefinitionStackMap toDefinitionMapForComparison() {
- cElementalDefinitionStack[] list = new cElementalDefinitionStack[map.size()];
- int i = 0;
- for (cElementalInstanceStack stack : map.values()) {
- list[i++] = new cElementalDefinitionStack(stack.definition, stack.amount);
- }
- return new cElementalMutableDefinitionStackMap(list);
- }
-
- //@Deprecated
- //public cElementalStackMap toDefinitionMap(boolean mutable) {
- // TreeMap<iElementalDefinition, cElementalDefinitionStack> newMap = new TreeMap<>();
- // for (cElementalInstanceStack stack : map.values()) {
- // newMap.put(stack.definition, new cElementalDefinitionStack(stack.definition, stack.amount));
- // }
- // if (mutable) {
- // return new cElementalMutableDefinitionStackMap(newMap);
- // }
- // return new cElementalDefinitionStackMap(newMap);
- //}
-
- @Deprecated
- public Map<iElementalDefinition, cElementalInstanceStack> getRawMap() {
- return map;
- }
-
- public Set<Map.Entry<iElementalDefinition, cElementalInstanceStack>> getEntrySet() {
- return map.entrySet();
- }
-
-
- //Removers
- public void clear() {
- map.clear();
- }
-
- public cElementalInstanceStack remove(iElementalDefinition def) {
- return map.remove(def);
- }
-
- @Deprecated
- public cElementalInstanceStack 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... hasElementalDefinition) {
- for (iHasElementalDefinition has : hasElementalDefinition) {
- map.remove(has.getDefinition());
- }
- }
-
- //Remove amounts
- public boolean removeAmount(boolean testOnly, cElementalInstanceStack instance) {
- cElementalInstanceStack target = map.get(instance.definition);
- if (target == null) {
- return false;
- }
- if (testOnly) {
- return target.amount >= instance.amount;
- } else {
- double diff = sub(target.amount,instance.amount);
- if (diff > 0) {
- target.amount = diff;
- return true;
- } else if (diff == 0) {
- map.remove(instance.definition);
- return true;
- }
- }
- return false;
- }
-
- public boolean removeAmount(boolean testOnly, iHasElementalDefinition stack) {
- cElementalInstanceStack target = map.get(stack.getDefinition());
- if (target == null) {
- return false;
- }
- if (testOnly) {
- return target.amount >= stack.getAmount();
- } else {
- double diff = sub(target.amount,stack.getAmount());
- if (diff > 0) {
- target.amount = diff;
- return true;
- } else if (diff == 0) {
- map.remove(stack.getDefinition());
- return true;
- }
- }
- return false;
- }
-
- @Deprecated
- public boolean removeAmount(boolean testOnly, iElementalDefinition def) {
- return removeAmount(testOnly, new cElementalDefinitionStack(def, 1D));
- }
-
- 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, iHasElementalDefinition... stacks) {
- boolean test = true;
- for (iHasElementalDefinition stack : stacks) {
- test &= removeAmount(true, stack);
- }
- if (testOnly || !test) {
- return test;
- }
- for (iHasElementalDefinition stack : stacks) {
- removeAmount(false, stack);
- }
- return true;
- }
-
- @Deprecated
- public boolean removeAllAmounts(boolean testOnly, iElementalDefinition... definitions) {
- 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, cElementalStackMap container) {
- boolean test=true;
- for (Map.Entry<iElementalDefinition, cElementalDefinitionStack> entry : container.map.entrySet()) {
- test &= removeAmount(true, entry.getValue());
- }
- if (testOnly || !test) {
- return test;
- }
- for (Map.Entry<iElementalDefinition, cElementalDefinitionStack> entry : container.map.entrySet()) {
- removeAmount(false, entry.getValue());
- }
- return true;
- }
-
- public boolean removeAllAmounts(boolean testOnly, cElementalInstanceStackMap container) {
- boolean test=true;
- for (Map.Entry<iElementalDefinition, cElementalInstanceStack> entry : container.map.entrySet()) {
- test &= removeAmount(true, entry.getValue());
- }
- if (testOnly || !test) {
- return test;
- }
- for (Map.Entry<iElementalDefinition, cElementalInstanceStack> entry : container.map.entrySet()) {
- test &= removeAmount(false, entry.getValue());
- }
- return true;
- }
-
- //Remove overflow
- public double removeOverflow(int stacksCount, double stackCapacity) {
- double massRemoved = 0;
-
- if (map.size() > stacksCount) {
- iElementalDefinition[] keys = keys();
- for (int i = stacksCount; i < keys.length; i++) {
- massRemoved += map.get(keys[i]).getDefinitionStack().getMass();
- map.remove(keys[i]);
- }
- }
-
- for (cElementalInstanceStack instance : values()) {
- if (instance.amount > stackCapacity) {
- massRemoved += instance.definition.getMass() * (instance.amount - stackCapacity);
- instance.amount = stackCapacity;
- }
- }
- return massRemoved;
- }
-
- //Put replace
- public cElementalInstanceStack putReplace(cElementalInstanceStack instanceUnsafe) {
- return map.put(instanceUnsafe.definition, instanceUnsafe);
- }
-
- public void putReplaceAll(cElementalInstanceStack... instances) {
- for (cElementalInstanceStack instance : instances) {
- map.put(instance.definition, instance);
- }
- }
-
- private void putReplaceAll(Map<iElementalDefinition, cElementalInstanceStack> inTreeUnsafe) {
- map.putAll(inTreeUnsafe);
- }
-
- public void putReplaceAll(cElementalInstanceStackMap inContainerUnsafe) {
- putReplaceAll(inContainerUnsafe.map);
- }
-
- //Put unify
- public cElementalInstanceStack putUnify(cElementalInstanceStack instance) {
- cElementalInstanceStack stack=map.get(instance.definition);
- if(stack==null) {
- return map.put(instance.definition, instance);
- }
- return map.put(instance.definition, stack.unifyIntoThis(instance));
- }
-
- public void putUnifyAll(cElementalInstanceStack... instances) {
- for (cElementalInstanceStack instance : instances) {
- putUnify(instance);
- }
- }
-
- private void putUnifyAll(Map<iElementalDefinition, cElementalInstanceStack> inTreeUnsafe) {
- for (cElementalInstanceStack in : inTreeUnsafe.values()) {
- putUnify(in);
- }
- }
-
- public void putUnifyAll(cElementalInstanceStackMap containerUnsafe) {
- putUnifyAll(containerUnsafe.map);
- }
-
- //Getters
- public cElementalInstanceStack getFirst(){
- return map.firstEntry().getValue();
- }
-
- public cElementalInstanceStack getLast(){
- return map.lastEntry().getValue();
- }
-
- public cElementalInstanceStack getInstance(iElementalDefinition def) {
- return map.get(def);
- }
-
- public cElementalInstanceStack get(int i){
- Collection<cElementalInstanceStack> var = map.values();
- return var.toArray(new cElementalInstanceStack[0])[i];
- }
-
- public String[] getShortSymbolsInfo() {
- String[] info = new String[map.size()];
- int i = 0;
- for (cElementalInstanceStack instance : map.values()) {
- info[i++] = instance.definition.getShortSymbol();
- }
- return info;
- }
-
- public String[] getElementalInfo() {
- String[] info = new String[map.size()];
- int i = 0;
- for (cElementalInstanceStack instance : map.values()) {
- info[i++] = EnumChatFormatting.BLUE + instance.definition.getName()+
- " "+ EnumChatFormatting.AQUA + instance.definition.getSymbol()+ EnumChatFormatting.RESET+
- " #: " + EnumChatFormatting.GREEN + String.format("%.3E",instance.amount/ AVOGADRO_CONSTANT) +" mol"+ EnumChatFormatting.RESET+
- " E: " + EnumChatFormatting.GREEN + instance.getEnergy() + EnumChatFormatting.RESET+
- " T: " + EnumChatFormatting.GREEN + (instance.getLifeTime()<0?"STABLE":String.format("%.3E",instance.getLifeTime()));
- }
- return info;
- }
-
- public ArrayList<String> getScanShortSymbols(int[] capabilities) {
- ArrayList<String> list=new ArrayList<>(16);
- for(Map.Entry<iElementalDefinition,cElementalInstanceStack> e:map.entrySet()){
- e.getValue().addScanShortSymbols(list,capabilities);
- }
- return list;
- }
-
- public ArrayList<String> getScanInfo(int[] capabilities) {
- ArrayList<String> list=new ArrayList<>(16);
- for(Map.Entry<iElementalDefinition,cElementalInstanceStack> e:map.entrySet()){
- e.getValue().addScanResults(list,capabilities);
- }
- return list;
- }
-
- public cElementalInstanceStack[] values() {
- Collection<cElementalInstanceStack> var = map.values();
- return var.toArray(new cElementalInstanceStack[0]);
- }
-
- public iElementalDefinition[] keys() {
- Set<iElementalDefinition> var = map.keySet();
- return var.toArray(new iElementalDefinition[0]);
- }
-
- public double getMass() {
- double mass = 0;
- for (cElementalInstanceStack stack : map.values()) {
- mass += stack.getMass();
- }
- return mass;
- }
-
- public double getCharge() {
- double charge = 0;
- for (cElementalInstanceStack stack : map.values()) {
- charge += stack.getCharge();
- }
- return charge;
- }
-
- public double getCountOfAllAmounts(){
- double sum=0;
- for(cElementalInstanceStack stack:map.values()){
- sum= add(sum,stack.amount);
- }
- return sum;
- }
-
- //Tests
- public boolean containsDefinition(iElementalDefinition def) {
- return map.containsKey(def);
- }
-
- public boolean containsInstance(cElementalInstanceStack inst) {
- return map.containsValue(inst);
- }
-
- public int size() {
- return map.size();
- }
-
- public boolean hasStacks() {
- return !map.isEmpty();
- }
-
- public boolean isEmpty(){
- return map.isEmpty();
- }
-
- //Tick Content
- public double tickContentByOneSecond(double lifeTimeMult, int postEnergize) {
- return tickContent(lifeTimeMult,postEnergize,1D);
- }
-
- public double tickContent(double lifeTimeMult, int postEnergize, double seconds){
- cleanUp();
- double diff=0;
- for (cElementalInstanceStack instance : values()) {
- cElementalDecayResult newInstances = instance.decay(lifeTimeMult, instance.age += seconds, postEnergize);
- if (newInstances == null) {
- instance.nextColor();
- } else {
- diff=add(diff,newInstances.getMassDiff());
- removeAmount(false,instance);
- putUnifyAll(newInstances.getOutput());
- }
- }
- return diff;
- }
-
- //NBT
- public NBTTagCompound getShortSymbolsNBT() {
- NBTTagCompound nbt = new NBTTagCompound();
- String[] info = getShortSymbolsInfo();
- nbt.setInteger("i", info.length);
- for (int i = 0; i < info.length; i++) {
- nbt.setString(Integer.toString(i), info[i]);
- }
- return nbt;
- }
-
- public NBTTagCompound getInfoNBT() {
- NBTTagCompound nbt = new NBTTagCompound();
- 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 NBTTagCompound getScanShortSymbolsNBT(int[] capabilities) {
- NBTTagCompound nbt = new NBTTagCompound();
- ArrayList<String> info = getScanShortSymbols(capabilities);
- nbt.setInteger("i", info.size());
- for (int i = 0; i < info.size(); i++) {
- nbt.setString(Integer.toString(i), info.get(i));
- }
- return nbt;
- }
-
- public NBTTagCompound getScanInfoNBT(int[] capabilities) {
- NBTTagCompound nbt = new NBTTagCompound();
- ArrayList<String> info = getScanInfo(capabilities);
- nbt.setInteger("i", info.size());
- for (int i = 0; i < info.size(); i++) {
- nbt.setString(Integer.toString(i), info.get(i));
- }
- return nbt;
- }
-
- public NBTTagCompound toNBT() {
- NBTTagCompound nbt = new NBTTagCompound();
- nbt.setInteger("i", map.size());
- int i = 0;
- for (cElementalInstanceStack instance : map.values()) {
- nbt.setTag(Integer.toString(i++), instance.toNBT());
- }
- return nbt;
- }
-
- public static cElementalInstanceStackMap fromNBT(NBTTagCompound nbt) throws tElementalException {
- cElementalInstanceStack[] instances = new cElementalInstanceStack[nbt.getInteger("i")];
- for (int i = 0; i < instances.length; i++) {
- instances[i] = cElementalInstanceStack.fromNBT(nbt.getCompoundTag(Integer.toString(i)));
- if (instances[i].definition.equals(nbtE__)) {
- throw new tElementalException("Something went Wrong");
- }
- }
- return new cElementalInstanceStackMap(false, instances);
- }
-
- //stackUp
- public static cElementalInstanceStack[] stackUp(cElementalInstanceStack... in) {
- cElementalInstanceStackMap inTree = new cElementalInstanceStackMap();
- inTree.putUnifyAll(in);
- return inTree.values();
- }
-
- @Override
- public int compareTo(cElementalInstanceStackMap o) {
- int sizeDiff = map.size() - o.map.size();
- if (sizeDiff != 0) {
- return sizeDiff;
- }
- cElementalInstanceStack[] 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;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof cElementalInstanceStackMap) {
- return compareTo((cElementalInstanceStackMap) obj) == 0;
- }
- if (obj instanceof cElementalStackMap) {
- return toDefinitionMapForComparison().compareTo((cElementalStackMap) obj) == 0;
- }
- return false;
- }
-
- @Override
- public int hashCode() {//Hash only definitions to compare contents not amounts or data
- int hash = -(map.size() << 4);
- for (cElementalInstanceStack stack : map.values()) {
- hash += stack.definition.hashCode();
- }
- return hash;
- }
-
- @Override
- public String toString() {
- StringBuilder build=new StringBuilder("Instance Stack Map\n");
- for(cElementalInstanceStack stack:map.values()){
- build.append(stack.toString()).append('\n');
- }
- return build.toString();
- }
-
- public cElementalInstanceStackMap takeAllToNewMap(){
- TreeMap<iElementalDefinition, cElementalInstanceStack> map=this.map;
- this.map=new TreeMap<>();
- return new cElementalInstanceStackMap(map);
- }
-
- public void cleanUp(){
- map.entrySet().removeIf(entry -> entry.getValue().amount < AVOGADRO_CONSTANT_UNCERTAINTY);
- }
-}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalMutableDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalMutableDefinitionStackMap.java
deleted file mode 100644
index 020f5a5f8c..0000000000
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalMutableDefinitionStackMap.java
+++ /dev/null
@@ -1,278 +0,0 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
-
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
-import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
-import net.minecraft.nbt.NBTTagCompound;
-
-import java.util.Map;
-import java.util.TreeMap;
-
-import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.cPrimitiveDefinition.nbtE__;
-import static com.github.technus.tectech.util.DoubleCount.sub;
-
-/**
- * Created by danie_000 on 22.01.2017.
- */
-public final class cElementalMutableDefinitionStackMap extends cElementalStackMap {//Transient class for construction of definitions/recipes
- //Constructors + Clone, all make a whole new OBJ.
- public cElementalMutableDefinitionStackMap() {
- map = new TreeMap<>();
- }
-
- @Deprecated
- public cElementalMutableDefinitionStackMap(iElementalDefinition... in) {
- map=new TreeMap<>();
- for (iElementalDefinition def : in) {
- putUnify(new cElementalDefinitionStack(def, 1));
- }
- }
-
- public cElementalMutableDefinitionStackMap(cElementalDefinitionStack... in) {
- map=new TreeMap<>();
- putUnifyAll(in);
- }
-
- public cElementalMutableDefinitionStackMap(TreeMap<iElementalDefinition, cElementalDefinitionStack> in) {
- this(true, in);
- }
-
- public cElementalMutableDefinitionStackMap(boolean clone, TreeMap<iElementalDefinition, cElementalDefinitionStack> in) {
- if (clone) {
- map = new TreeMap<>(in);
- } else {
- map = in;
- }
- }
-
- @Override
- public cElementalMutableDefinitionStackMap clone() {
- return new cElementalMutableDefinitionStackMap(map);
- }
-
- public cElementalDefinitionStackMap toImmutable() {
- return new cElementalDefinitionStackMap(map);
- }
- public cElementalDefinitionStackMap toImmutable_optimized_unsafeLeavesExposedElementalTree() {
- return new cElementalDefinitionStackMap(this);
- }
-
- @Override
- @Deprecated
- public TreeMap<iElementalDefinition, cElementalDefinitionStack> getRawMap() {
- return map;
- }
-
-
- //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
- public void removeAll(iHasElementalDefinition... hasElementalDefinition) {
- for (iHasElementalDefinition has : hasElementalDefinition) {
- map.remove(has.getDefinition());
- }
- }
-
- //Remove amounts
- public boolean removeAmount(boolean testOnly, cElementalInstanceStack instance) {
- cElementalDefinitionStack target = map.get(instance.definition);
- if (target == null) {
- return false;
- }
- if (testOnly) {
- return target.amount >= instance.amount;
- } else {
- double diff = sub(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, iHasElementalDefinition stack) {
- cElementalDefinitionStack target = map.get(stack.getDefinition());
- if (target == null) {
- return false;
- }
- if (testOnly) {
- return target.amount >= stack.getAmount();
- } else {
- double diff = sub(target.amount,stack.getAmount());
- if (diff > 0) {
- map.put(target.definition, new cElementalDefinitionStack(target.definition, diff));
- return true;
- } else if (diff == 0) {
- map.remove(stack.getDefinition());
- 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, iHasElementalDefinition... stacks) {
- boolean test = true;
- for (iHasElementalDefinition stack : stacks) {
- test &= removeAmount(true, stack);
- }
- if (testOnly || !test) {
- return test;
- }
- for (iHasElementalDefinition stack : stacks) {
- removeAmount(false, stack);
- }
- return true;
- }
-
- @Deprecated
- public boolean removeAllAmounts(boolean testOnly, iElementalDefinition... definitions) {
- 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, cElementalStackMap container) {
- boolean test=true;
- for (Map.Entry<iElementalDefinition, cElementalDefinitionStack> entry : container.map.entrySet()) {
- test &= removeAmount(true, entry.getValue());
- }
- if (testOnly || !test) {
- return test;
- }
- for (Map.Entry<iElementalDefinition, cElementalDefinitionStack> entry : container.map.entrySet()) {
- removeAmount(false, entry.getValue());
- }
- return true;
- }
-
- public boolean removeAllAmounts(boolean testOnly, cElementalInstanceStackMap container) {
- boolean test=true;
- for (Map.Entry<iElementalDefinition, cElementalInstanceStack> entry : container.map.entrySet()) {
- test &= removeAmount(true, entry.getValue());
- }
- if (testOnly || !test) {
- return test;
- }
- for (Map.Entry<iElementalDefinition, cElementalInstanceStack> entry : container.map.entrySet()) {
- test &= removeAmount(false, entry.getValue());
- }
- return true;
- }
-
- //Put replace
- public cElementalDefinitionStack putReplace(cElementalDefinitionStack defStackUnsafe) {
- return map.put(defStackUnsafe.definition, defStackUnsafe);
- }
-
- public void putReplaceAll(cElementalDefinitionStack... defStacks) {
- for (cElementalDefinitionStack defStack : defStacks) {
- map.put(defStack.definition, defStack);
- }
- }
-
- public void putReplaceAll(cElementalStackMap inContainerUnsafe) {
- map.putAll(inContainerUnsafe.map);
- }
-
- //Put unify
- public cElementalDefinitionStack putUnify(cElementalDefinitionStack def) {
- cElementalDefinitionStack stack=map.get(def.definition);
- if(stack==null) {
- return map.put(def.definition, def);
- }
- return map.put(def.definition, stack.addAmountIntoNewInstance(def.amount));
- }
-
- @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(cElementalStackMap containerUnsafe) {
- for (cElementalDefinitionStack in : containerUnsafe.map.values()) {
- putUnify(in);
- }
- }
-
- public static cElementalMutableDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException {
- 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(nbtE__)) {
- throw new tElementalException("Something went Wrong");
- }
- }
- return new cElementalMutableDefinitionStackMap(defStacks);
- }
-
- public void cleanUp(){
- for(Map.Entry<iElementalDefinition, cElementalDefinitionStack> entry:map.entrySet()){
- if(entry.getValue().amount<=0) {
- map.remove(entry.getKey());
- }
- }
- }
-}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalStackMap.java
deleted file mode 100644
index f8e7aa39e4..0000000000
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalStackMap.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
-
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.EnumChatFormatting;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.TreeMap;
-
-import static com.github.technus.tectech.util.DoubleCount.add;
-
-/**
- * Created by Tec on 12.05.2017.
- */
-abstract class cElementalStackMap implements Comparable<cElementalStackMap> {
- protected TreeMap<iElementalDefinition, cElementalDefinitionStack> map;
-
- @Override
- public abstract cElementalStackMap clone();
-
- @Deprecated
- public abstract TreeMap<iElementalDefinition, cElementalDefinitionStack> getRawMap();
-
- //Getters
- public final cElementalDefinitionStack getFirst(){
- return map.firstEntry().getValue();
- }
-
- public final cElementalDefinitionStack getLast(){
- return map.lastEntry().getValue();
- }
-
- public final cElementalDefinitionStack getDefinitionStack(iElementalDefinition def) {
- return map.get(def);
- }
-
- public String[] getShortSymbolsInfo() {
- String[] info = new String[map.size()];
- int i = 0;
- for (cElementalDefinitionStack instance : map.values()) {
- info[i++] = instance.definition.getShortSymbol();
- }
- return info;
- }
-
- public final String[] getElementalInfo() {
- 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 final cElementalDefinitionStack[] values() {
- Collection<cElementalDefinitionStack> var = map.values();
- return var.toArray(new cElementalDefinitionStack[0]);
- }
-
- public final iElementalDefinition[] keys() {
- Set<iElementalDefinition> var = map.keySet();
- return var.toArray(new iElementalDefinition[0]);
- }
-
- public double getCountOfAllAmounts(){
- double sum=0;
- for(cElementalDefinitionStack stack:map.values()){
- sum= add(sum,stack.amount);
- }
- return sum;
- }
-
- //Tests
- public final boolean containsDefinition(iElementalDefinition def) {
- return map.containsKey(def);
- }
-
- public final boolean containsDefinitionStack(cElementalDefinitionStack inst) {
- return map.containsValue(inst);
- }
-
- public final int size() {
- return map.size();
- }
-
- public final boolean hasStacks() {
- return !map.isEmpty();
- }
-
- public final boolean isEmpty(){
- return map.isEmpty();
- }
-
- //NBT
- public final NBTTagCompound getShortSymbolsNBT() {
- NBTTagCompound nbt = new NBTTagCompound();
- String[] info = getShortSymbolsInfo();
- nbt.setInteger("i", info.length);
- for (int i = 0; i < info.length; i++) {
- nbt.setString(Integer.toString(i), info[i]);
- }
- return nbt;
- }
-
- public final NBTTagCompound getInfoNBT() {
- NBTTagCompound nbt = new NBTTagCompound();
- 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 final NBTTagCompound toNBT() {
- 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;
- }
-
- @Override
- public final int compareTo(cElementalStackMap o) {//this actually compares rest
- int sizeDiff = map.size() - o.map.size();
- if (sizeDiff != 0) {
- return sizeDiff;
- }
- cElementalDefinitionStack[] ofThis = values(), ofO = o.values();
- for (int i = 0; i < ofO.length; i++) {
- int result = ofThis[i].compareTo(ofO[i]);
- if (result != 0) {
- return result;
- }
- }
- return 0;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof cElementalStackMap) {
- return compareTo((cElementalStackMap) obj) == 0;
- }
- if (obj instanceof cElementalInstanceStackMap) {
- return compareTo(((cElementalInstanceStackMap) obj).toDefinitionMapForComparison()) == 0;
- }
- return false;
- }
-
- @Override
- public final int hashCode() {//Hash only definitions to compare contents not amounts or data
- int hash = -(map.size() << 4);
- for (cElementalDefinitionStack stack : map.values()) {
- hash += stack.definition.hashCode();
- }
- return hash;
- }
-
- public double getMass(){
- double mass=0;
- for(cElementalDefinitionStack stack:map.values()){
- mass+=stack.getMass();
- }
- return mass;
- }
-
- public long getCharge(){
- long charge=0;
- for(cElementalDefinitionStack stack:map.values()){
- charge+=stack.getCharge();
- }
- return charge;
- }
-}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/commands/GiveEM.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/commands/GiveEM.java
index 912d44ff43..8b1f6d0c14 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/commands/GiveEM.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/commands/GiveEM.java
@@ -1,8 +1,8 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.commands;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalMutableDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalDefinitionStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalDefinition;
@@ -83,7 +83,7 @@ public class GiveEM implements ICommand {
byte clazz = (byte) args.remove(0).charAt(0);
Method constructor = cElementalDefinition.getBindsComplex().get(clazz);
- cElementalMutableDefinitionStackMap stacks=new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap stacks =new cElementalDefinitionStackMap();
while(args.size()>0){
cElementalDefinitionStack tempStack=getDefinitionStack(args);
if(tempStack==null) {
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecay.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/decay/cElementalDecay.java
index e67f773a86..79103f7fa0 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecay.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/decay/cElementalDecay.java
@@ -1,5 +1,7 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
+package com.github.technus.tectech.mechanics.elementalMatter.core.decay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
@@ -14,10 +16,10 @@ public final class cElementalDecay {
//DECAY IMPOSSIBLE!!!
//Do not use regular NULL java will not make it work with varargs!!!
//Or cast null into ARRAY type but this static is more convenient!!!
- public static final cElementalDecay[] noProduct = new cElementalDecay[0];
+ 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 double probability;
+ public final cElementalConstantStackMap outputStacks;
+ public final double probability;
public cElementalDecay(iElementalDefinition... outSafe) {
this(1D, outSafe);
@@ -28,7 +30,7 @@ public final class cElementalDecay {
for (int i = 0; i < outArr.length; i++) {
outArr[i] = new cElementalDefinitionStack(outSafe[i], 1D);
}
- outputStacks = new cElementalDefinitionStackMap(outArr);
+ outputStacks = new cElementalConstantStackMap(outArr);
this.probability = probability;
}
@@ -37,15 +39,15 @@ public final class cElementalDecay {
}
public cElementalDecay(double probability, cElementalDefinitionStack... out) {
- outputStacks = new cElementalDefinitionStackMap(out);
+ outputStacks = new cElementalConstantStackMap(out);
this.probability = probability;
}
- public cElementalDecay(cElementalDefinitionStackMap tree) {
+ public cElementalDecay(cElementalConstantStackMap tree) {
this(1D, tree);
}
- public cElementalDecay(double probability, cElementalDefinitionStackMap tree) {
+ public cElementalDecay(double probability, cElementalConstantStackMap tree) {
outputStacks = tree;
this.probability = probability;
}
@@ -57,7 +59,7 @@ public final class cElementalDecay {
}
//Deny decay code is in instance!
double qtty = 0D;
- for (cElementalDefinitionStack stack : outputStacks.values()) {
+ for (cElementalDefinitionStack stack : outputStacks.valuesToArray()) {
qtty= add(qtty,stack.amount);
}
if (qtty <= 0D) {
@@ -65,7 +67,7 @@ public final class cElementalDecay {
}
//energyTotalForProducts /= qtty;
//lifeMult /= (float) qtty;
- for (cElementalDefinitionStack stack : outputStacks.values()) {
+ for (cElementalDefinitionStack stack : outputStacks.valuesToArray()) {
decayResult.putUnify(new cElementalInstanceStack(stack.definition,
amountDecaying * stack.amount,
lifeMult, age/*new products*/, (long)(energyTotalForProducts / Math.max(1D, Math.abs(stack.amount)))));//get instances from stack
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecayResult.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/decay/cElementalDecayResult.java
index 4ca63d14fe..43f4341720 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecayResult.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/decay/cElementalDecayResult.java
@@ -1,9 +1,11 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
+package com.github.technus.tectech.mechanics.elementalMatter.core.decay;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
public class cElementalDecayResult {
private final cElementalInstanceStackMap output;
- private double massAffected;
- private double massDiff;
+ private double massAffected;
+ private double massDiff;
public cElementalDecayResult(cElementalInstanceStackMap output, double massAffected, double massDiff) {
this.output = output;
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalContainer.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalContainer.java
new file mode 100644
index 0000000000..457a37f7b9
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalContainer.java
@@ -0,0 +1,12 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
+
+/**
+ * Created by danie_000 on 25.01.2017.
+ */
+public interface iElementalContainer {
+ cElementalInstanceStackMap getContentHandler();
+
+ void purgeOverflow();
+}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalInstanceContainer.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalInstanceContainer.java
deleted file mode 100644
index 20fe1ffc5b..0000000000
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/iElementalInstanceContainer.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
-
-/**
- * Created by danie_000 on 25.01.2017.
- */
-public interface iElementalInstanceContainer extends Cloneable {
- cElementalInstanceStackMap getContainerHandler();
-
- void purgeOverflow();
-}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalConstantStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalConstantStackMap.java
new file mode 100644
index 0000000000..cde1d55561
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalConstantStackMap.java
@@ -0,0 +1,58 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core.maps;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
+import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+import net.minecraft.nbt.NBTTagCompound;
+
+import java.util.Collections;
+import java.util.NavigableMap;
+import java.util.TreeMap;
+
+import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.cPrimitiveDefinition.nbtE__;
+
+/**
+ * Created by Tec on 12.05.2017.
+ */
+public final class cElementalConstantStackMap/*IMMUTABLE*/ extends cElementalStackMap<cElementalDefinitionStack> {//Target class for construction of definitions/recipes
+ //Constructors + Clone, all make a whole new OBJ.
+ public static final cElementalConstantStackMap EMPTY = new cElementalConstantStackMap();
+
+ private cElementalConstantStackMap() {
+ super(Collections.emptyNavigableMap());
+ }
+
+ public cElementalConstantStackMap(cElementalDefinitionStack... in) {
+ this(new cElementalDefinitionStackMap(in).map);
+ }
+
+ public cElementalConstantStackMap(NavigableMap<iElementalDefinition, cElementalDefinitionStack> in) {
+ super(Collections.unmodifiableNavigableMap(in));
+ }
+
+ @Override
+ public Class<cElementalDefinitionStack> getType() {
+ return cElementalDefinitionStack.class;
+ }
+
+ //IMMUTABLE DON'T NEED IT
+ @Override
+ public cElementalConstantStackMap clone() {
+ return this;
+ }
+
+ public cElementalDefinitionStackMap toMutable() {
+ return new cElementalDefinitionStackMap(new TreeMap<>(map));
+ }
+
+ public static cElementalConstantStackMap fromNBT(NBTTagCompound nbt) throws tElementalException {
+ 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(nbtE__)) {
+ throw new tElementalException("Something went Wrong");
+ }
+ }
+ return new cElementalConstantStackMap(defStacks);
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalDefinitionStackMap.java
index ce0840bc8b..1273119bb3 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDefinitionStackMap.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalDefinitionStackMap.java
@@ -1,55 +1,46 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
+package com.github.technus.tectech.mechanics.elementalMatter.core.maps;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
import net.minecraft.nbt.NBTTagCompound;
+import java.util.NavigableMap;
import java.util.TreeMap;
import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.cPrimitiveDefinition.nbtE__;
/**
- * Created by Tec on 12.05.2017.
+ * Created by danie_000 on 22.01.2017.
*/
-public final class cElementalDefinitionStackMap/*IMMUTABLE*/ extends cElementalStackMap {//Target class for construction of definitions/recipes
+public final class cElementalDefinitionStackMap extends cElementalStackMap<cElementalDefinitionStack> implements iElementalMapRW<cElementalDefinitionStack> {//Transient class for construction of definitions/recipes
//Constructors + Clone, all make a whole new OBJ.
- public static final cElementalDefinitionStackMap EMPTY = new cElementalDefinitionStackMap();
-
- private cElementalDefinitionStackMap() {
- map = new TreeMap<>();
- }
-
- @Deprecated
- public cElementalDefinitionStackMap(iElementalDefinition... in) {
- map=new cElementalMutableDefinitionStackMap(in).map;
- }
+ public cElementalDefinitionStackMap() {}
public cElementalDefinitionStackMap(cElementalDefinitionStack... in) {
- map=new cElementalMutableDefinitionStackMap(in).map;
+ putUnifyAll(in);
}
- public cElementalDefinitionStackMap(TreeMap<iElementalDefinition, cElementalDefinitionStack> in) {
- map = new TreeMap<>(in);
+ public cElementalDefinitionStackMap(NavigableMap<iElementalDefinition, cElementalDefinitionStack> in) {
+ super(in);
}
- cElementalDefinitionStackMap(cElementalMutableDefinitionStackMap unsafeMap){
- map=unsafeMap.map;
+ @Override
+ public Class<cElementalDefinitionStack> getType() {
+ return cElementalDefinitionStack.class;
}
- //IMMUTABLE DON'T NEED IT
@Override
public cElementalDefinitionStackMap clone() {
- return this;
+ return new cElementalDefinitionStackMap(new TreeMap<>(map));
}
- public cElementalMutableDefinitionStackMap toMutable() {
- return new cElementalMutableDefinitionStackMap(map);
+ public cElementalConstantStackMap toImmutable() {
+ return new cElementalConstantStackMap(new TreeMap<>(map));
}
- @Override
- @Deprecated//BETTER TO JUST MAKE A MUTABLE VERSION AND DO SHIT ON IT
- public TreeMap<iElementalDefinition, cElementalDefinitionStack> getRawMap() {
- return toMutable().getRawMap();
+ public cElementalConstantStackMap toImmutable_optimized_unsafe_LeavesExposedElementalTree() {
+ return new cElementalConstantStackMap(map);
}
public static cElementalDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException {
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalInstanceStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalInstanceStackMap.java
new file mode 100644
index 0000000000..aab1f93990
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalInstanceStackMap.java
@@ -0,0 +1,214 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core.maps;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecayResult;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
+import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.NavigableMap;
+import java.util.TreeMap;
+
+import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT;
+import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.cPrimitiveDefinition.nbtE__;
+import static com.github.technus.tectech.util.DoubleCount.add;
+
+/**
+ * Created by danie_000 on 22.01.2017.
+ */
+public final class cElementalInstanceStackMap extends cElementalStackMap<cElementalInstanceStack> implements iElementalMapRW<cElementalInstanceStack> {
+ //Constructors
+ public cElementalInstanceStackMap() {}
+
+ public cElementalInstanceStackMap(cElementalInstanceStack... inSafe) {
+ this(true, inSafe);
+ }
+
+ public cElementalInstanceStackMap(boolean clone, cElementalInstanceStack... in) {
+ if (clone) {
+ cElementalInstanceStack[] stacks=new cElementalInstanceStack[in.length];
+ for(int i=0;i<stacks.length;i++) {
+ stacks[i] = in[i].clone();
+ }
+ putUnifyAll(stacks);
+ } else {
+ putUnifyAll(in);
+ }
+ }
+
+ private cElementalInstanceStackMap(NavigableMap<iElementalDefinition, cElementalInstanceStack> inSafe) {
+ this(true, inSafe);
+ }
+
+ private cElementalInstanceStackMap(boolean clone, NavigableMap<iElementalDefinition, cElementalInstanceStack> in) {
+ if (clone) {
+ map = new TreeMap<>();
+ for(cElementalInstanceStack stack:in.values()) {
+ putUnify(stack.clone());
+ }
+ } else {
+ map = in;
+ }
+ }
+
+ @Override
+ public Class<cElementalInstanceStack> getType() {
+ return cElementalInstanceStack.class;
+ }
+
+ @Override
+ public cElementalInstanceStackMap clone() {
+ return new cElementalInstanceStackMap(map);
+ }
+
+ //Remove overflow
+ public double removeOverflow(int stacksCount, double stackCapacity) {
+ double massRemoved = 0;
+
+ if (map.size() > stacksCount) {
+ iElementalDefinition[] keys = keySetToArray();
+ for (int i = stacksCount; i < keys.length; i++) {
+ massRemoved += map.get(keys[i]).getDefinitionStack().getMass();
+ map.remove(keys[i]);
+ }
+ }
+
+ for (cElementalInstanceStack instance : valuesToArray()) {
+ if (instance.amount > stackCapacity) {
+ massRemoved += instance.definition.getMass() * (instance.amount - stackCapacity);
+ instance.amount = stackCapacity;
+ }
+ }
+ return massRemoved;
+ }
+
+ //Getters
+ public String[] getElementalInfo() {
+ String[] info = new String[map.size()];
+ int i = 0;
+ for (cElementalInstanceStack instance : map.values()) {
+ info[i++] = EnumChatFormatting.BLUE + instance.definition.getName()+
+ " "+ EnumChatFormatting.AQUA + instance.definition.getSymbol()+ EnumChatFormatting.RESET+
+ " #: " + EnumChatFormatting.GREEN + String.format("%.3E",instance.amount/ AVOGADRO_CONSTANT) +" mol"+ EnumChatFormatting.RESET+
+ " E: " + EnumChatFormatting.GREEN + instance.getEnergy() + EnumChatFormatting.RESET+
+ " T: " + EnumChatFormatting.GREEN + (instance.getLifeTime()<0?"STABLE":String.format("%.3E",instance.getLifeTime()));
+ }
+ return info;
+ }
+
+ public ArrayList<String> getScanShortSymbols(int[] capabilities) {
+ ArrayList<String> list=new ArrayList<>(16);
+ for(Map.Entry<iElementalDefinition,cElementalInstanceStack> e:map.entrySet()){
+ e.getValue().addScanShortSymbols(list,capabilities);
+ }
+ return list;
+ }
+
+ public ArrayList<String> getScanInfo(int[] capabilities) {
+ ArrayList<String> list=new ArrayList<>(16);
+ for(Map.Entry<iElementalDefinition,cElementalInstanceStack> e:map.entrySet()){
+ e.getValue().addScanResults(list,capabilities);
+ }
+ return list;
+ }
+
+ //Tick Content
+ public double tickContentByOneSecond(double lifeTimeMult, int postEnergize) {
+ return tickContent(lifeTimeMult,postEnergize,1D);
+ }
+
+ public double tickContent(double lifeTimeMult, int postEnergize, double seconds){
+ cleanUp();
+ double diff=0;
+ for (cElementalInstanceStack instance : valuesToArray()) {
+ cElementalDecayResult newInstances = instance.decay(lifeTimeMult, instance.age += seconds, postEnergize);
+ if (newInstances == null) {
+ instance.nextColor();
+ } else {
+ diff=add(diff,newInstances.getMassDiff());
+ removeAmount(false,instance);
+ putUnifyAll(newInstances.getOutput());
+ }
+ }
+ return diff;
+ }
+
+ //NBT
+ public NBTTagCompound getScanShortSymbolsNBT(int[] capabilities) {
+ NBTTagCompound nbt = new NBTTagCompound();
+ ArrayList<String> info = getScanShortSymbols(capabilities);
+ nbt.setInteger("i", info.size());
+ for (int i = 0; i < info.size(); i++) {
+ nbt.setString(Integer.toString(i), info.get(i));
+ }
+ return nbt;
+ }
+
+ public NBTTagCompound getScanInfoNBT(int[] capabilities) {
+ NBTTagCompound nbt = new NBTTagCompound();
+ ArrayList<String> info = getScanInfo(capabilities);
+ nbt.setInteger("i", info.size());
+ for (int i = 0; i < info.size(); i++) {
+ nbt.setString(Integer.toString(i), info.get(i));
+ }
+ return nbt;
+ }
+
+ public static cElementalInstanceStackMap fromNBT(NBTTagCompound nbt) throws tElementalException {
+ cElementalInstanceStack[] instances = new cElementalInstanceStack[nbt.getInteger("i")];
+ for (int i = 0; i < instances.length; i++) {
+ instances[i] = cElementalInstanceStack.fromNBT(nbt.getCompoundTag(Integer.toString(i)));
+ if (instances[i].definition.equals(nbtE__)) {
+ throw new tElementalException("Something went Wrong");
+ }
+ }
+ return new cElementalInstanceStackMap(false, instances);
+ }
+
+ //stackUp
+ public static cElementalInstanceStack[] stackUp(cElementalInstanceStack... in) {
+ cElementalInstanceStackMap inTree = new cElementalInstanceStackMap();
+ inTree.putUnifyAll(in);
+ return inTree.valuesToArray();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof cElementalInstanceStackMap) {
+ return compareTo((cElementalInstanceStackMap) obj) == 0;
+ }
+ if (obj instanceof cElementalStackMap) {
+ return toDefinitionMapForComparison().compareTo((cElementalStackMap) obj) == 0;
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder build=new StringBuilder("Instance Stack Map\n");
+ for(cElementalInstanceStack stack:map.values()){
+ build.append(stack.toString()).append('\n');
+ }
+ return build.toString();
+ }
+
+ public cElementalInstanceStackMap takeAll(){
+ cElementalInstanceStackMap newStack=new cElementalInstanceStackMap(false,new TreeMap<>(this.map));//just in case to uncouple The map
+ this.map.clear();
+ return newStack;
+ }
+
+ public cElementalDefinitionStackMap toDefinitionMapForComparison() {
+ cElementalDefinitionStack[] list = new cElementalDefinitionStack[size()];
+ int i = 0;
+ for (Map.Entry<iElementalDefinition, cElementalInstanceStack> entry : entrySet()) {
+ cElementalInstanceStack value = entry.getValue();
+ list[i++] = new cElementalDefinitionStack(value.getDefinition(), value.getAmount());
+ }
+ return new cElementalDefinitionStackMap(list);
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalStackMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalStackMap.java
new file mode 100644
index 0000000000..2b144df128
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/cElementalStackMap.java
@@ -0,0 +1,50 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core.maps;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+
+import java.util.NavigableMap;
+import java.util.TreeMap;
+
+/**
+ * Created by Tec on 12.05.2017.
+ */
+abstract class cElementalStackMap<T extends iElementalStack> implements iElementalMapR<T> {
+ protected NavigableMap<iElementalDefinition, T> map;
+
+ protected cElementalStackMap() {
+ this(new TreeMap<>());
+ }
+
+ protected cElementalStackMap(NavigableMap<iElementalDefinition, T> map) {
+ this.map = map;
+ }
+
+ @Override
+ public NavigableMap<iElementalDefinition, T> getBackingMap() {
+ return map;
+ }
+
+ @Override
+ public abstract cElementalStackMap<T> clone();
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof cElementalInstanceStackMap) {
+ return compareTo(((cElementalInstanceStackMap) obj).toDefinitionMapForComparison()) == 0;
+ }
+ if (obj instanceof cElementalStackMap) {
+ return compareTo((cElementalStackMap) obj) == 0;
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {//Hash only definitions to compare contents not amounts or data
+ int hash = -(map.size() << 4);
+ for (T stack : map.values()) {
+ hash += stack.getDefinition().hashCode();
+ }
+ return hash;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapR.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapR.java
new file mode 100644
index 0000000000..0491c43ebc
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapR.java
@@ -0,0 +1,187 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core.maps;
+
+import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+
+import java.lang.reflect.Array;
+import java.util.*;
+
+import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT;
+
+public interface iElementalMapR<T extends iElementalStack> extends Comparable<iElementalMapR<? extends iElementalStack>>, Cloneable {
+ NavigableMap<iElementalDefinition,T> getBackingMap();
+
+ iElementalMapR<T> clone();
+
+ default Set<Map.Entry<iElementalDefinition, T>> entrySet(){
+ return getBackingMap().entrySet();
+ }
+
+ default Set<iElementalDefinition> keySet(){
+ return getBackingMap().keySet();
+ }
+
+ default iElementalDefinition[] keySetToArray() {
+ return keySetToArray(new iElementalDefinition[size()]);
+ }
+
+ default iElementalDefinition[] keySetToArray(iElementalDefinition[] array) {
+ return getBackingMap().keySet().toArray(array);
+ }
+
+ default Collection<T> values(){
+ return getBackingMap().values();
+ }
+
+ @SuppressWarnings("unchecked")
+ default T[] valuesToArray(){
+ return valuesToArray((T[]) Array.newInstance(getType(),size()));
+ }
+
+ default T[] valuesToArray(T[] array){
+ return getBackingMap().values().toArray(array);
+ }
+
+ Class<T> getType();
+
+ //Getters
+ default T getFirst(){
+ return getBackingMap().firstEntry().getValue();
+ }
+
+ default T getLast(){
+ return getBackingMap().lastEntry().getValue();
+ }
+
+ default T get(iElementalDefinition def) {
+ return getBackingMap().get(def);
+ }
+
+ default T getNaturallySorted(int pos) {
+ if(pos<0 || pos>=size()){
+ throw new IndexOutOfBoundsException("Index was: "+pos+" size was: "+size());
+ }
+ for (Map.Entry<iElementalDefinition, T> entry : entrySet()) {
+ if(pos==0){
+ return entry.getValue();
+ }
+ pos--;
+ }
+ return null;
+ }
+
+ default T getRandom() {
+ return getNaturallySorted(TecTech.RANDOM.nextInt(size()));
+ }
+
+ default String[] getShortSymbolsInfo() {
+ String[] info = new String[size()];
+ int i = 0;
+ for (T instance : values()) {
+ info[i++] = instance.getDefinition().getShortSymbol();
+ }
+ return info;
+ }
+
+ default String[] getElementalInfo() {
+ String[] info = new String[size() * 3];
+ int i = 0;
+ for (T defStack : values()) {
+ info[i] = EnumChatFormatting.BLUE + defStack.getDefinition().getName();
+ info[i + 1] = EnumChatFormatting.AQUA + defStack.getDefinition().getSymbol();
+ info[i + 2] = "Amount " + EnumChatFormatting.GREEN + defStack.getAmount()/AVOGADRO_CONSTANT;
+ i += 3;
+ }
+ return info;
+ }
+
+ //NBT
+ default NBTTagCompound getShortSymbolsNBT() {
+ NBTTagCompound nbt = new NBTTagCompound();
+ String[] info = getShortSymbolsInfo();
+ nbt.setInteger("i", info.length);
+ for (int i = 0; i < info.length; i++) {
+ nbt.setString(Integer.toString(i), info[i]);
+ }
+ return nbt;
+ }
+
+ default NBTTagCompound getInfoNBT() {
+ NBTTagCompound nbt = new NBTTagCompound();
+ 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;
+ }
+
+ default NBTTagCompound toNBT() {
+ NBTTagCompound nbt = new NBTTagCompound();
+ nbt.setInteger("i", size());
+ int i = 0;
+ for (T stack : values()) {
+ nbt.setTag(Integer.toString(i++), stack.toNBT());
+ }
+ return nbt;
+ }
+
+ @Override
+ default int compareTo(iElementalMapR<? extends iElementalStack> o) {//this actually compares rest
+ int sizeDiff = size() - o.size();
+ if (sizeDiff != 0) {
+ return sizeDiff;
+ }
+
+ Iterator<T> iterator = values().iterator();
+ Iterator<? extends iElementalStack> iteratorO = o.values().iterator();
+
+ while (iterator.hasNext()) {
+ int result = iterator.next().compareTo(iteratorO.next());
+ if (result != 0) {
+ return result;
+ }
+ }
+ return 0;
+ }
+
+ default double getMass(){
+ double mass=0;
+ for (Map.Entry<iElementalDefinition, T> entry : getBackingMap().entrySet()) {
+ mass+=entry.getValue().getMass();
+ }
+ return mass;
+ }
+
+ default long getCharge(){
+ long charge=0;
+ for (Map.Entry<iElementalDefinition, T> entry : getBackingMap().entrySet()) {
+ charge+=entry.getValue().getCharge();
+ }
+ return charge;
+ }
+
+ //Tests
+ default boolean containsKey(iElementalDefinition def) {
+ return getBackingMap().containsKey(def);
+ }
+
+ default boolean containsKey(iElementalStack def) {
+ return containsKey(def.getDefinition());
+ }
+
+ default int size() {
+ return getBackingMap().size();
+ }
+
+ default boolean hasStacks() {
+ return !isEmpty();
+ }
+
+ default boolean isEmpty(){
+ return getBackingMap().isEmpty();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapRW.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapRW.java
new file mode 100644
index 0000000000..7f8d314858
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/maps/iElementalMapRW.java
@@ -0,0 +1,130 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core.maps;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
+import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+
+import java.util.Map;
+
+import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT_UNCERTAINTY;
+import static com.github.technus.tectech.util.DoubleCount.sub;
+
+public interface iElementalMapRW<T extends iElementalStack> extends iElementalMapR<T> {
+ iElementalMapRW<T> clone();
+
+ default void cleanUp(){
+ getBackingMap().entrySet().removeIf(entry -> entry.getValue().getAmount() < AVOGADRO_CONSTANT_UNCERTAINTY);
+ }
+
+ default void clear() {
+ getBackingMap().clear();
+ }
+
+ //Remove
+ default T remove(iElementalDefinition def) {
+ return getBackingMap().remove(def);
+ }
+
+ default T remove(iElementalStack has) {
+ return remove(has.getDefinition());
+ }
+
+ default void removeAll(iElementalDefinition... definitions) {
+ for (iElementalDefinition def : definitions) {
+ getBackingMap().remove(def);
+ }
+ }
+
+ default void removeAll(iElementalStack... hasElementalDefinition) {
+ for (iElementalStack has : hasElementalDefinition) {
+ getBackingMap().remove(has.getDefinition());
+ }
+ }
+
+ default boolean removeAmount(boolean testOnly, iElementalStack stack) {
+ return removeAmount(testOnly,stack.getDefinition(),stack.getAmount());
+ }
+
+ default boolean removeAmount(boolean testOnly, iElementalDefinition def,double amount) {
+ T target = getBackingMap().get(def);
+ if (target == null) {
+ return false;
+ }
+ if (testOnly) {
+ return target.getAmount() >= amount;
+ } else {
+ double newAmount = sub(target.getAmount(),amount);
+ if (newAmount > 0) {
+ getBackingMap().put(target.getDefinition(), (T)target.mutateAmount(newAmount));
+ return true;
+ } else if (newAmount == 0) {
+ getBackingMap().remove(def);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ default boolean removeAllAmounts(boolean testOnly, iElementalStack... stacks) {
+ boolean test = true;
+ for (iElementalStack stack : stacks) {
+ test &= removeAmount(true, stack);
+ }
+ if (testOnly || !test) {
+ return test;
+ }
+ for (iElementalStack stack : stacks) {
+ removeAmount(false, stack);
+ }
+ return true;
+ }
+
+ default boolean removeAllAmounts(boolean testOnly, iElementalMapR<? extends iElementalStack> container) {
+ boolean test=true;
+ for (Map.Entry<iElementalDefinition, ? extends iElementalStack> entry : container.entrySet()) {
+ test &= removeAmount(true, entry.getValue());
+ }
+ if (testOnly || !test) {
+ return test;
+ }
+ for (Map.Entry<iElementalDefinition, ? extends iElementalStack> entry : container.entrySet()) {
+ removeAmount(false, entry.getValue());
+ }
+ return true;
+ }
+
+ //Put replace
+ default T putReplace(T defStackUnsafe) {
+ return getBackingMap().put(defStackUnsafe.getDefinition(), defStackUnsafe);
+ }
+
+ default void putReplaceAll(T... defStacks) {
+ for (T defStack : defStacks) {
+ getBackingMap().put(defStack.getDefinition(), defStack);
+ }
+ }
+
+ default void putReplaceAll(iElementalMapR<T> inContainerUnsafe) {
+ getBackingMap().putAll(inContainerUnsafe.getBackingMap());
+ }
+
+ //Put unify
+ default T putUnify(T def) {
+ T stack=getBackingMap().get(def.getDefinition());
+ if(stack==null) {
+ return getBackingMap().put(def.getDefinition(), def);
+ }
+ return getBackingMap().put(def.getDefinition(), (T)stack.mutateAmount(def.getAmount()+stack.getAmount()));
+ }
+
+ default void putUnifyAll(T... defs) {
+ for (T def : defs) {
+ putUnify(def);
+ }
+ }
+
+ default void putUnifyAll(iElementalMapR<T> inTreeUnsafe) {
+ for (T in : inTreeUnsafe.values()) {
+ putUnify(in);
+ }
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/rElementalRecipe.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/recipes/rElementalRecipe.java
index e191cc0e0a..8c0fb40a4b 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/rElementalRecipe.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/recipes/rElementalRecipe.java
@@ -1,5 +1,6 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
+package com.github.technus.tectech.mechanics.elementalMatter.core.recipes;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
@@ -7,17 +8,17 @@ import net.minecraftforge.fluids.FluidStack;
* Created by Tec on 02.03.2017.
*/
public class rElementalRecipe implements Comparable<rElementalRecipe> {
- public final short ID;
- public final cElementalDefinitionStackMap inEM;
- public final cElementalDefinitionStackMap outEM;
- public final ItemStack[] outItems;
+ public final short ID;
+ public final cElementalConstantStackMap inEM;
+ public final cElementalConstantStackMap outEM;
+ public final ItemStack[] outItems;
public final FluidStack[] outFluids;
public Object[] extension;
public rElementalRecipe(
- cElementalDefinitionStackMap inEM,//not null plz
+ cElementalConstantStackMap inEM,//not null plz
short id,
- cElementalDefinitionStackMap outEM,
+ cElementalConstantStackMap outEM,
ItemStack[] outItems,
FluidStack[] outFluids) {
this.inEM = inEM;
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/rElementalRecipeMap.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/recipes/rElementalRecipeMap.java
index ed5e46f43f..56a9030354 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/rElementalRecipeMap.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/recipes/rElementalRecipeMap.java
@@ -1,4 +1,7 @@
-package com.github.technus.tectech.mechanics.elementalMatter.core;
+package com.github.technus.tectech.mechanics.elementalMatter.core.recipes;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.*;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import java.util.HashMap;
import java.util.Map;
@@ -8,7 +11,7 @@ import java.util.Map;
*/
public class rElementalRecipeMap {//TODO FIX
//Multimap for multiple recipes from the same thing - you know parameters might differ the output
- private final HashMap<cElementalDefinitionStackMap, HashMap<Short, rElementalRecipe>> recipes;
+ private final HashMap<cElementalConstantStackMap, HashMap<Short, rElementalRecipe>> recipes;
public rElementalRecipeMap() {
recipes = new HashMap<>();
@@ -26,11 +29,11 @@ public class rElementalRecipeMap {//TODO FIX
}
}
- public rElementalRecipe remove(cElementalStackMap map, short id) {
+ public rElementalRecipe remove(iElementalMapR<cElementalDefinitionStack> map, short id) {
return recipes.get(map).remove(id);//suspicious but ok, equals and hashcode methods are adjusted for that
}
- public HashMap<Short, rElementalRecipe> remove(cElementalStackMap map) {
+ public HashMap<Short, rElementalRecipe> remove(iElementalMapR<cElementalDefinitionStack> map) {
return recipes.remove(map);//suspicious but ok, equals and hashcode methods are adjusted for that
}
@@ -41,15 +44,15 @@ public class rElementalRecipeMap {//TODO FIX
//Recipe founding should not check amounts - this checks if the types of matter in map are equal to any recipe!
//Return a recipeShortMap when the content of input is equal (ignoring amounts and instance data)
@Deprecated
- public HashMap<Short, rElementalRecipe> findExact(cElementalStackMap in) {
+ public HashMap<Short, rElementalRecipe> findExact(iElementalMapR<cElementalDefinitionStack> in) {
return recipes.get(in);//suspicious but ok, equals and hashcode methods are adjusted for that
}
//this does check if the map contains all the requirements for any recipe, and the required amounts
//Return a recipeShortMap when the content of input matches the recipe input - does not ignore amounts but ignores instance data!
@Deprecated
- public HashMap<Short, rElementalRecipe> findMatch(cElementalMutableDefinitionStackMap in, boolean testOnlyTruePreferred) {
- for (Map.Entry<cElementalDefinitionStackMap, HashMap<Short, rElementalRecipe>> cElementalDefinitionStackMapHashMapEntry : recipes.entrySet()) {
+ public HashMap<Short, rElementalRecipe> findMatch(cElementalDefinitionStackMap in, boolean testOnlyTruePreferred) {
+ for (Map.Entry<cElementalConstantStackMap, HashMap<Short, rElementalRecipe>> cElementalDefinitionStackMapHashMapEntry : recipes.entrySet()) {
if (in.removeAllAmounts(testOnlyTruePreferred, cElementalDefinitionStackMapHashMapEntry.getKey())) {
return cElementalDefinitionStackMapHashMapEntry.getValue();
}
@@ -58,7 +61,7 @@ public class rElementalRecipeMap {//TODO FIX
}
public HashMap<Short, rElementalRecipe> findMatch(cElementalInstanceStackMap in, boolean testOnly) {
- for (Map.Entry<cElementalDefinitionStackMap, HashMap<Short, rElementalRecipe>> cElementalDefinitionStackMapHashMapEntry : recipes.entrySet()) {
+ for (Map.Entry<cElementalConstantStackMap, HashMap<Short, rElementalRecipe>> cElementalDefinitionStackMapHashMapEntry : recipes.entrySet()) {
if (in.removeAllAmounts(testOnly, cElementalDefinitionStackMapHashMapEntry.getKey())) {
return cElementalDefinitionStackMapHashMapEntry.getValue();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalDefinitionStack.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalDefinitionStack.java
index a2d22c30ed..1e03c8130f 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalDefinitionStack.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalDefinitionStack.java
@@ -5,12 +5,11 @@ import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElem
import net.minecraft.nbt.NBTTagCompound;
import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.cPrimitiveDefinition.null__;
-import static com.github.technus.tectech.util.DoubleCount.add;
/**
* Created by danie_000 on 20.11.2016.
*/
-public final class cElementalDefinitionStack implements iHasElementalDefinition {
+public final class cElementalDefinitionStack implements iElementalStack {
public final iElementalDefinition definition;
public final double amount;
@@ -25,6 +24,14 @@ public final class cElementalDefinitionStack implements iHasElementalDefinition
}
@Override
+ public cElementalDefinitionStack mutateAmount(double amount) {
+ if(this.amount==amount){
+ return this;
+ }
+ return new cElementalDefinitionStack(definition,amount);//IMMUTABLE
+ }
+
+ @Override
public iElementalDefinition getDefinition() {
return definition;//IMMUTABLE
}
@@ -57,26 +64,8 @@ public final class cElementalDefinitionStack implements iHasElementalDefinition
nbt.getLong("q")+nbt.getDouble("Q"));
}
- public cElementalDefinitionStack addAmountIntoNewInstance(double amount) {
- if(amount==0) {
- return this;
- }
- return new cElementalDefinitionStack(definition, add(amount,this.amount));
- }
-
- public cElementalDefinitionStack addAmountIntoNewInstance(cElementalDefinitionStack... other) {
- if (other == null || other.length == 0) {
- return this;
- }
- double l = 0;
- for (cElementalDefinitionStack stack : other) {
- l= add(l,stack.amount);
- }
- return addAmountIntoNewInstance(l);
- }
-
@Override
- public int compareTo(iHasElementalDefinition o) {
+ public int compareTo(iElementalStack o) {
return definition.compareTo(o.getDefinition());
}
@@ -85,8 +74,8 @@ public final class cElementalDefinitionStack implements iHasElementalDefinition
if (obj instanceof iElementalDefinition) {
return definition.compareTo((iElementalDefinition) obj) == 0;
}
- if (obj instanceof iHasElementalDefinition) {
- return definition.compareTo(((iHasElementalDefinition) obj).getDefinition()) == 0;
+ if (obj instanceof iElementalStack) {
+ return definition.compareTo(((iElementalStack) obj).getDefinition()) == 0;
}
return false;
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalInstanceStack.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalInstanceStack.java
index 559d7ab8d9..1c06e560db 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalInstanceStack.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalInstanceStack.java
@@ -1,10 +1,10 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.stacks;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecayResult;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecayResult;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalDefinition;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
import com.github.technus.tectech.util.Util;
@@ -24,7 +24,7 @@ import static java.lang.Math.*;
/**
* Created by danie_000 on 22.10.2016.
*/
-public final class cElementalInstanceStack implements iHasElementalDefinition {
+public final class cElementalInstanceStack implements iElementalStack {
public static int MIN_MULTIPLE_DECAY_CALLS=4,MAX_MULTIPLE_DECAY_CALLS=16;
public static double DECAY_CALL_PER=AVOGADRO_CONSTANT;//todo
@@ -82,6 +82,12 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
}
@Override
+ public cElementalInstanceStack mutateAmount(double amount) {
+ this.amount = amount;
+ return this;
+ }
+
+ @Override
public double getAmount() {
return amount;
}
@@ -170,7 +176,7 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
if (newInstances == null) {
nextColor();
} else {
- for (cElementalInstanceStack newInstance : newInstances.getOutput().values()) {
+ for (cElementalInstanceStack newInstance : newInstances.getOutput().valuesToArray()) {
newInstance.nextColor();
}
}
@@ -290,20 +296,20 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
cElementalInstanceStackMap output = decays[0].getResults(lifeTimeMult, newProductsAge, newEnergyLevel, amount);
if(newProductsAge<0){
if(output.size()==1) {
- if(output.size()==1 && output.get(0).definition.equals(definition)) {
- output.get(0).setEnergy(energy);
- output.get(0).age=age;
+ if(output.size()==1 && output.getFirst().definition.equals(definition)) {
+ output.getFirst().setEnergy(energy);
+ output.getFirst().age=age;
}
}else {
- for (cElementalInstanceStack stack : output.values()) {
+ for (cElementalInstanceStack stack : output.valuesToArray()) {
if (stack.definition.equals(definition)) {
stack.age = age;
}
}
}
}else{
- if(output.size()==1 && output.get(0).definition.equals(definition)) {
- output.get(0).setEnergy(energy);
+ if(output.size()==1 && output.getFirst().definition.equals(definition)) {
+ output.getFirst().setEnergy(energy);
}
}
if(energy <= 0 && output.getMass() > mass){
@@ -390,20 +396,20 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
}
if(newProductsAge<0) {
- if (output.size() == 1 && output.get(0).definition.equals(definition)) {
- output.get(0).setEnergy(energy);
- output.get(0).age = age;
+ if (output.size() == 1 && output.getFirst().definition.equals(definition)) {
+ output.getFirst().setEnergy(energy);
+ output.getFirst().age = age;
} else {
- for (cElementalInstanceStack stack : output.values()) {
+ for (cElementalInstanceStack stack : output.valuesToArray()) {
if (stack.definition.equals(definition)) {
stack.age = age;
}
}
}
}else{
- if(output.size()==1 && output.get(0).definition.equals(definition)) {
- output.get(0).setEnergy(energy);
- output.get(0).age=age;
+ if(output.size()==1 && output.getFirst().definition.equals(definition)) {
+ output.getFirst().setEnergy(energy);
+ output.getFirst().age=age;
}
}
if(energy <= 0 && output.getMass() > getMass()){
@@ -491,10 +497,10 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
scanContents(lines,definition.getSubParticles(),1,detailsOnDepthLevels);
}
- private void scanContents(ArrayList<String> lines, cElementalDefinitionStackMap definitions, int depth, int[] detailsOnDepthLevels){
+ private void scanContents(ArrayList<String> lines, cElementalConstantStackMap definitions, int depth, int[] detailsOnDepthLevels){
if(definitions!=null && depth<detailsOnDepthLevels.length){
int deeper=depth+1;
- for(cElementalDefinitionStack definitionStack:definitions.values()) {
+ for(cElementalDefinitionStack definitionStack:definitions.valuesToArray()) {
lines.add("");//def separator
if(Util.areBitsSet(SCAN_GET_DEPTH_LEVEL,detailsOnDepthLevels[depth])) {
lines.add("DEPTH = " + depth);
@@ -532,7 +538,7 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
}
@Override
- public int compareTo(iHasElementalDefinition o) {//use for unification
+ public int compareTo(iElementalStack o) {//use for unification
return definition.compareTo(o.getDefinition());
}
@@ -541,8 +547,8 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
if (obj instanceof iElementalDefinition) {
return definition.compareTo((iElementalDefinition) obj) == 0;
}
- if (obj instanceof iHasElementalDefinition) {
- return definition.compareTo(((iHasElementalDefinition) obj).getDefinition()) == 0;
+ if (obj instanceof iElementalStack) {
+ return definition.compareTo(((iElementalStack) obj).getDefinition()) == 0;
}
return false;
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iHasElementalDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iElementalStack.java
index 1d8af7bab7..65f2ed3b78 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iHasElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iElementalStack.java
@@ -1,11 +1,12 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.stacks;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+import net.minecraft.nbt.NBTTagCompound;
/**
* Created by danie_000 on 30.01.2017.
*/
-public interface iHasElementalDefinition extends Comparable<iHasElementalDefinition>,Cloneable {
+public interface iElementalStack extends Comparable<iElementalStack>,Cloneable {
iElementalDefinition getDefinition();
double getAmount();
@@ -14,5 +15,9 @@ public interface iHasElementalDefinition extends Comparable<iHasElementalDefinit
double getMass();
- iHasElementalDefinition clone();
+ iElementalStack clone();
+
+ iElementalStack mutateAmount(double amount);
+
+ NBTTagCompound toNBT();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalDefinition.java
index 51025148a7..43e42df988 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalDefinition.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.templates;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import net.minecraft.nbt.NBTTagCompound;
import java.lang.reflect.Method;
@@ -62,7 +62,7 @@ public abstract class cElementalDefinition extends iElementalDefinition {
//only of the internal def stacks!!!
//that allows neat check if the same thing and
//top hierarchy amount can be used to store amount info
- return compareInnerContentsWithAmounts(getSubParticles().values(), o.getSubParticles().values());
+ return compareInnerContentsWithAmounts(getSubParticles().valuesToArray(), o.getSubParticles().valuesToArray());
}
//use only for nested operations!
@@ -112,8 +112,8 @@ public abstract class cElementalDefinition extends iElementalDefinition {
if (obj instanceof iElementalDefinition) {
return compareTo((iElementalDefinition) obj) == 0;
}
- if (obj instanceof iHasElementalDefinition) {
- return compareTo(((iHasElementalDefinition) obj).getDefinition()) == 0;
+ if (obj instanceof iElementalStack) {
+ return compareTo(((iElementalStack) obj).getDefinition()) == 0;
}
return false;
}
@@ -121,7 +121,7 @@ public abstract class cElementalDefinition extends iElementalDefinition {
@Override
public int hashCode() {//Internal amounts should be also hashed
int hash = -(getSubParticles().size() << 4);
- for (cElementalDefinitionStack stack : getSubParticles().values()) {
+ for (cElementalDefinitionStack stack : getSubParticles().valuesToArray()) {
int amount=(int)stack.amount;
hash += ((amount & 0x1) == 0 ? -amount : amount) + stack.definition.hashCode();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java
index 6ee8591c58..70af6445c9 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java
@@ -1,8 +1,8 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.templates;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aFluidDequantizationInfo;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aItemDequantizationInfo;
@@ -169,7 +169,7 @@ public abstract class cElementalPrimitive extends cElementalDefinition {
}
@Override
- public final cElementalDefinitionStackMap getSubParticles() {
+ public final cElementalConstantStackMap getSubParticles() {
return null;
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java
index 90ac2eb339..8065e9c170 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.templates;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aFluidDequantizationInfo;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aItemDequantizationInfo;
@@ -64,7 +64,7 @@ public abstract class iElementalDefinition implements Comparable<iElementalDefin
public abstract boolean isTimeSpanHalfLife();
- public abstract cElementalDefinitionStackMap getSubParticles();//contents... null if none
+ public abstract cElementalConstantStackMap getSubParticles();//contents... null if none
public abstract aFluidDequantizationInfo someAmountIntoFluidStack();
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidDequantizationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidDequantizationInfo.java
index 3d8b7a881f..0d91b57ed5 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidDequantizationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidDequantizationInfo.java
@@ -1,28 +1,28 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
/**
* Created by Tec on 23.05.2017.
*/
-public class aFluidDequantizationInfo implements iExchangeInfo<iHasElementalDefinition,FluidStack> {
- private final iHasElementalDefinition in;
- private final FluidStack out;
+public class aFluidDequantizationInfo implements iExchangeInfo<iElementalStack,FluidStack> {
+ private final iElementalStack in;
+ private final FluidStack out;
- public aFluidDequantizationInfo(iHasElementalDefinition emIn, FluidStack fluidStackOut){
+ public aFluidDequantizationInfo(iElementalStack emIn, FluidStack fluidStackOut){
in=emIn;
out=fluidStackOut;
}
- public aFluidDequantizationInfo(iHasElementalDefinition emIn, Fluid fluid, int fluidAmount){
+ public aFluidDequantizationInfo(iElementalStack emIn, Fluid fluid, int fluidAmount){
in=emIn;
out=new FluidStack(fluid,fluidAmount);
}
@Override
- public iHasElementalDefinition input() {
+ public iElementalStack input() {
return in.clone();//MEH!
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidQuantizationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidQuantizationInfo.java
index 563b87f8ee..39e4ec4671 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidQuantizationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidQuantizationInfo.java
@@ -1,22 +1,22 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
/**
* Created by Tec on 23.05.2017.
*/
-public class aFluidQuantizationInfo implements iExchangeInfo<FluidStack,iHasElementalDefinition> {
- private final FluidStack in;
- private final iHasElementalDefinition out;
+public class aFluidQuantizationInfo implements iExchangeInfo<FluidStack, iElementalStack> {
+ private final FluidStack in;
+ private final iElementalStack out;
- public aFluidQuantizationInfo(FluidStack fluidStackIn, iHasElementalDefinition emOut){
+ public aFluidQuantizationInfo(FluidStack fluidStackIn, iElementalStack emOut){
in=fluidStackIn;
out=emOut;
}
- public aFluidQuantizationInfo(Fluid fluid, int fluidAmount, iHasElementalDefinition emOut){
+ public aFluidQuantizationInfo(Fluid fluid, int fluidAmount, iElementalStack emOut){
in=new FluidStack(fluid,fluidAmount);
out=emOut;
}
@@ -27,7 +27,7 @@ public class aFluidQuantizationInfo implements iExchangeInfo<FluidStack,iHasElem
}
@Override
- public iHasElementalDefinition output() {
+ public iElementalStack output() {
return out.clone();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemDequantizationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemDequantizationInfo.java
index 8b42c61d6c..fb71275276 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemDequantizationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemDequantizationInfo.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_OreDictUnificator;
@@ -9,22 +9,22 @@ import net.minecraft.item.ItemStack;
/**
* Created by Tec on 23.05.2017.
*/
-public class aItemDequantizationInfo implements iExchangeInfo<iHasElementalDefinition,ItemStack> {
- private final iHasElementalDefinition in;
- private final ItemStack out;
+public class aItemDequantizationInfo implements iExchangeInfo<iElementalStack,ItemStack> {
+ private final iElementalStack in;
+ private final ItemStack out;
- public aItemDequantizationInfo(iHasElementalDefinition emIn, ItemStack itemStackOut){
+ public aItemDequantizationInfo(iElementalStack emIn, ItemStack itemStackOut){
in=emIn;
out=itemStackOut;
}
- public aItemDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, Materials material, int amount) {
+ public aItemDequantizationInfo(iElementalStack emIn, OrePrefixes prefix, Materials material, int amount) {
in = emIn;
out = GT_OreDictUnificator.get(prefix, material, amount);
}
@Override
- public iHasElementalDefinition input() {
+ public iElementalStack input() {
return in.clone();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemQuantizationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemQuantizationInfo.java
index 8f33f5096d..da9950a186 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemQuantizationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemQuantizationInfo.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
@@ -11,18 +11,18 @@ import net.minecraftforge.oredict.OreDictionary;
/**
* Created by Tec on 23.05.2017.
*/
-public class aItemQuantizationInfo implements iExchangeInfo<ItemStack,iHasElementalDefinition> {
- private final ItemStack in;
- private final boolean skipNBT;
- private final iHasElementalDefinition out;
+public class aItemQuantizationInfo implements iExchangeInfo<ItemStack, iElementalStack> {
+ private final ItemStack in;
+ private final boolean skipNBT;
+ private final iElementalStack out;
- public aItemQuantizationInfo(ItemStack itemStackIn, boolean skipNBT, iHasElementalDefinition emOut) {
+ public aItemQuantizationInfo(ItemStack itemStackIn, boolean skipNBT, iElementalStack emOut) {
in = itemStackIn;
out = emOut;
this.skipNBT = skipNBT;
}
- public aItemQuantizationInfo(OrePrefixes prefix, Materials material, int amount, boolean skipNBT, iHasElementalDefinition emOut) {
+ public aItemQuantizationInfo(OrePrefixes prefix, Materials material, int amount, boolean skipNBT, iElementalStack emOut) {
in = GT_OreDictUnificator.get(prefix, material, amount);
out = emOut;
this.skipNBT = skipNBT;
@@ -34,7 +34,7 @@ public class aItemQuantizationInfo implements iExchangeInfo<ItemStack,iHasElemen
}
@Override
- public iHasElementalDefinition output() {
+ public iElementalStack output() {
return out.clone();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictDequantizationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictDequantizationInfo.java
index bbf94682b4..20f2252bd8 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictDequantizationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictDequantizationInfo.java
@@ -1,37 +1,37 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
/**
* Created by Tec on 23.05.2017.
*/
-public class aOredictDequantizationInfo implements iExchangeInfo<iHasElementalDefinition,String> {
- private final iHasElementalDefinition in;
- public final String out;
- public final int amount;
+public class aOredictDequantizationInfo implements iExchangeInfo<iElementalStack,String> {
+ private final iElementalStack in;
+ public final String out;
+ public final int amount;
- public aOredictDequantizationInfo(iHasElementalDefinition emIn, String name, int qty) {
+ public aOredictDequantizationInfo(iElementalStack emIn, String name, int qty) {
in = emIn;
out =name;
amount = qty;
}
- public aOredictDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, Materials material, int qty) {
+ public aOredictDequantizationInfo(iElementalStack emIn, OrePrefixes prefix, Materials material, int qty) {
in = emIn;
out = prefix.name() + material.mName;
amount = qty;
}
- public aOredictDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, String materialName, int qty) {
+ public aOredictDequantizationInfo(iElementalStack emIn, OrePrefixes prefix, String materialName, int qty) {
in = emIn;
out = prefix.name() + materialName;
amount = qty;
}
@Override
- public iHasElementalDefinition input() {
+ public iElementalStack input() {
return in.clone();//MEH!
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictQuantizationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictQuantizationInfo.java
index 964d317b80..252b524185 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictQuantizationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictQuantizationInfo.java
@@ -1,30 +1,30 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
/**
* Created by Tec on 23.05.2017.
*/
-public class aOredictQuantizationInfo implements iExchangeInfo<String,iHasElementalDefinition> {
- public final String in;
- public final int amount;
- private final iHasElementalDefinition out;
+public class aOredictQuantizationInfo implements iExchangeInfo<String, iElementalStack> {
+ public final String in;
+ public final int amount;
+ private final iElementalStack out;
- public aOredictQuantizationInfo(String name, int qty, iHasElementalDefinition emOut){
+ public aOredictQuantizationInfo(String name, int qty, iElementalStack emOut){
in=name;
amount=qty;
out=emOut;
}
- public aOredictQuantizationInfo(OrePrefixes prefix, Materials material, int qty, iHasElementalDefinition emOut){
+ public aOredictQuantizationInfo(OrePrefixes prefix, Materials material, int qty, iElementalStack emOut){
in=prefix.name() + material.mName;
amount=qty;
out=emOut;
}
- public aOredictQuantizationInfo(OrePrefixes prefix, String materialName, int qty, iHasElementalDefinition emOut){
+ public aOredictQuantizationInfo(OrePrefixes prefix, String materialName, int qty, iElementalStack emOut){
in=prefix.name() + materialName;
amount=qty;
out=emOut;
@@ -36,7 +36,7 @@ public class aOredictQuantizationInfo implements iExchangeInfo<String,iHasElemen
}
@Override
- public iHasElementalDefinition output() {
+ public iElementalStack output() {
return out.clone();
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/bTransformationInfo.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/bTransformationInfo.java
index 69a4b9683c..39f946c54a 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/bTransformationInfo.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/bTransformationInfo.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.mechanics.elementalMatter.core.transformations;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
@@ -69,14 +69,14 @@ public class bTransformationInfo {
this.oredictDequantization = oredictDequantization;
}
- public void addFluid(iHasElementalDefinition em, FluidStack fluidStack){
+ public void addFluid(iElementalStack em, FluidStack fluidStack){
fluidQuantization.put(fluidStack.getFluidID(),new aFluidQuantizationInfo(fluidStack,em));
fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluidStack));
STACKS_REGISTERED.add(em.getDefinition());
STACKS_REGISTERED.add(em.getDefinition().getAnti());
}
- public void addFluid(iHasElementalDefinition em, Fluid fluid, int fluidAmount){
+ public void addFluid(iElementalStack em, Fluid fluid, int fluidAmount){
fluidQuantization.put(fluid.getID(),new aFluidQuantizationInfo(fluid,fluidAmount,em));
fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluid,fluidAmount));
STACKS_REGISTERED.add(em.getDefinition());
@@ -87,35 +87,35 @@ public class bTransformationInfo {
itemQuantization.put(aIQI,aIQI);
}
- public void addItem(iHasElementalDefinition em, ItemStack itemStack, boolean skipNBT){
+ public void addItem(iElementalStack em, ItemStack itemStack, boolean skipNBT){
addItemQuantization(new aItemQuantizationInfo(itemStack,skipNBT,em));
itemDequantization.put(em.getDefinition(),new aItemDequantizationInfo(em,itemStack));
STACKS_REGISTERED.add(em.getDefinition());
STACKS_REGISTERED.add(em.getDefinition().getAnti());
}
- public void addItem(iHasElementalDefinition em, OrePrefixes prefix, Materials material, int amount, boolean skipNBT){
+ public void addItem(iElementalStack em, OrePrefixes prefix, Materials material, int amount, boolean skipNBT){
addItemQuantization(new aItemQuantizationInfo(prefix,material,amount,skipNBT,em));
itemDequantization.put(em.getDefinition(),new aItemDequantizationInfo(em,prefix,material,amount));
STACKS_REGISTERED.add(em.getDefinition());
STACKS_REGISTERED.add(em.getDefinition().getAnti());
}
- public void addOredict(iHasElementalDefinition em, String name, int qty){
+ public void addOredict(iElementalStack em, String name, int qty){
oredictQuantization.put(OreDictionary.getOreID(name),new aOredictQuantizationInfo(name,qty,em));
oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,name,qty));
STACKS_REGISTERED.add(em.getDefinition());
STACKS_REGISTERED.add(em.getDefinition().getAnti());
}
- public void addOredict(iHasElementalDefinition em, OrePrefixes prefix, Materials material, int qty){
+ public void addOredict(iElementalStack em, OrePrefixes prefix, Materials material, int qty){
oredictQuantization.put(OreDictionary.getOreID(prefix.name() + material.mName),new aOredictQuantizationInfo(prefix,material,qty,em));
oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,prefix,material,qty));
STACKS_REGISTERED.add(em.getDefinition());
STACKS_REGISTERED.add(em.getDefinition().getAnti());
}
- public void addOredict(iHasElementalDefinition em, OrePrefixes prefix, String materialName, int qty){
+ public void addOredict(iElementalStack em, OrePrefixes prefix, String materialName, int qty){
oredictQuantization.put(OreDictionary.getOreID(prefix.name() + materialName),new aOredictQuantizationInfo(prefix,materialName,qty,em));
oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,prefix,materialName,qty));
STACKS_REGISTERED.add(em.getDefinition());
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dAtomDefinition.java
index e97d5994e9..291ec8fe6b 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dAtomDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dAtomDefinition.java
@@ -3,9 +3,9 @@ package com.github.technus.tectech.mechanics.elementalMatter.definitions.complex
import com.github.technus.tectech.Reference;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.compatibility.gtpp.GtppAtomLoader;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalMutableDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalDefinitionStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalDefinition;
@@ -83,33 +83,23 @@ public final class dAtomDefinition extends cElementalDefinition {
private final boolean iaeaDefinitionExistsAndHasEnergyLevels;
- private final cElementalDefinitionStackMap elementalStacks;
+ private final cElementalConstantStackMap elementalStacks;
//stable is rawLifeTime>=10^9
- @Deprecated
- public dAtomDefinition(iElementalDefinition... things) throws tElementalException {
- this(true, new cElementalDefinitionStackMap(things));
- }
-
- @Deprecated
- private dAtomDefinition(boolean check, iElementalDefinition... things) throws tElementalException {
- this(check, new cElementalDefinitionStackMap(things));
- }
-
public dAtomDefinition(cElementalDefinitionStack... things) throws tElementalException {
- this(true, new cElementalDefinitionStackMap(things));
+ this(true, new cElementalConstantStackMap(things));
}
private dAtomDefinition(boolean check, cElementalDefinitionStack... things) throws tElementalException {
- this(check, new cElementalDefinitionStackMap(things));
+ this(check, new cElementalConstantStackMap(things));
}
- public dAtomDefinition(cElementalDefinitionStackMap things) throws tElementalException {
+ public dAtomDefinition(cElementalConstantStackMap things) throws tElementalException {
this(true, things);
}
- private dAtomDefinition(boolean check, cElementalDefinitionStackMap things) throws tElementalException {
+ private dAtomDefinition(boolean check, cElementalConstantStackMap things) throws tElementalException {
if (check && !canTheyBeTogether(things)) {
throw new tElementalException("Atom Definition error");
}
@@ -121,7 +111,7 @@ public final class dAtomDefinition extends cElementalDefinition {
int neutralCount = 0, element = 0;
int type = 0;
boolean containsAnti = false;
- for (cElementalDefinitionStack stack : elementalStacks.values()) {
+ for (cElementalDefinitionStack stack : elementalStacks.valuesToArray()) {
iElementalDefinition def = stack.definition;
int amount = (int)stack.amount;
if((int)stack.amount!=stack.amount){
@@ -274,10 +264,10 @@ public final class dAtomDefinition extends cElementalDefinition {
return rawLifeTime;
}
- private static boolean canTheyBeTogether(cElementalDefinitionStackMap stacks) {
+ private static boolean canTheyBeTogether(cElementalConstantStackMap stacks) {
boolean nuclei = false;
long qty=0;
- for (cElementalDefinitionStack stack : stacks.values()) {
+ for (cElementalDefinitionStack stack : stacks.valuesToArray()) {
if (stack.definition instanceof dHadronDefinition) {
if (((dHadronDefinition) stack.definition).amount != 3) {
return false;
@@ -407,7 +397,7 @@ public final class dAtomDefinition extends cElementalDefinition {
}
@Override
- public cElementalDefinitionStackMap getSubParticles() {
+ public cElementalConstantStackMap getSubParticles() {
return elementalStacks.clone();
}
@@ -484,33 +474,33 @@ public final class dAtomDefinition extends cElementalDefinition {
}
private boolean getDecayFromIaea(ArrayList<cElementalDecay> decaysList, iaeaNuclide.iaeaDecay decay, long energy){
- cElementalMutableDefinitionStackMap withThis=elementalStacks.toMutable(),newStuff=new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap withThis =elementalStacks.toMutable(), newStuff =new cElementalDefinitionStackMap();
switch (decay.decayName){
case "D": {
if (withThis.removeAllAmounts(false, deuterium.definition.getSubParticles())){
withThis.putReplace(deuterium);
- decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}
} break;
case "3H": {
if (withThis.removeAllAmounts(false, tritium.definition.getSubParticles())){
withThis.putReplace(tritium);
- decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}
} break;
case "3HE": {
if (withThis.removeAllAmounts(false, helium_3.definition.getSubParticles())){
withThis.putReplace(helium_3);
- decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}
} break;
case "8BE": {
if (withThis.removeAllAmounts(false, beryllium_8.definition.getSubParticles())){
withThis.putReplace(beryllium_8);
- decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ decaysList.add(new cElementalDecay(decay.chance,withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}
} break;
@@ -518,8 +508,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, carbon_14.definition.getSubParticles())){
newStuff.putReplace(carbon_14);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -532,8 +522,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, neon_24.definition.getSubParticles())){
newStuff.putReplace(neon_24);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -546,8 +536,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, silicon_34.definition.getSubParticles())){
newStuff.putReplace(silicon_34);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -560,8 +550,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, dHadronDefinition.hadron_n2,dHadronDefinition.hadron_p2)){
newStuff.putReplace(alpha);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -576,8 +566,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eLeptonDefinition.lepton_e_1);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -592,8 +582,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eLeptonDefinition.lepton_e_2);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -608,8 +598,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eLeptonDefinition.lepton_e1);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve_1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -624,8 +614,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eLeptonDefinition.lepton_e2);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve_2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -639,8 +629,8 @@ public final class dAtomDefinition extends cElementalDefinition {
withThis.putUnify(dHadronDefinition.hadron_n1);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -654,8 +644,8 @@ public final class dAtomDefinition extends cElementalDefinition {
withThis.putUnify(dHadronDefinition.hadron_n2);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -670,8 +660,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eLeptonDefinition.lepton_e_1);
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -686,8 +676,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
newStuff.putReplace(alpha);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -703,8 +693,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
newStuff.putReplace(dHadronDefinition.hadron_p1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -720,8 +710,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
newStuff.putReplace(dHadronDefinition.hadron_p2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -736,8 +726,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve_1);
newStuff.putReplace(alpha);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -753,8 +743,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve_1);
newStuff.putReplace(dHadronDefinition.hadron_n1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -770,8 +760,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve_1);
newStuff.putReplace(dHadronDefinition.hadron_n2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -786,8 +776,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve_1);
newStuff.putReplace(dHadronDefinition.hadron_p1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -801,8 +791,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
newStuff.putReplace(alpha);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -817,8 +807,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
newStuff.putReplace(dHadronDefinition.hadron_p1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -833,8 +823,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve1);
newStuff.putReplace(dHadronDefinition.hadron_p2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -849,8 +839,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve2);
newStuff.putReplace(dHadronDefinition.hadron_p3);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -863,8 +853,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, dHadronDefinition.hadron_n1)){
newStuff.putReplace(dHadronDefinition.hadron_n1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -877,8 +867,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, dHadronDefinition.hadron_n2)){
newStuff.putReplace(dHadronDefinition.hadron_n2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -891,8 +881,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, dHadronDefinition.hadron_p1)){
newStuff.putReplace(dHadronDefinition.hadron_p1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -905,8 +895,8 @@ public final class dAtomDefinition extends cElementalDefinition {
if (withThis.removeAllAmounts(false, dHadronDefinition.hadron_p2)){
newStuff.putReplace(dHadronDefinition.hadron_p2);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -1001,8 +991,8 @@ public final class dAtomDefinition extends cElementalDefinition {
newStuff.putReplace(eNeutrinoDefinition.lepton_Ve2);
newStuff.putReplace(eBosonDefinition.boson_Y__1);
try{
- newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafeLeavesExposedElementalTree()).getStackForm(1));
- decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ newStuff.putReplace(new dAtomDefinition(withThis.toImmutable_optimized_unsafe_LeavesExposedElementalTree()).getStackForm(1));
+ decaysList.add(new cElementalDecay(decay.chance,newStuff.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
}catch (Exception e){
if(DEBUG_MODE) {
@@ -1023,10 +1013,10 @@ public final class dAtomDefinition extends cElementalDefinition {
}
private boolean Emmision(ArrayList<cElementalDecay> decaysList, cElementalDefinitionStack emit) {
- cElementalMutableDefinitionStackMap tree = elementalStacks.toMutable();
+ cElementalDefinitionStackMap tree = elementalStacks.toMutable();
if (tree.removeAmount(false, emit)) {
try {
- decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafeLeavesExposedElementalTree()), 1), emit));
+ decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafe_LeavesExposedElementalTree()), 1), emit));
return true;
} catch (Exception e) {
if (DEBUG_MODE) {
@@ -1038,10 +1028,10 @@ public final class dAtomDefinition extends cElementalDefinition {
}
private boolean alphaDecay(ArrayList<cElementalDecay> decaysList) {
- cElementalMutableDefinitionStackMap tree = elementalStacks.toMutable();
+ cElementalDefinitionStackMap tree = elementalStacks.toMutable();
if (tree.removeAllAmounts(false, alpha.definition.getSubParticles())) {
try {
- decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafeLeavesExposedElementalTree()), 1), alpha));
+ decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafe_LeavesExposedElementalTree()), 1), alpha));
return true;
} catch (Exception e) {
if (DEBUG_MODE) {
@@ -1053,11 +1043,11 @@ public final class dAtomDefinition extends cElementalDefinition {
}
private boolean MbetaDecay(ArrayList<cElementalDecay> decaysList) {
- cElementalMutableDefinitionStackMap tree = elementalStacks.toMutable();
+ cElementalDefinitionStackMap tree = elementalStacks.toMutable();
if (tree.removeAmount(false, dHadronDefinition.hadron_n1)) {
try {
tree.putUnify(dHadronDefinition.hadron_p1);
- decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafeLeavesExposedElementalTree()), 1), eLeptonDefinition.lepton_e1, eNeutrinoDefinition.lepton_Ve_1));
+ decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafe_LeavesExposedElementalTree()), 1), eLeptonDefinition.lepton_e1, eNeutrinoDefinition.lepton_Ve_1));
return true;
} catch (Exception e) {
if (DEBUG_MODE) {
@@ -1069,11 +1059,11 @@ public final class dAtomDefinition extends cElementalDefinition {
}
private boolean PbetaDecay(ArrayList<cElementalDecay> decaysList) {
- cElementalMutableDefinitionStackMap tree = elementalStacks.toMutable();
+ cElementalDefinitionStackMap tree = elementalStacks.toMutable();
if (tree.removeAmount(false, dHadronDefinition.hadron_p1)) {
try {
tree.putUnify(dHadronDefinition.hadron_n1);
- decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafeLeavesExposedElementalTree()), 1), eLeptonDefinition.lepton_e_1, eNeutrinoDefinition.lepton_Ve1));
+ decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafe_LeavesExposedElementalTree()), 1), eLeptonDefinition.lepton_e_1, eNeutrinoDefinition.lepton_Ve1));
return true;
} catch (Exception e) {
if (DEBUG_MODE) {
@@ -1085,11 +1075,11 @@ public final class dAtomDefinition extends cElementalDefinition {
}
private boolean ElectronCapture(ArrayList<cElementalDecay> decaysList) {
- cElementalMutableDefinitionStackMap tree = elementalStacks.toMutable();
+ cElementalDefinitionStackMap tree = elementalStacks.toMutable();
if (tree.removeAllAmounts(false, dHadronDefinition.hadron_p1,eLeptonDefinition.lepton_e1)) {
try {
tree.putUnify(dHadronDefinition.hadron_n1);
- decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafeLeavesExposedElementalTree()), 1), eNeutrinoDefinition.lepton_Ve1));
+ decaysList.add(new cElementalDecay(1, new cElementalDefinitionStack(new dAtomDefinition(tree.toImmutable_optimized_unsafe_LeavesExposedElementalTree()), 1), eNeutrinoDefinition.lepton_Ve1));
return true;
} catch (Exception e) {
if (DEBUG_MODE) {
@@ -1100,11 +1090,11 @@ public final class dAtomDefinition extends cElementalDefinition {
return false;
}
- private boolean Fission(ArrayList<cElementalDecay> decaysList, cElementalMutableDefinitionStackMap fissile, cElementalMutableDefinitionStackMap particles,double probability,boolean spontaneousCheck) {
- cElementalMutableDefinitionStackMap heavy = new cElementalMutableDefinitionStackMap();
- double[] liquidDrop= liquidDropFunction(Math.abs(element)<=97);
+ private boolean Fission(ArrayList<cElementalDecay> decaysList, cElementalDefinitionStackMap fissile, cElementalDefinitionStackMap particles, double probability, boolean spontaneousCheck) {
+ cElementalDefinitionStackMap heavy = new cElementalDefinitionStackMap();
+ double[] liquidDrop = liquidDropFunction(Math.abs(element)<=97);
- for(cElementalDefinitionStack stack: fissile.values()){
+ for(cElementalDefinitionStack stack: fissile.valuesToArray()){
if(spontaneousCheck && stack.definition instanceof dHadronDefinition &&
(stack.amount<=80 || stack.amount<90 && XSTR_INSTANCE.nextInt(10)<stack.amount-80)) {
return false;
@@ -1138,9 +1128,9 @@ public final class dAtomDefinition extends cElementalDefinition {
}
try {
- particles.putReplace(new cElementalDefinitionStack(new dAtomDefinition(fissile.toImmutable_optimized_unsafeLeavesExposedElementalTree()),1));
- particles.putReplace(new cElementalDefinitionStack(new dAtomDefinition(heavy.toImmutable_optimized_unsafeLeavesExposedElementalTree()),1));
- decaysList.add(new cElementalDecay(probability, particles.toImmutable_optimized_unsafeLeavesExposedElementalTree()));
+ particles.putReplace(new cElementalDefinitionStack(new dAtomDefinition(fissile.toImmutable_optimized_unsafe_LeavesExposedElementalTree()),1));
+ particles.putReplace(new cElementalDefinitionStack(new dAtomDefinition(heavy.toImmutable_optimized_unsafe_LeavesExposedElementalTree()),1));
+ decaysList.add(new cElementalDecay(probability, particles.toImmutable_optimized_unsafe_LeavesExposedElementalTree()));
return true;
} catch (Exception e) {
if(DEBUG_MODE) {
@@ -1273,7 +1263,7 @@ public final class dAtomDefinition extends cElementalDefinition {
public cElementalDecay[] getNaturalDecayInstant() {
//disembody
ArrayList<cElementalDefinitionStack> decaysInto = new ArrayList<>();
- for (cElementalDefinitionStack elementalStack : elementalStacks.values()) {
+ for (cElementalDefinitionStack elementalStack : elementalStacks.valuesToArray()) {
if (elementalStack.definition.getType() == 1 || elementalStack.definition.getType() == -1) {
//covers both quarks and antiquarks
decaysInto.add(elementalStack);
@@ -1302,12 +1292,12 @@ public final class dAtomDefinition extends cElementalDefinition {
@Override
public dAtomDefinition getAnti() {
- cElementalMutableDefinitionStackMap anti = new cElementalMutableDefinitionStackMap();
- for (cElementalDefinitionStack stack : elementalStacks.values()) {
+ cElementalDefinitionStackMap anti = new cElementalDefinitionStackMap();
+ for (cElementalDefinitionStack stack : elementalStacks.valuesToArray()) {
anti.putReplace(new cElementalDefinitionStack(stack.definition.getAnti(), stack.amount));
}
try {
- return new dAtomDefinition(anti.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ return new dAtomDefinition(anti.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
} catch (tElementalException e) {
if (DEBUG_MODE) {
e.printStackTrace();
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dHadronDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dHadronDefinition.java
index 4ea5eb3776..aa0951d98c 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dHadronDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dHadronDefinition.java
@@ -1,9 +1,9 @@
package com.github.technus.tectech.mechanics.elementalMatter.definitions.complex;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalMutableDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalDefinitionStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalDefinition;
@@ -58,31 +58,21 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
//private final FluidStack fluidThing;
//private final ItemStack itemThing;
- private final cElementalDefinitionStackMap quarkStacks;
-
- @Deprecated
- public dHadronDefinition(eQuarkDefinition... quarks) throws tElementalException {
- this(true, new cElementalDefinitionStackMap(quarks));
- }
-
- @Deprecated
- private dHadronDefinition(boolean check, eQuarkDefinition... quarks) throws tElementalException {
- this(check, new cElementalDefinitionStackMap(quarks));
- }
+ private final cElementalConstantStackMap quarkStacks;
public dHadronDefinition(cElementalDefinitionStack... quarks) throws tElementalException {
- this(true, new cElementalDefinitionStackMap(quarks));
+ this(true, new cElementalConstantStackMap(quarks));
}
private dHadronDefinition(boolean check, cElementalDefinitionStack... quarks) throws tElementalException {
- this(check, new cElementalDefinitionStackMap(quarks));
+ this(check, new cElementalConstantStackMap(quarks));
}
- public dHadronDefinition(cElementalDefinitionStackMap quarks) throws tElementalException {
+ public dHadronDefinition(cElementalConstantStackMap quarks) throws tElementalException {
this(true, quarks);
}
- private dHadronDefinition(boolean check, cElementalDefinitionStackMap quarks) throws tElementalException {
+ private dHadronDefinition(boolean check, cElementalConstantStackMap quarks) throws tElementalException {
if (check && !canTheyBeTogether(quarks)) {
throw new tElementalException("Hadron Definition error");
}
@@ -93,7 +83,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
int type = 0;
boolean containsAnti = false;
double mass = 0;
- for (cElementalDefinitionStack quarkStack : quarkStacks.values()) {
+ for (cElementalDefinitionStack quarkStack : quarkStacks.valuesToArray()) {
amount += quarkStack.amount;
if((int)quarkStack.amount!=quarkStack.amount){
throw new ArithmeticException("Amount cannot be safely converted to int!");
@@ -131,9 +121,9 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
}
//public but u can just try{}catch(){} the constructor it still calls this method
- private static boolean canTheyBeTogether(cElementalDefinitionStackMap stacks) {
+ private static boolean canTheyBeTogether(cElementalConstantStackMap stacks) {
long amount = 0;
- for (cElementalDefinitionStack quarks : stacks.values()) {
+ for (cElementalDefinitionStack quarks : stacks.valuesToArray()) {
if (!(quarks.definition instanceof eQuarkDefinition)) {
return false;
}
@@ -153,7 +143,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
if(sym!=null){
name.append(' ').append(sym);
}else {
- for (cElementalDefinitionStack quark : quarkStacks.values()) {
+ for (cElementalDefinitionStack quark : quarkStacks.valuesToArray()) {
name.append(' ').append(quark.definition.getSymbol()).append((int)quark.amount);
}
}
@@ -184,7 +174,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
return sym;
}else {
StringBuilder symbol = new StringBuilder(8);
- for (cElementalDefinitionStack quark : quarkStacks.values()) {
+ for (cElementalDefinitionStack quark : quarkStacks.valuesToArray()) {
for (int i = 0; i < quark.amount; i++) {
symbol.append(quark.definition.getSymbol());
}
@@ -200,7 +190,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
return sym;
}else {
StringBuilder symbol = new StringBuilder(8);
- for (cElementalDefinitionStack quark : quarkStacks.values()) {
+ for (cElementalDefinitionStack quark : quarkStacks.valuesToArray()) {
for (int i = 0; i < quark.amount; i++) {
symbol.append(quark.definition.getShortSymbol());
}
@@ -215,13 +205,13 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
}
@Override
- public cElementalDefinitionStackMap getSubParticles() {
+ public cElementalConstantStackMap getSubParticles() {
return quarkStacks;
}
@Override
public cElementalDecay[] getNaturalDecayInstant() {
- cElementalDefinitionStack[] quarkStacks = this.quarkStacks.values();
+ cElementalDefinitionStack[] quarkStacks = this.quarkStacks.valuesToArray();
if (amount == 2 && quarkStacks.length == 2 && quarkStacks[0].definition.getMass() == quarkStacks[1].definition.getMass() && quarkStacks[0].definition.getType() == -quarkStacks[1].definition.getType()) {
return cElementalDecay.noProduct;
}
@@ -243,7 +233,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
@Override
public cElementalDecay[] getEnergyInducedDecay(long energyLevel) {
- cElementalDefinitionStack[] quarkStacks = this.quarkStacks.values();
+ cElementalDefinitionStack[] quarkStacks = this.quarkStacks.valuesToArray();
if (amount == 2 && quarkStacks.length == 2 && quarkStacks[0].definition.getMass() == quarkStacks[1].definition.getMass() && quarkStacks[0].definition.getType() == -quarkStacks[1].definition.getType()) {
return cElementalDecay.noProduct;
}
@@ -277,7 +267,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
@Override
public cElementalDecay[] getDecayArray() {
- cElementalDefinitionStack[] quarkStacks = this.quarkStacks.values();
+ cElementalDefinitionStack[] quarkStacks = this.quarkStacks.valuesToArray();
if (amount == 2 && quarkStacks.length == 2 &&
quarkStacks[0].definition.getMass() == quarkStacks[1].definition.getMass() &&
quarkStacks[0].definition.getType() == -quarkStacks[1].definition.getType()) {
@@ -297,15 +287,17 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
cElementalDefinitionStack[] decay;
if (Math.abs(lastQuark.getType()) > 1) {
- decay = lastQuark.getDecayArray()[1].outputStacks.values();
+ decay = lastQuark.getDecayArray()[1].outputStacks.valuesToArray();
} else {
- decay = lastQuark.getDecayArray()[2].outputStacks.values();
+ decay = lastQuark.getDecayArray()[2].outputStacks.valuesToArray();
}
newBaryon.add((eQuarkDefinition) decay[0].definition);
Particles[0] = decay[1].definition;
Particles[1] = decay[2].definition;
- eQuarkDefinition[] contentOfBaryon = newBaryon.toArray(new eQuarkDefinition[3]);
+ cElementalDefinitionStack[] contentOfBaryon = newBaryon.stream()
+ .map(eQuarkDefinition -> new cElementalDefinitionStack(eQuarkDefinition,1))
+ .toArray(cElementalDefinitionStack[]::new);
try {
return new cElementalDecay[]{
@@ -363,12 +355,12 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
@Override
public iElementalDefinition getAnti() {
- cElementalMutableDefinitionStackMap anti = new cElementalMutableDefinitionStackMap();
- for (cElementalDefinitionStack stack : quarkStacks.values()) {
+ cElementalDefinitionStackMap anti = new cElementalDefinitionStackMap();
+ for (cElementalDefinitionStack stack : quarkStacks.valuesToArray()) {
anti.putReplace(new cElementalDefinitionStack(stack.definition.getAnti(), stack.amount));
}
try {
- return new dHadronDefinition(anti.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ return new dHadronDefinition(anti.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
} catch (tElementalException e) {
if (DEBUG_MODE) {
e.printStackTrace();
@@ -414,10 +406,10 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
public static void run() {
try {
- hadron_p = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u.getStackForm(2), eQuarkDefinition.quark_d.getStackForm(1)));
+ hadron_p = new dHadronDefinition(new cElementalConstantStackMap(eQuarkDefinition.quark_u.getStackForm(2), eQuarkDefinition.quark_d.getStackForm(1)));
protonMass = hadron_p.mass;
//redefine the proton with proper lifetime (the lifetime is based on mass comparison)
- hadron_p = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u.getStackForm(2), eQuarkDefinition.quark_d.getStackForm(1)));
+ hadron_p = new dHadronDefinition(new cElementalConstantStackMap(eQuarkDefinition.quark_u.getStackForm(2), eQuarkDefinition.quark_d.getStackForm(1)));
SYMBOL_MAP.put(hadron_p,"p");
NAME_MAP.put(hadron_p,"Proton");
DebugElementalInstanceContainer_EM.STACKS_REGISTERED.add(hadron_p);
@@ -425,10 +417,10 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
SYMBOL_MAP.put(hadron_p_,"~p");
NAME_MAP.put(hadron_p_,"Anti Proton");
DebugElementalInstanceContainer_EM.STACKS_REGISTERED.add(hadron_p_);
- hadron_n = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u.getStackForm(1), eQuarkDefinition.quark_d.getStackForm(2)));
+ hadron_n = new dHadronDefinition(new cElementalConstantStackMap(eQuarkDefinition.quark_u.getStackForm(1), eQuarkDefinition.quark_d.getStackForm(2)));
neutronMass = hadron_n.mass;
//redefine the neutron with proper lifetime (the lifetime is based on mass comparison)
- hadron_n = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u.getStackForm(1), eQuarkDefinition.quark_d.getStackForm(2)));
+ hadron_n = new dHadronDefinition(new cElementalConstantStackMap(eQuarkDefinition.quark_u.getStackForm(1), eQuarkDefinition.quark_d.getStackForm(2)));
SYMBOL_MAP.put(hadron_n, "n");
NAME_MAP.put(hadron_n, "Neutron");
DebugElementalInstanceContainer_EM.STACKS_REGISTERED.add(hadron_n);
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/cPrimitiveDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/cPrimitiveDefinition.java
index a3efe12b7e..8096743b78 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/cPrimitiveDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/cPrimitiveDefinition.java
@@ -2,7 +2,7 @@ package com.github.technus.tectech.mechanics.elementalMatter.definitions.primiti
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
-import static com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay.noDecay;
+import static com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay.noDecay;
/**
* Created by danie_000 on 22.10.2016.
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eBosonDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eBosonDefinition.java
index 9a82cdd6c0..e87df806d3 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eBosonDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eBosonDefinition.java
@@ -1,10 +1,10 @@
package com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
-import static com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay.*;
+import static com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay.*;
import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.eLeptonDefinition.*;
import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.eQuarkDefinition.*;
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eLeptonDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eLeptonDefinition.java
index 1e3b7189a8..c8e3b07f02 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eLeptonDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eLeptonDefinition.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eNeutrinoDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eNeutrinoDefinition.java
index c55e7f6364..0f0725d208 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eNeutrinoDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eNeutrinoDefinition.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eQuarkDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eQuarkDefinition.java
index 9e5b2e66bb..798066466b 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eQuarkDefinition.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eQuarkDefinition.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecay;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecay;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
import static com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.eLeptonDefinition.*;
diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java
index b0b349a268..05f251924e 100644
--- a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java
+++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.recipe;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalDefinition;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -17,16 +17,16 @@ import java.util.HashSet;
import static com.github.technus.tectech.loader.TecTechConfig.DEBUG_MODE;
public class TT_recipe extends GT_Recipe {
- public static final String E_RECIPE_ID = "eRecipeID";
- public final cElementalDefinitionStackMap[] input;
- public final cElementalDefinitionStackMap[] output;
- public final cElementalDefinitionStackMap[] eCatalyst;
- public final IAdditionalCheck additionalCheck;
+ public static final String E_RECIPE_ID = "eRecipeID";
+ public final cElementalConstantStackMap[] input;
+ public final cElementalConstantStackMap[] output;
+ public final cElementalConstantStackMap[] eCatalyst;
+ public final IAdditionalCheck additionalCheck;
public TT_recipe(boolean aOptimize,
ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances,
FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue,
- cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check){
+ cElementalConstantStackMap[] in, cElementalConstantStackMap[] out, cElementalConstantStackMap[] catalyst, IAdditionalCheck check){
super(aOptimize,aInputs,aOutputs,aSpecialItems,aChances,aFluidInputs,aFluidOutputs,aDuration,aEUt,aSpecialValue);
input=in;
output=out;
@@ -110,7 +110,7 @@ public class TT_recipe extends GT_Recipe {
}
if (input != null) {
if (in != null) {
- for (cElementalDefinitionStackMap anInput : input) {
+ for (cElementalConstantStackMap anInput : input) {
if (anInput != null && anInput.hasStacks()) {
if (in.hasStacks()) {
if (!in.removeAllAmounts(consume, anInput)) {
@@ -181,7 +181,7 @@ public class TT_recipe extends GT_Recipe {
public TT_assLineRecipe(boolean aOptimize, ItemStack researchItem,
ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems,
FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue,
- cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check) {
+ cElementalConstantStackMap[] in, cElementalConstantStackMap[] out, cElementalConstantStackMap[] catalyst, IAdditionalCheck check) {
super(aOptimize, aInputs, aOutputs, aSpecialItems, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue, in, out, catalyst, check);
mResearchItem=researchItem;
}
@@ -189,7 +189,7 @@ public class TT_recipe extends GT_Recipe {
public TT_assLineRecipe(boolean aOptimize, ItemStack researchItem,
ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems,
FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue,
- cElementalDefinitionStackMap[] in) {
+ cElementalConstantStackMap[] in) {
this(aOptimize, researchItem, aInputs, aOutputs, aSpecialItems, aFluidInputs, aDuration, aEUt, aSpecialValue, in, null, null,null);
}
}
@@ -199,9 +199,9 @@ public class TT_recipe extends GT_Recipe {
public final GT_Recipe scannerRecipe;
public TT_EMRecipe(boolean aOptimize, GT_Recipe scannerRecipe, iElementalDefinition researchEM,
- ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems,
- FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue,
- cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check) {
+ ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems,
+ FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue,
+ cElementalConstantStackMap[] in, cElementalConstantStackMap[] out, cElementalConstantStackMap[] catalyst, IAdditionalCheck check) {
super(aOptimize, aInputs, aOutputs, aSpecialItems, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue, in, out, catalyst, check);
mResearchEM=researchEM;
this.scannerRecipe=scannerRecipe;
@@ -210,7 +210,7 @@ public class TT_recipe extends GT_Recipe {
public TT_EMRecipe(boolean aOptimize, GT_Recipe scannerRecipe, iElementalDefinition researchEM,
ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems,
FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue,
- cElementalDefinitionStackMap[] in) {
+ cElementalConstantStackMap[] in) {
this(aOptimize, scannerRecipe, researchEM, aInputs, aOutputs, aSpecialItems, aFluidInputs, aDuration, aEUt, aSpecialValue, in, null, null,null);
}
}
diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java
index b08265d2c5..93d6f4ea2b 100644
--- a/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java
+++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.recipe;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
import com.github.technus.tectech.thing.CustomItemList;
@@ -131,7 +131,7 @@ public class TT_recipeAdder extends GT_RecipeAdder {
public static boolean addResearchableEMmachineRecipe(
ItemStack aResearchItem, int totalComputationRequired, int computationRequiredPerSec, int researchEUt, int researchAmperage,
- ItemStack[] aInputs, FluidStack[] aFluidInputs, cElementalDefinitionStackMap[] eInputs,
+ ItemStack[] aInputs, FluidStack[] aFluidInputs, cElementalConstantStackMap[] eInputs,
ItemStack aOutput, int machineDuration, int machineEUt, int machineAmperage) {
if(aInputs==null) {
aInputs = nullItem;
@@ -165,7 +165,7 @@ public class TT_recipeAdder extends GT_RecipeAdder {
public static boolean addResearchableEMcrafterRecipe(
ItemStack aResearchItem, int totalComputationRequired, int computationRequiredPerSec, int researchEUt, int researchAmperage,
- cElementalDefinitionStackMap[] eInputs, cElementalDefinitionStackMap[] catalyst, TT_recipe.IAdditionalCheck check,
+ cElementalConstantStackMap[] eInputs, cElementalConstantStackMap[] catalyst, TT_recipe.IAdditionalCheck check,
ItemStack aOutput, int crafterDuration, int crafterEUt, int crafterAmperage) {
if (aResearchItem==null || totalComputationRequired<=0 || aOutput == null) {
return false;
@@ -188,7 +188,7 @@ public class TT_recipeAdder extends GT_RecipeAdder {
public static boolean addScannableEMmachineRecipe(
iElementalDefinition aResearchEM, int totalComputationRequired, int computationRequiredPerSec, int researchEUt, int researchAmperage,
- ItemStack[] aInputs, FluidStack[] aFluidInputs, cElementalDefinitionStackMap[] eInputs,
+ ItemStack[] aInputs, FluidStack[] aFluidInputs, cElementalConstantStackMap[] eInputs,
ItemStack aOutput, int machineDuration, int machineEUt, int machineAmperage) {
if(aInputs==null) {
aInputs = nullItem;
@@ -215,7 +215,7 @@ public class TT_recipeAdder extends GT_RecipeAdder {
computationRequiredPerSec = Short.MAX_VALUE;
}
ItemStack placeholder=new ItemStack(ElementalDefinitionContainer_EM.INSTANCE);
- ElementalDefinitionContainer_EM.setContent(placeholder,new cElementalDefinitionStackMap(new cElementalDefinitionStack(aResearchEM,1)));
+ ElementalDefinitionContainer_EM.setContent(placeholder,new cElementalConstantStackMap(new cElementalDefinitionStack(aResearchEM,1)));
GT_Recipe thisRecipe=TT_recipe.GT_Recipe_MapTT.sScannableFakeRecipes.addFakeRecipe(false, new ItemStack[]{placeholder}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Writes Research result for "+ GT_MetaTileEntity_EM_machine.machine)}, null, null, totalComputationRequired, researchEUt, researchAmperage| computationRequiredPerSec<<16);
TT_recipe.TT_Recipe_Map_EM.sMachineRecipesEM.add(new TT_recipe.TT_EMRecipe(false,thisRecipe,aResearchEM,aInputs,new ItemStack[]{aOutput},new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Reads Research result")},
aFluidInputs,machineDuration,machineEUt,machineAmperage,eInputs));
@@ -224,7 +224,7 @@ public class TT_recipeAdder extends GT_RecipeAdder {
public static boolean addScannableEMcrafterRecipe(
iElementalDefinition aResearchEM, int totalComputationRequired, int computationRequiredPerSec, int researchEUt, int researchAmperage,
- cElementalDefinitionStackMap[] eInputs, cElementalDefinitionStackMap[] catalyst, TT_recipe.IAdditionalCheck check,
+ cElementalConstantStackMap[] eInputs, cElementalConstantStackMap[] catalyst, TT_recipe.IAdditionalCheck check,
ItemStack aOutput, int crafterDuration, int crafterEUt, int crafterAmperage) {
if (aResearchEM==null || totalComputationRequired<=0 || aOutput == null) {
return false;
@@ -240,7 +240,7 @@ public class TT_recipeAdder extends GT_RecipeAdder {
computationRequiredPerSec = Short.MAX_VALUE;
}
ItemStack placeholder=new ItemStack(ElementalDefinitionContainer_EM.INSTANCE);
- ElementalDefinitionContainer_EM.setContent(placeholder,new cElementalDefinitionStackMap(new cElementalDefinitionStack(aResearchEM,1)));
+ ElementalDefinitionContainer_EM.setContent(placeholder,new cElementalConstantStackMap(new cElementalDefinitionStack(aResearchEM,1)));
GT_Recipe thisRecipe=TT_recipe.GT_Recipe_MapTT.sScannableFakeRecipes.addFakeRecipe(false, new ItemStack[]{placeholder}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Writes Research result for "+ GT_MetaTileEntity_EM_crafting.crafter)}, null, null, totalComputationRequired, researchEUt, researchAmperage| computationRequiredPerSec<<16);
TT_recipe.TT_Recipe_Map_EM.sCrafterRecipesEM.add(new TT_recipe.TT_EMRecipe(false,thisRecipe,aResearchEM,null,new ItemStack[]{aOutput},new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Reads Research result")},
null,crafterDuration,crafterEUt,crafterAmperage,eInputs,null,catalyst,check));
diff --git a/src/main/java/com/github/technus/tectech/thing/item/DebugElementalInstanceContainer_EM.java b/src/main/java/com/github/technus/tectech/thing/item/DebugElementalInstanceContainer_EM.java
index bfd7d266c0..b1f6d8887b 100644
--- a/src/main/java/com/github/technus/tectech/thing/item/DebugElementalInstanceContainer_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/item/DebugElementalInstanceContainer_EM.java
@@ -3,8 +3,8 @@ package com.github.technus.tectech.thing.item;
import com.github.technus.tectech.util.CommonValues;
import com.github.technus.tectech.util.Util;
import com.github.technus.tectech.font.TecTechFontRender;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.iElementalInstanceContainer;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.iElementalContainer;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
@@ -58,8 +58,8 @@ public final class DebugElementalInstanceContainer_EM extends Item implements IE
aStack.stackSize = 1;
if (tTileEntity instanceof IGregTechTileEntity) {
IMetaTileEntity metaTE = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity();
- if (metaTE instanceof iElementalInstanceContainer) {
- cElementalInstanceStackMap content = ((iElementalInstanceContainer) metaTE).getContainerHandler();
+ if (metaTE instanceof iElementalContainer) {
+ cElementalInstanceStackMap content = ((iElementalContainer) metaTE).getContentHandler();
if (tNBT.hasKey("content")) {
try {
content.putUnifyAll(cElementalInstanceStackMap.fromNBT(tNBT.getCompoundTag("content")));
@@ -69,12 +69,12 @@ public final class DebugElementalInstanceContainer_EM extends Item implements IE
}
return true;
}
- ((iElementalInstanceContainer) metaTE).purgeOverflow();
+ ((iElementalContainer) metaTE).purgeOverflow();
tNBT.removeTag("content");
tNBT.removeTag("symbols");
tNBT.removeTag("info");
} else if (content.hasStacks()) {
- ((iElementalInstanceContainer) metaTE).purgeOverflow();
+ ((iElementalContainer) metaTE).purgeOverflow();
tNBT.setTag("info", content.getInfoNBT());
tNBT.setTag("content", content.toNBT());
tNBT.setTag("symbols", content.getShortSymbolsNBT());
diff --git a/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionContainer_EM.java b/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionContainer_EM.java
index fa1c25cbf5..2513bdf8bf 100644
--- a/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionContainer_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionContainer_EM.java
@@ -3,7 +3,7 @@ package com.github.technus.tectech.thing.item;
import com.github.technus.tectech.util.CommonValues;
import com.github.technus.tectech.util.Util;
import com.github.technus.tectech.font.TecTechFontRender;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalConstantStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.thing.item.renderElemental.IElementalItem;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -38,17 +38,17 @@ public final class ElementalDefinitionContainer_EM extends Item implements IElem
}
//return previous thing
- public static cElementalDefinitionStackMap setContent(ItemStack containerItem, cElementalDefinitionStackMap definitions){
+ public static cElementalConstantStackMap setContent(ItemStack containerItem, cElementalConstantStackMap definitions){
if(containerItem.getItem() instanceof ElementalDefinitionContainer_EM) {
NBTTagCompound tNBT = containerItem.stackTagCompound;
if (tNBT == null) {
tNBT = containerItem.stackTagCompound = new NBTTagCompound();
}
- cElementalDefinitionStackMap oldMap=null;
+ cElementalConstantStackMap oldMap =null;
if (tNBT.hasKey("content")) {
try {
- oldMap=cElementalDefinitionStackMap.fromNBT(tNBT.getCompoundTag("content"));
+ oldMap= cElementalConstantStackMap.fromNBT(tNBT.getCompoundTag("content"));
} catch (tElementalException e) {
if (DEBUG_MODE) {
e.printStackTrace();
@@ -63,7 +63,7 @@ public final class ElementalDefinitionContainer_EM extends Item implements IElem
return null;
}
- public static cElementalDefinitionStackMap getContent(ItemStack containerItem){
+ public static cElementalConstantStackMap getContent(ItemStack containerItem){
if(containerItem.getItem() instanceof ElementalDefinitionContainer_EM){
NBTTagCompound tNBT = containerItem.stackTagCompound;
@@ -71,7 +71,7 @@ public final class ElementalDefinitionContainer_EM extends Item implements IElem
return null;
}
try {
- return cElementalDefinitionStackMap.fromNBT(tNBT.getCompoundTag("content"));
+ return cElementalConstantStackMap.fromNBT(tNBT.getCompoundTag("content"));
} catch (tElementalException e) {
if (DEBUG_MODE) {
e.printStackTrace();
@@ -81,17 +81,17 @@ public final class ElementalDefinitionContainer_EM extends Item implements IElem
return null;
}
- public static cElementalDefinitionStackMap clearContent(ItemStack containerItem){
+ public static cElementalConstantStackMap clearContent(ItemStack containerItem){
if(containerItem.getItem() instanceof ElementalDefinitionContainer_EM){
NBTTagCompound tNBT = containerItem.stackTagCompound;
if (tNBT == null) {
return null;
}
- cElementalDefinitionStackMap oldMap=null;
+ cElementalConstantStackMap oldMap =null;
if (tNBT.hasKey("content")) {
try {
- oldMap=cElementalDefinitionStackMap.fromNBT(tNBT.getCompoundTag("content"));
+ oldMap= cElementalConstantStackMap.fromNBT(tNBT.getCompoundTag("content"));
} catch (tElementalException e) {
if (DEBUG_MODE) {
e.printStackTrace();
diff --git a/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionScanStorage_EM.java b/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionScanStorage_EM.java
index c951229c92..e43feb2351 100644
--- a/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionScanStorage_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/item/ElementalDefinitionScanStorage_EM.java
@@ -5,7 +5,7 @@ import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.util.Util;
import com.github.technus.tectech.font.TecTechFontRender;
import com.github.technus.tectech.loader.gui.ModGuiHandler;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.thing.CustomItemList;
import com.github.technus.tectech.thing.item.renderElemental.IElementalItem;
import cpw.mods.fml.common.registry.GameRegistry;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java
index c8606f68f0..d25a0c62ed 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java
@@ -1,8 +1,8 @@
package com.github.technus.tectech.thing.metaTileEntity.hatch;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.iElementalInstanceContainer;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.iElementalContainer;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
import com.github.technus.tectech.mechanics.pipe.IConnectsToElementalPipe;
import com.github.technus.tectech.util.Util;
@@ -34,7 +34,7 @@ import static net.minecraft.util.StatCollector.translateToLocalFormatted;
/**
* Created by danie_000 on 11.12.2016.
*/
-public abstract class GT_MetaTileEntity_Hatch_ElementalContainer extends GT_MetaTileEntity_Hatch implements iElementalInstanceContainer, IConnectsToElementalPipe {
+public abstract class GT_MetaTileEntity_Hatch_ElementalContainer extends GT_MetaTileEntity_Hatch implements iElementalContainer, IConnectsToElementalPipe {
private static Textures.BlockIcons.CustomIcon EM_T_SIDES;
private static Textures.BlockIcons.CustomIcon EM_T_ACTIVE;
private static Textures.BlockIcons.CustomIcon EM_T_CONN;
@@ -165,7 +165,7 @@ public abstract class GT_MetaTileEntity_Hatch_ElementalContainer extends GT_Meta
}
@Override
- public cElementalInstanceStackMap getContainerHandler() {
+ public cElementalInstanceStackMap getContentHandler() {
return content;
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputElemental.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputElemental.java
index a1e4f5a8a5..1426e8a702 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputElemental.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputElemental.java
@@ -62,7 +62,7 @@ public class GT_MetaTileEntity_Hatch_OutputElemental extends GT_MetaTileEntity_H
if (aMetaTileEntity != null) {
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputElemental &&
opposite == tGTTileEntity.getFrontFacing()) {
- ((GT_MetaTileEntity_Hatch_InputElemental) aMetaTileEntity).getContainerHandler().putUnifyAll(content);
+ ((GT_MetaTileEntity_Hatch_InputElemental) aMetaTileEntity).getContentHandler().putUnifyAll(content);
((GT_MetaTileEntity_Hatch_InputElemental) aMetaTileEntity).updateSlots();
content.clear();
return;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
index 329b3cbc14..a61bf27fe3 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
@@ -4,9 +4,9 @@ import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.compatibility.thaumcraft.elementalMatter.definitions.dComplexAspectDefinition;
import com.github.technus.tectech.compatibility.thaumcraft.elementalMatter.definitions.ePrimalAspectDefinition;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalDecayResult;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalMutableDefinitionStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.decay.cElementalDecayResult;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalDefinitionStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.cElementalPrimitive;
import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.dAtomDefinition;
@@ -85,10 +85,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
@Override
public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) {
try {
- cElementalMutableDefinitionStackMap defs = new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap defs = new cElementalDefinitionStackMap();
defs.putUnifyAll(in1.definition.getSubParticles());
defs.putUnifyAll(in2.definition.getSubParticles());
- dAtomDefinition atom = new dAtomDefinition(defs.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ dAtomDefinition atom = new dAtomDefinition(defs.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
out.putUnify(new cElementalInstanceStack(atom, Math.min(in1.amount, in2.amount)));
} catch (Exception e) {
out.putUnifyAll(in1, in2);
@@ -114,10 +114,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
@Override
public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) {
try {
- cElementalMutableDefinitionStackMap defs = new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap defs = new cElementalDefinitionStackMap();
defs.putUnifyAll(in1.definition.getSubParticles());
defs.putUnifyAll(in2.definition.getSubParticles());
- dHadronDefinition hadron = new dHadronDefinition(defs.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ dHadronDefinition hadron = new dHadronDefinition(defs.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
out.putUnify(new cElementalInstanceStack(hadron, Math.min(in1.amount, in2.amount)));
} catch (Exception e) {
out.putUnifyAll(in1, in2);
@@ -139,10 +139,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
@Override
public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) {
try {
- cElementalMutableDefinitionStackMap defs = new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap defs = new cElementalDefinitionStackMap();
defs.putUnifyAll(in1.definition.getSubParticles());
defs.putUnify(in2.definition.getStackForm(1));
- dHadronDefinition hadron = new dHadronDefinition(defs.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ dHadronDefinition hadron = new dHadronDefinition(defs.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
out.putUnify(new cElementalInstanceStack(hadron, Math.min(in1.amount, in2.amount)));
} catch (Exception e) {
out.putUnifyAll(in1, in2);
@@ -183,10 +183,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
PRIMITIVE_FUSE_HANDLERS.put(eQuarkDefinition.class.getName() + '\0' + eQuarkDefinition.class.getName(), (in1, in2, out) -> {
try {
- cElementalMutableDefinitionStackMap defs = new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap defs = new cElementalDefinitionStackMap();
defs.putUnify(in1.definition.getStackForm(1));
defs.putUnify(in2.definition.getStackForm(1));
- dHadronDefinition hadron = new dHadronDefinition(defs.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ dHadronDefinition hadron = new dHadronDefinition(defs.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
out.putUnify(new cElementalInstanceStack(hadron, Math.min(in1.amount, in2.amount)));
} catch (Exception e) {
out.putUnifyAll(in1, in2);
@@ -210,10 +210,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
private static boolean fuseAspects(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) {
try {
- cElementalMutableDefinitionStackMap defs = new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap defs = new cElementalDefinitionStackMap();
defs.putUnify(in1.definition.getStackForm(1));
defs.putUnify(in2.definition.getStackForm(1));
- dComplexAspectDefinition aspect = new dComplexAspectDefinition(defs.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ dComplexAspectDefinition aspect = new dComplexAspectDefinition(defs.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
out.putUnify(new cElementalInstanceStack(aspect, Math.min(in1.amount, in2.amount)));
} catch (Exception e) {
out.putUnifyAll(in1, in2);
@@ -246,10 +246,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
@Override
public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) {
try {
- cElementalMutableDefinitionStackMap defs = new cElementalMutableDefinitionStackMap();
+ cElementalDefinitionStackMap defs = new cElementalDefinitionStackMap();
defs.putUnifyAll(in1.definition.getSubParticles());
defs.putUnify(in2.definition.getStackForm(1));
- dAtomDefinition atom = new dAtomDefinition(defs.toImmutable_optimized_unsafeLeavesExposedElementalTree());
+ dAtomDefinition atom = new dAtomDefinition(defs.toImmutable_optimized_unsafe_LeavesExposedElementalTree());
out.putUnify(new cElementalInstanceStack(atom, Math.min(in1.amount, in2.amount)));
} catch (Exception e) {
out.putUnifyAll(in1, in2);
@@ -394,7 +394,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
colliderHandler = FUSE_HANDLERS.get((stack.definition.getClassType() << 16) | stack2.definition.getClassType());
if (handleRecipe(stack2, map, colliderHandler)) return 0;
}
- for (cElementalInstanceStack newStack : map.values()) {
+ for (cElementalInstanceStack newStack : map.valuesToArray()) {
check &= newStack.definition.fusionMakesEnergy(newStack.getEnergy());
}
//System.out.println("outputEM[0].getMass() = " + outputEM[0].getMass());
@@ -525,7 +525,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
if (started) {
if (stack == null) {
for (GT_MetaTileEntity_Hatch_InputElemental inputElemental : eInputHatches) {
- cElementalInstanceStackMap container = inputElemental.getContainerHandler();
+ cElementalInstanceStackMap container = inputElemental.getContentHandler();
if (container.isEmpty()) {
continue;
}
@@ -590,7 +590,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
if (outputEM != null) {
for (int i = 0, lim = Math.min(outputEM.length, eOutputHatches.size()); i < lim; i++) {
if (outputEM[i] != null) {
- eOutputHatches.get(i).getContainerHandler().putUnifyAll(outputEM[i]);
+ eOutputHatches.get(i).getContentHandler().putUnifyAll(outputEM[i]);
outputEM[i] = null;
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java
index ad7a2c91a6..ed245b0e97 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.structure.adders.IHatchAdder;
import com.github.technus.tectech.mechanics.structure.Structure;
@@ -118,7 +118,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
cElementalInstanceStackMap map = getInputsClone_EM();
if (map != null && map.hasStacks()) {
for (GT_MetaTileEntity_Hatch_InputElemental i : eInputHatches) {
- i.getContainerHandler().clear();
+ i.getContentHandler().clear();
}
return startRecipe(map);
}
@@ -132,7 +132,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
outputEM[0] = input;
outputEM[1] = new cElementalInstanceStackMap();
- for (cElementalInstanceStack stack : outputEM[0].values()) {
+ for (cElementalInstanceStack stack : outputEM[0].valuesToArray()) {
if (stack.getEnergy() == 0 && stack.definition.decayMakesEnergy(1) &&
getBaseMetaTileEntity().decreaseStoredEnergyUnits(
(long) (stack.getEnergySettingCost(1) * URANIUM_MASS_TO_EU_INSTANT), false)) {
@@ -156,7 +156,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
@Override
public void outputAfterRecipe_EM() {
for (int i = 0; i < 2 && i < eOutputHatches.size(); i++) {
- eOutputHatches.get(i).getContainerHandler().putUnifyAll(outputEM[i]);
+ eOutputHatches.get(i).getContentHandler().putUnifyAll(outputEM[i]);
outputEM[i] = null;
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java
index 9814092710..208219cd59 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java
@@ -1,9 +1,9 @@
package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aFluidDequantizationInfo;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aItemDequantizationInfo;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aOredictDequantizationInfo;
@@ -72,7 +72,7 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo
super(aName);
}
- private void startRecipe(iHasElementalDefinition from, long energy) {
+ private void startRecipe(iElementalStack from, long energy) {
mMaxProgresstime = 20;
mEfficiencyIncrease = 10000;
double mass = from.getMass();
@@ -98,8 +98,8 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo
@Override
public boolean checkRecipe_EM(ItemStack itemStack) {
for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) {
- cElementalInstanceStackMap map = in.getContainerHandler();
- for (cElementalInstanceStack stack : map.values()) {
+ cElementalInstanceStackMap map = in.getContentHandler();
+ for (cElementalInstanceStack stack : map.valuesToArray()) {
{
aFluidDequantizationInfo info = stack.getDefinition().someAmountIntoFluidStack();
if (info != null) {
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java
index 29ba91d4b7..d4e85de6f9 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java
@@ -116,7 +116,7 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB
@Override
public boolean checkRecipe_EM(ItemStack itemStack) {
for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) {
- if (in.getContainerHandler().hasStacks()) {
+ if (in.getContentHandler().hasStacks()) {
mEUt = -(int) V[8];
eAmpereFlow = 1 + (eInputHatches.size() + eOutputHatches.size() >> 1);
mMaxProgresstime = 20;
@@ -149,8 +149,8 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB
continue;
}
GT_MetaTileEntity_Hatch_OutputElemental out = eOutputHatches.get(outIndex);
- out.getContainerHandler().putUnifyAll(in.getContainerHandler());
- in.getContainerHandler().clear();
+ out.getContentHandler().putUnifyAll(in.getContentHandler());
+ in.getContentHandler().clear();
}
}
}
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 c3e35ba90c..f5504eadc7 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
@@ -3,9 +3,9 @@ package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.Reference;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
-import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iHasElementalDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.iElementalStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aFluidQuantizationInfo;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aItemQuantizationInfo;
import com.github.technus.tectech.mechanics.elementalMatter.core.transformations.aOredictQuantizationInfo;
@@ -113,7 +113,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
if (aOQI == null) {
continue;
}
- iHasElementalDefinition into = aOQI.output();
+ iElementalStack into = aOQI.output();
if (into != null && isInputEqual(true, false, nullFluid, new ItemStack[]{new ItemStack(is.getItem(), aOQI.amount, is.getItemDamage())}, null, inI)) {
startRecipe(into);
return true;
@@ -124,7 +124,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
if (DEBUG_MODE) {
TecTech.LOGGER.info("Quantifier-Item-recipe " + is.getItem().getUnlocalizedName() + '.' + is.getItemDamage());
}
- iHasElementalDefinition into = aIQI.output();
+ iElementalStack into = aIQI.output();
if (into != null && isInputEqual(true, false, nullFluid, new ItemStack[]{new ItemStack(is.getItem(), aIQI.input().stackSize, is.getItemDamage())}, null, inI)) {
startRecipe(into);
return true;
@@ -140,7 +140,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
if (aFQI == null) {
continue;
}
- iHasElementalDefinition into = aFQI.output();
+ iElementalStack into = aFQI.output();
if (into != null && fs.amount >= aFQI.input().amount && isInputEqual(true, false,
new FluidStack[]{aFQI.input()}, nullItem, inF, (ItemStack[]) null)) {
startRecipe(into);
@@ -152,7 +152,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
return false;
}
- private void startRecipe(iHasElementalDefinition into) {
+ private void startRecipe(iElementalStack into) {
mMaxProgresstime = 20;
mEfficiencyIncrease = 10000;
double mass = into.getMass();
@@ -176,7 +176,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
stopMachine();
return;
}
- eOutputHatches.get(0).getContainerHandler().putUnifyAll(outputEM[0]);
+ eOutputHatches.get(0).getContentHandler().putUnifyAll(outputEM[0]);
outputEM = null;
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java
index b418ec0fa4..d02088e805 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java
@@ -2,7 +2,7 @@ package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
@@ -218,11 +218,11 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
@Override
public boolean checkRecipe_EM(ItemStack itemStack) {
eRecipe = null;
- if (!eInputHatches.isEmpty() && eInputHatches.get(0).getContainerHandler().hasStacks() && !eOutputHatches.isEmpty()) {
- cElementalInstanceStackMap researchEM = eInputHatches.get(0).getContainerHandler();
+ if (!eInputHatches.isEmpty() && eInputHatches.get(0).getContentHandler().hasStacks() && !eOutputHatches.isEmpty()) {
+ cElementalInstanceStackMap researchEM = eInputHatches.get(0).getContentHandler();
if (ItemList.Tool_DataOrb.isStackEqual(itemStack, false, true)) {
GT_Recipe scannerRecipe = null;
- for (cElementalInstanceStack stackEM : researchEM.values()) {
+ for (cElementalInstanceStack stackEM : researchEM.valuesToArray()) {
objectsScanned = null;
eRecipe = TT_recipe.TT_Recipe_Map_EM.sMachineRecipesEM.findRecipe(stackEM.definition);
if (eRecipe != null) {
@@ -258,7 +258,7 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
} else if (CustomItemList.scanContainer.isStackEqual(itemStack, false, true)) {
eRecipe = null;
if (researchEM.hasStacks()) {
- objectsScanned = researchEM.takeAllToNewMap();
+ objectsScanned = researchEM.takeAll();
cleanMassEM_EM(objectsScanned.getMass());
computationRequired = 0;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
index 1fcc0b42f2..ba6ae223f6 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
@@ -10,7 +10,7 @@ import com.github.technus.tectech.mechanics.alignment.IAlignmentLimits;
import com.github.technus.tectech.mechanics.alignment.enumerable.ExtendedFacing;
import com.github.technus.tectech.mechanics.alignment.enumerable.Flip;
import com.github.technus.tectech.mechanics.alignment.enumerable.Rotation;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalDefinitionStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.tElementalException;
@@ -1297,26 +1297,26 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
}
double remaining = voider.overflowMax - voider.getOverflowMatter();
for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) {
- for (cElementalInstanceStack instance : in.getContainerHandler().values()) {
+ for (cElementalInstanceStack instance : in.getContentHandler().valuesToArray()) {
double qty = div(remaining,instance.definition.getMass());
if (qty > 0) {
qty = min(qty, instance.amount);
if (voider.addOverflowMatter(instance.definition.getMass() * qty)) {
voider.setOverflowMatter(voider.overflowMax);
}
- in.getContainerHandler().removeAmount(false, new cElementalDefinitionStack(instance.definition, qty));
+ in.getContentHandler().removeAmount(false, new cElementalDefinitionStack(instance.definition, qty));
}
}
}
for (GT_MetaTileEntity_Hatch_OutputElemental out : eOutputHatches) {
- for (cElementalInstanceStack instance : out.getContainerHandler().values()) {
+ for (cElementalInstanceStack instance : out.getContentHandler().valuesToArray()) {
double qty = div(remaining,instance.definition.getMass());
if (qty > 0) {
qty = min(qty, instance.amount);
if (voider.addOverflowMatter(instance.definition.getMass() * qty)) {
voider.setOverflowMatter(voider.overflowMax);
}
- out.getContainerHandler().removeAmount(false, new cElementalDefinitionStack(instance.definition, qty));
+ out.getContentHandler().removeAmount(false, new cElementalDefinitionStack(instance.definition, qty));
}
}
}
@@ -1932,7 +1932,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
public final cElementalInstanceStackMap getInputsClone_EM() {
cElementalInstanceStackMap in = new cElementalInstanceStackMap();
for (GT_MetaTileEntity_Hatch_ElementalContainer hatch : eInputHatches) {
- in.putUnifyAll(hatch.getContainerHandler());
+ in.putUnifyAll(hatch.getContentHandler());
}
return in.hasStacks() ? in : null;
}
@@ -1941,7 +1941,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
public final cElementalInstanceStackMap getOutputsClone_EM() {
cElementalInstanceStackMap out = new cElementalInstanceStackMap();
for (GT_MetaTileEntity_Hatch_ElementalContainer hatch : eOutputHatches) {
- out.putUnifyAll(hatch.getContainerHandler());
+ out.putUnifyAll(hatch.getContentHandler());
}
return out.hasStacks() ? out : null;
}
@@ -1971,7 +1971,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
if (target == null) {
return;
}
- cleanMassEM_EM(target.getContainerHandler().getMass());
+ cleanMassEM_EM(target.getContentHandler().getMass());
}
public void cleanStackEM_EM(cElementalInstanceStack target) {
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
index 1ed1278bce..093a418056 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.dAtomDefinition;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction;
@@ -116,7 +116,7 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.IBehav
cElementalInstanceStackMap input = inputs[0];
if (input == null || input.isEmpty()) return null;//nothing in only valid input
- cElementalInstanceStack[] stacks = input.values();
+ cElementalInstanceStack[] stacks = input.valuesToArray();
double inputMass = 0;
for (cElementalInstanceStack stack : stacks) {
@@ -129,7 +129,7 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.IBehav
randomStack.amount= sub(randomStack.amount,amountToRemove);//mutates the parent InstanceStackMap
if (randomStack.amount <= 0) {
input.remove(randomStack.definition);
- stacks = input.values();
+ stacks = input.valuesToArray();
}
double mass = Math.abs(randomStack.getDefinition().getMass()) * amountToRemove;
excessMass += mass;
@@ -162,7 +162,7 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.IBehav
//take all from hatch handler and put into new map - this takes from hatch to inner data storage
- stacks = input.takeAllToNewMap().values();//cleanup stacks
+ stacks = input.takeAll().valuesToArray();//cleanup stacks
if (stacks.length > 1) {
Arrays.sort(stacks, (o1, o2) -> {
double m1 = o1.definition.getMass();
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java
index df21feb9f2..d335bac7ab 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java
index 40e2942bab..6ac6ac74c4 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java
@@ -1,7 +1,7 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
import com.github.technus.tectech.TecTech;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.dAtomDefinition;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction;
@@ -147,7 +147,7 @@ public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_
cElementalInstanceStackMap input = inputs[0];
if (input == null || input.isEmpty()) return null;//nothing in only valid input
- cElementalInstanceStack[] stacks = input.values();
+ cElementalInstanceStack[] stacks = input.valuesToArray();
double inputMass = 0;
for (cElementalInstanceStack stack : stacks) {
@@ -185,7 +185,7 @@ public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_
double levelsCountPlus1=precisionFullIn-precisionMinimalIn+1;
//take all from hatch handler and put into new map - this takes from hatch to inner data storage
- stacks = input.takeAllToNewMap().values();//cleanup stacks
+ stacks = input.takeAll().valuesToArray();//cleanup stacks
for(cElementalInstanceStack stack:stacks){
double charge=stack.definition.getCharge()-offsetIn;
if(charge<precisionMinimalIn && charge>-precisionMinimalIn){
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java
index cd6f637d61..97ece16fb1 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java
index c86c06b2a0..f7aa945d69 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java
index 95bb8dce40..2dc9067e22 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java
@@ -1,6 +1,6 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java
index 6b26132292..d9217171d3 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java
@@ -2,7 +2,7 @@ package com.github.technus.tectech.thing.metaTileEntity.multi.em_machine;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
-import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.maps.cElementalInstanceStackMap;
import com.github.technus.tectech.mechanics.structure.adders.IHatchAdder;
import com.github.technus.tectech.mechanics.structure.Structure;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
@@ -258,7 +258,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
for (int i = 0; i < 6; i++) {
int pointer = (int) inputMux[i].get();
if (pointer >= 0 && pointer < eInputHatches.size()) {
- handles[i] = eInputHatches.get(pointer).getContainerHandler();
+ handles[i] = eInputHatches.get(pointer).getContentHandler();
}
}
@@ -315,7 +315,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
for (int i = 0; i < 6; i++) {
int pointer = (int) outputMux[i].get();
if (pointer >= 0 && pointer < eOutputHatches.size()) {
- handles[i] = eOutputHatches.get(pointer).getContainerHandler();
+ handles[i] = eOutputHatches.get(pointer).getContentHandler();
}
}
//output