From 19d8463d86ec601d5894d36d2b33ddcb59d1a2fc Mon Sep 17 00:00:00 2001 From: Technus Date: Mon, 18 Sep 2017 21:03:06 +0200 Subject: Refactor --- .../java/com/github/technus/tectech/TecTech.java | 2 +- .../tectech/compatibility/gtpp/GtppAtomLoader.java | 8 +- .../compatibility/thaumcraft/EssentiaCompat.java | 2 +- .../thaumcraft/EssentiaCompatEnabled.java | 4 +- .../definitions/AspectDefinitionCompat.java | 4 +- .../definitions/AspectDefinitionCompatEnabled.java | 6 +- .../definitions/dComplexAspectDefinition.java | 14 +- .../definitions/ePrimalAspectDefinition.java | 4 +- .../GT_MetaTileEntity_EM_essentiaDequantizer.java | 4 +- .../GT_MetaTileEntity_EM_essentiaQuantizer.java | 4 +- .../classes/aFluidDequantizationInfo.java | 49 -- .../classes/aFluidQuantizationInfo.java | 49 -- .../classes/aItemDequantizationInfo.java | 46 -- .../classes/aItemQuantizationInfo.java | 64 -- .../classes/aOredictDequantizationInfo.java | 60 -- .../classes/aOredictQuantizationInfo.java | 60 -- .../classes/bTransformationInfo.java | 87 --- .../elementalMatter/classes/cElementalDecay.java | 65 -- .../classes/cElementalDefinition.java | 104 --- .../classes/cElementalDefinitionStack.java | 89 --- .../classes/cElementalDefinitionStackMap.java | 59 -- .../classes/cElementalInstanceStack.java | 271 -------- .../classes/cElementalInstanceStackMap.java | 430 ------------ .../cElementalMutableDefinitionStackMap.java | 223 ------ .../classes/cElementalPrimitive.java | 188 ----- .../classes/cElementalStackMap.java | 125 ---- .../elementalMatter/classes/rElementalRecipe.java | 52 -- .../classes/rElementalRecipeMap.java | 68 -- .../classes/tElementalException.java | 10 - .../classes/tElementalRecipeCollision.java | 10 - .../elementalMatter/core/cElementalDecay.java | 67 ++ .../core/cElementalDefinitionStackMap.java | 60 ++ .../core/cElementalInstanceStackMap.java | 432 ++++++++++++ .../core/cElementalMutableDefinitionStackMap.java | 225 ++++++ .../elementalMatter/core/cElementalStackMap.java | 126 ++++ .../core/containers/cElementalDefinitionStack.java | 90 +++ .../core/containers/cElementalInstanceStack.java | 274 ++++++++ .../core/interfaces/iElementalDefinition.java | 56 ++ .../interfaces/iElementalInstanceContainer.java | 12 + .../core/interfaces/iExchangeInfo.java | 11 + .../core/interfaces/iHasElementalDefinition.java | 16 + .../elementalMatter/core/rElementalRecipe.java | 52 ++ .../elementalMatter/core/rElementalRecipeMap.java | 68 ++ .../elementalMatter/core/tElementalException.java | 10 + .../core/tElementalRecipeCollision.java | 10 + .../core/templates/cElementalDefinition.java | 105 +++ .../core/templates/cElementalPrimitive.java | 194 ++++++ .../transformations/aFluidDequantizationInfo.java | 49 ++ .../transformations/aFluidQuantizationInfo.java | 49 ++ .../transformations/aItemDequantizationInfo.java | 46 ++ .../transformations/aItemQuantizationInfo.java | 64 ++ .../aOredictDequantizationInfo.java | 60 ++ .../transformations/aOredictQuantizationInfo.java | 60 ++ .../core/transformations/bTransformationInfo.java | 87 +++ .../definitions/cPrimitiveDefinition.java | 35 - .../definitions/complex/dAtomDefinition.java | 760 +++++++++++++++++++++ .../definitions/complex/dHadronDefinition.java | 360 ++++++++++ .../definitions/dAtomDefinition.java | 753 -------------------- .../definitions/dHadronDefinition.java | 351 ---------- .../definitions/eBosonDefinition.java | 37 - .../definitions/eLeptonDefinition.java | 64 -- .../definitions/eNeutrinoDefinition.java | 58 -- .../definitions/eQuarkDefinition.java | 98 --- .../primitive/cPrimitiveDefinition.java | 35 + .../definitions/primitive/eBosonDefinition.java | 37 + .../definitions/primitive/eLeptonDefinition.java | 62 ++ .../definitions/primitive/eNeutrinoDefinition.java | 58 ++ .../definitions/primitive/eQuarkDefinition.java | 98 +++ .../interfaces/iElementalDefinition.java | 52 -- .../interfaces/iElementalInstanceContainer.java | 12 - .../elementalMatter/interfaces/iExchangeInfo.java | 11 - .../interfaces/iHasElementalDefinition.java | 16 - .../technus/tectech/loader/AtomOverrider.java | 14 +- .../technus/tectech/loader/ElementalLoader.java | 6 +- .../technus/tectech/loader/RecipeLoader.java | 2 +- .../github/technus/tectech/recipe/TT_recipe.java | 8 +- .../technus/tectech/recipe/TT_recipeAdder.java | 6 +- .../tectech/thing/item/DebugContainer_EM.java | 6 +- .../tectech/thing/item/DefinitionContainer_EM.java | 4 +- ...GT_MetaTileEntity_Hatch_ElementalContainer.java | 6 +- .../multi/GT_MetaTileEntity_EM_decay.java | 6 +- .../multi/GT_MetaTileEntity_EM_dequantizer.java | 14 +- .../multi/GT_MetaTileEntity_EM_quantizer.java | 14 +- .../multi/GT_MetaTileEntity_EM_scanner.java | 8 +- .../multi/GT_MetaTileEntity_MultiblockBase_EM.java | 8 +- .../entity/projectiles/projectileEM.java | 8 +- .../tileentity/turret/TileTurretHeadEM.java | 2 +- .../tileentity/turretbase/TileTurretBaseEM.java | 2 +- 88 files changed, 3723 insertions(+), 3672 deletions(-) delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalStackMap.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipe.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/rElementalRecipeMap.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/tElementalException.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/classes/tElementalRecipeCollision.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/cElementalDecay.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/cElementalDefinitionStackMap.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/cElementalInstanceStackMap.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/cElementalMutableDefinitionStackMap.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/cElementalStackMap.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/containers/cElementalDefinitionStack.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/containers/cElementalInstanceStack.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/interfaces/iElementalDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/interfaces/iElementalInstanceContainer.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/interfaces/iExchangeInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/interfaces/iHasElementalDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/rElementalRecipe.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/rElementalRecipeMap.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/tElementalException.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/tElementalRecipeCollision.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalPrimitive.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/aFluidDequantizationInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/aFluidQuantizationInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/aItemDequantizationInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/aItemQuantizationInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/aOredictDequantizationInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/aOredictQuantizationInfo.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/core/transformations/bTransformationInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/cPrimitiveDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/dAtomDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/dHadronDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/eBosonDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/eLeptonDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/eNeutrinoDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/eQuarkDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/primitive/cPrimitiveDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/primitive/eBosonDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/primitive/eLeptonDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/primitive/eNeutrinoDefinition.java create mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/definitions/primitive/eQuarkDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalInstanceContainer.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iExchangeInfo.java delete mode 100644 src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iHasElementalDefinition.java (limited to 'src/main/java') diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java index 3f8f0549c0..114c2fb19b 100644 --- a/src/main/java/com/github/technus/tectech/TecTech.java +++ b/src/main/java/com/github/technus/tectech/TecTech.java @@ -2,7 +2,7 @@ package com.github.technus.tectech; import com.github.technus.tectech.auxiliary.Reference; import com.github.technus.tectech.auxiliary.TecTechConfig; -import com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition; +import com.github.technus.tectech.elementalMatter.definitions.complex.dAtomDefinition; import com.github.technus.tectech.loader.AtomOverrider; import com.github.technus.tectech.loader.MainLoader; import com.github.technus.tectech.proxy.CommonProxy; diff --git a/src/main/java/com/github/technus/tectech/compatibility/gtpp/GtppAtomLoader.java b/src/main/java/com/github/technus/tectech/compatibility/gtpp/GtppAtomLoader.java index 13e76073a5..74c545ccb4 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/gtpp/GtppAtomLoader.java +++ b/src/main/java/com/github/technus/tectech/compatibility/gtpp/GtppAtomLoader.java @@ -1,13 +1,13 @@ package com.github.technus.tectech.compatibility.gtpp; -import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStack; +import com.github.technus.tectech.elementalMatter.core.containers.cElementalDefinitionStack; import gregtech.api.enums.OrePrefixes; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.MaterialGenerator; -import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.getBestUnstableIsotope; -import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.getFirstStableIsotope; -import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.transformation; +import static com.github.technus.tectech.elementalMatter.definitions.complex.dAtomDefinition.getBestUnstableIsotope; +import static com.github.technus.tectech.elementalMatter.definitions.complex.dAtomDefinition.getFirstStableIsotope; +import static com.github.technus.tectech.elementalMatter.definitions.complex.dAtomDefinition.transformation; public class GtppAtomLoader implements Runnable{ @Override diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompat.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompat.java index dc0c55439d..06fa753763 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompat.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompat.java @@ -1,6 +1,6 @@ package com.github.technus.tectech.compatibility.thaumcraft; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack; +import com.github.technus.tectech.elementalMatter.core.containers.cElementalInstanceStack; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompatEnabled.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompatEnabled.java index fd50ff3af1..54daa93e33 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompatEnabled.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/EssentiaCompatEnabled.java @@ -1,7 +1,7 @@ package com.github.technus.tectech.compatibility.thaumcraft; -import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack; +import com.github.technus.tectech.elementalMatter.core.templates.cElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.containers.cElementalInstanceStack; import com.github.technus.tectech.compatibility.thaumcraft.definitions.iElementalAspect; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompat.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompat.java index 8e2c3a6684..ef33a2601b 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompat.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompat.java @@ -1,8 +1,8 @@ package com.github.technus.tectech.compatibility.thaumcraft.definitions; -import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition; -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.templates.cElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.interfaces.iElementalDefinition; import java.util.HashMap; diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompatEnabled.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompatEnabled.java index c8ce016a20..560c400081 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompatEnabled.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/AspectDefinitionCompatEnabled.java @@ -1,8 +1,8 @@ package com.github.technus.tectech.compatibility.thaumcraft.definitions; -import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition; -import com.github.technus.tectech.elementalMatter.classes.tElementalException; -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.templates.cElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.tElementalException; +import com.github.technus.tectech.elementalMatter.core.interfaces.iElementalDefinition; import thaumcraft.api.aspects.Aspect; import java.util.ArrayList; diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java index 667072a62e..535eafc2cd 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java @@ -1,13 +1,19 @@ package com.github.technus.tectech.compatibility.thaumcraft.definitions; import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.elementalMatter.classes.*; -import com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition; -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.*; +import com.github.technus.tectech.elementalMatter.core.classes.*; +import com.github.technus.tectech.elementalMatter.core.templates.cElementalDefinition; +import com.github.technus.tectech.elementalMatter.core.containers.cElementalDefinitionStack; +import com.github.technus.tectech.elementalMatter.core.transformations.aFluidDequantizationInfo; +import com.github.technus.tectech.elementalMatter.core.transformations.aItemDequantizationInfo; +import com.github.technus.tectech.elementalMatter.core.transformations.aOredictDequantizationInfo; +import com.github.technus.tectech.elementalMatter.definitions.primitive.eBosonDefinition; +import com.github.technus.tectech.elementalMatter.core.interfaces.iElementalDefinition; import net.minecraft.nbt.NBTTagCompound; import static com.github.technus.tectech.auxiliary.TecTechConfig.DEBUG_MODE; -import static com.github.technus.tectech.elementalMatter.classes.cElementalDecay.noDecay; +import static com.github.technus.tectech.elementalMatter.core.cElementalDecay.noDecay; import static com.github.technus.tectech.compatibility.thaumcraft.definitions.AspectDefinitionCompat.aspectDefinitionCompat; /** diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/ePrimalAspectDefinition.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/ePrimalAspectDefinition.java index ff203da5bc..b33da1ba50 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/ePrimalAspectDefinition.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/ePrimalAspectDefinition.java @@ -1,8 +1,8 @@ package com.github.technus.tectech.compatibility.thaumcraft.definitions; -import com.github.technus.tectech.elementalMatter.classes.cElementalPrimitive; +import com.github.technus.tectech.elementalMatter.core.templates.cElementalPrimitive; -import static com.github.technus.tectech.elementalMatter.classes.cElementalDecay.noDecay; +import static com.github.technus.tectech.elementalMatter.core.cElementalDecay.noDecay; import static com.github.technus.tectech.compatibility.thaumcraft.definitions.AspectDefinitionCompat.aspectDefinitionCompat; /** 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 4ad1d4e9b1..17d7d59302 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,8 +2,8 @@ package com.github.technus.tectech.compatibility.thaumcraft.thing.metaTileEntity import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; +import com.github.technus.tectech.elementalMatter.core.containers.cElementalInstanceStack; +import com.github.technus.tectech.elementalMatter.core.cElementalInstanceStackMap; import com.github.technus.tectech.compatibility.thaumcraft.definitions.ePrimalAspectDefinition; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.casing.TT_Container_Casings; 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 b38fab7286..edf5f11b7d 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 @@ -2,8 +2,8 @@ package com.github.technus.tectech.compatibility.thaumcraft.thing.metaTileEntity import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; +import com.github.technus.tectech.elementalMatter.core.containers.cElementalInstanceStack; +import com.github.technus.tectech.elementalMatter.core.cElementalInstanceStackMap; import com.github.technus.tectech.compatibility.thaumcraft.definitions.ePrimalAspectDefinition; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.casing.TT_Container_Casings; diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java deleted file mode 100644 index 9126ae2073..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - -/** - * Created by Tec on 23.05.2017. - */ -public class aFluidDequantizationInfo implements iExchangeInfo { - private final iHasElementalDefinition in; - private final FluidStack out; - - public aFluidDequantizationInfo(iHasElementalDefinition emIn, FluidStack fluidStackOut){ - in=emIn; - out=fluidStackOut; - } - - public aFluidDequantizationInfo(iHasElementalDefinition emIn ,int fluidID,int fluidAmount) { - in = emIn; - out = new FluidStack(fluidID, fluidAmount); - } - - public aFluidDequantizationInfo(iHasElementalDefinition emIn, Fluid fluid, int fluidAmount){ - in=emIn; - out=new FluidStack(fluid,fluidAmount); - } - - @Override - public iHasElementalDefinition input() { - return in.clone();//MEH! - } - - @Override - public FluidStack output() { - return out.copy(); - } - - @Override - public int hashCode() { - return in.getDefinition().hashCode(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof aFluidDequantizationInfo && hashCode() == obj.hashCode(); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java deleted file mode 100644 index 1c26cd2747..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - -/** - * Created by Tec on 23.05.2017. - */ -public class aFluidQuantizationInfo implements iExchangeInfo { - private final FluidStack in; - private final iHasElementalDefinition out; - - public aFluidQuantizationInfo(FluidStack fluidStackIn, iHasElementalDefinition emOut){ - in=fluidStackIn; - out=emOut; - } - - public aFluidQuantizationInfo(int fluidID,int fluidAmount, iHasElementalDefinition emOut){ - in=new FluidStack(fluidID,fluidAmount); - out=emOut; - } - - public aFluidQuantizationInfo(Fluid fluid, int fluidAmount, iHasElementalDefinition emOut){ - in=new FluidStack(fluid,fluidAmount); - out=emOut; - } - - @Override - public FluidStack input() { - return in.copy(); - } - - @Override - public iHasElementalDefinition output() { - return out.clone(); - } - - @Override - public int hashCode() { - return in.getFluidID(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof aFluidQuantizationInfo && hashCode() == obj.hashCode(); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java deleted file mode 100644 index 08162a234c..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_OreDictUnificator; -import net.minecraft.item.ItemStack; - -/** - * Created by Tec on 23.05.2017. - */ -public class aItemDequantizationInfo implements iExchangeInfo { - private final iHasElementalDefinition in; - private final ItemStack out; - - public aItemDequantizationInfo(iHasElementalDefinition emIn, ItemStack itemStackOut){ - in=emIn; - out=itemStackOut; - } - - public aItemDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, Materials material, int amount) { - in = emIn; - out = GT_OreDictUnificator.get(prefix, material, amount); - } - - @Override - public iHasElementalDefinition input() { - return in.clone(); - } - - @Override - public ItemStack output() { - return out.copy(); - } - - @Override - public int hashCode() { - return in.getDefinition().hashCode(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof aItemDequantizationInfo && hashCode() == obj.hashCode(); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java deleted file mode 100644 index c58fd286b7..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_OreDictUnificator; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -/** - * Created by Tec on 23.05.2017. - */ -public class aItemQuantizationInfo implements iExchangeInfo { - private final ItemStack in; - private final boolean skipNBT; - private final iHasElementalDefinition out; - - public aItemQuantizationInfo(ItemStack itemStackIn, boolean skipNBT, iHasElementalDefinition emOut) { - in = itemStackIn; - out = emOut; - this.skipNBT = skipNBT; - } - - public aItemQuantizationInfo(OrePrefixes prefix, Materials material, int amount, boolean skipNBT, iHasElementalDefinition emOut) { - in = GT_OreDictUnificator.get(prefix, material, amount); - out = emOut; - this.skipNBT = skipNBT; - } - - @Override - public ItemStack input() { - return in.copy(); - } - - @Override - public iHasElementalDefinition output() { - return out.clone(); - } - - @Override - public int hashCode() { - return (GameRegistry.findUniqueIdentifierFor(in.getItem())+":"+in.getUnlocalizedName()+":"+in.getItemDamage()).hashCode(); - } - - @Override - public boolean equals(Object obj) { - if(obj instanceof aItemQuantizationInfo){ - //alias - ItemStack b=((aItemQuantizationInfo) obj).in; - if(!in.getUnlocalizedName().equals(((aItemQuantizationInfo) obj).in.getUnlocalizedName())) return false; - - if(!GameRegistry.findUniqueIdentifierFor(in.getItem()).equals( - GameRegistry.findUniqueIdentifierFor(((aItemQuantizationInfo) obj).in.getItem()))) return false; - - if(in.getItemDamage() != OreDictionary.WILDCARD_VALUE && b.getItemDamage() != OreDictionary.WILDCARD_VALUE) { - if (in.getItemDamage() != b.getItemDamage()) return false; - } - return skipNBT || ItemStack.areItemStackTagsEqual(in, b); - } - return false; - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java deleted file mode 100644 index 0f71d1e017..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import net.minecraftforge.oredict.OreDictionary; - -/** - * Created by Tec on 23.05.2017. - */ -public class aOredictDequantizationInfo implements iExchangeInfo { - private final iHasElementalDefinition in; - public final int out; - public final int amount; - - public aOredictDequantizationInfo(iHasElementalDefinition emIn, int id, int qty) { - in = emIn; - out = id; - amount = qty; - } - - public aOredictDequantizationInfo(iHasElementalDefinition emIn, String name, int qty) { - in = emIn; - out = OreDictionary.getOreID(name); - amount = qty; - } - - public aOredictDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, Materials material, int qty) { - in = emIn; - out = OreDictionary.getOreID(prefix.name() + material.mName); - amount = qty; - } - - public aOredictDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, String materialName, int qty) { - in = emIn; - out = OreDictionary.getOreID(prefix.name() + materialName); - amount = qty; - } - - @Override - public iHasElementalDefinition input() { - return in.clone();//MEH! - } - - @Override - public Integer output() { - return out; - } - - @Override - public int hashCode() { - return in.getDefinition().hashCode(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof aOredictDequantizationInfo && hashCode() == obj.hashCode(); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java deleted file mode 100644 index 61c6a39064..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import net.minecraftforge.oredict.OreDictionary; - -/** - * Created by Tec on 23.05.2017. - */ -public class aOredictQuantizationInfo implements iExchangeInfo { - public final int in; - public final int amount; - private final iHasElementalDefinition out; - - public aOredictQuantizationInfo(int id, int qty, iHasElementalDefinition emOut){ - in=id; - amount=qty; - out=emOut; - } - - public aOredictQuantizationInfo(String name, int qty, iHasElementalDefinition emOut){ - in=OreDictionary.getOreID(name); - amount=qty; - out=emOut; - } - - public aOredictQuantizationInfo( OrePrefixes prefix, Materials material, int qty, iHasElementalDefinition emOut){ - in=OreDictionary.getOreID(prefix.name() + material.mName); - amount=qty; - out=emOut; - } - - public aOredictQuantizationInfo( OrePrefixes prefix, String materialName, int qty, iHasElementalDefinition emOut){ - in=OreDictionary.getOreID(prefix.name() + materialName); - amount=qty; - out=emOut; - } - - @Override - public Integer input() { - return in; - } - - @Override - public iHasElementalDefinition output() { - return out.clone(); - } - - @Override - public int hashCode() { - return in; - } - - @Override - public boolean equals(Object obj) { - return obj instanceof aOredictQuantizationInfo && hashCode() == obj.hashCode(); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java deleted file mode 100644 index 5434c65d8f..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.HashMap; - -/** - * Created by Tec on 26.05.2017. - */ -public class bTransformationInfo { - final static public HashMap fluidQuantization=new HashMap<>(32); - public HashMap fluidDequantization; - - final static public HashMap itemQuantization=new HashMap<>(32); - public HashMap itemDequantization; - - final static public HashMap oredictQuantization=new HashMap<>(32); - public HashMap oredictDequantization; - - public bTransformationInfo(){ - fluidDequantization=new HashMap<>(); - itemDequantization=new HashMap<>(); - oredictDequantization=new HashMap<>(); - } - - public bTransformationInfo(int fluidCap,int itemCap, int oreCap){ - if(fluidCap>0)fluidDequantization=new HashMap<>(fluidCap); - if(itemCap>0)itemDequantization=new HashMap<>(itemCap); - if(oreCap>0)oredictDequantization=new HashMap<>(oreCap); - } - - public void addFluid(iHasElementalDefinition em, FluidStack fluidStack){ - fluidQuantization.put(fluidStack.getFluidID(),new aFluidQuantizationInfo(fluidStack,em)); - fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluidStack)); - } - - public void addFluid(iHasElementalDefinition em ,int fluidID,int fluidAmount) { - fluidQuantization.put(fluidID,new aFluidQuantizationInfo(fluidID,fluidAmount,em)); - fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluidID,fluidAmount)); - } - - public void addFluid(iHasElementalDefinition em, Fluid fluid, int fluidAmount){ - fluidQuantization.put(fluid.getID(),new aFluidQuantizationInfo(fluid,fluidAmount,em)); - fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluid,fluidAmount)); - } - - public void addItemQuantization(aItemQuantizationInfo aIQI){ - itemQuantization.put(aIQI,aIQI); - } - - public void addItem(iHasElementalDefinition em, ItemStack itemStack, boolean skipNBT){ - addItemQuantization(new aItemQuantizationInfo(itemStack,skipNBT,em)); - itemDequantization.put(em.getDefinition(),new aItemDequantizationInfo(em,itemStack)); - } - - public void addItem(iHasElementalDefinition 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)); - } - - public void addOredict(iHasElementalDefinition em, int id, int qty){ - oredictQuantization.put(id,new aOredictQuantizationInfo(id,qty,em)); - oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,id,qty)); - } - - public void addOredict(iHasElementalDefinition em, String name, int qty){ - oredictQuantization.put(OreDictionary.getOreID(name),new aOredictQuantizationInfo(name,qty,em)); - oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,name,qty)); - } - - public void addOredict(iHasElementalDefinition 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)); - } - - public void addOredict(iHasElementalDefinition 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)); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java deleted file mode 100644 index 1f6b38e22d..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDecay.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; - -/** - * Created by danie_000 on 22.10.2016. - */ -public final class cElementalDecay { - public static final cElementalDecay[] noDecay = (cElementalDecay[]) null; - //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]; - //this in turn can be used to tell that the thing should just vanish - public final cElementalDefinitionStackMap outputStacks; - public final float probability; - - public cElementalDecay(iElementalDefinition... outSafe) { - this(2F, outSafe); - } - - public cElementalDecay(float probability, iElementalDefinition... outSafe) { - cElementalDefinitionStack[] outArr = new cElementalDefinitionStack[outSafe.length]; - for (int i = 0; i < outArr.length; i++) { - outArr[i] = new cElementalDefinitionStack(outSafe[i], 1); - } - this.outputStacks = new cElementalDefinitionStackMap(outArr); - this.probability = probability; - } - - public cElementalDecay(cElementalDefinitionStack... outSafe) { - this(2F, outSafe); - } - - public cElementalDecay(float probability, cElementalDefinitionStack... out) { - this.outputStacks = new cElementalDefinitionStackMap(out); - this.probability = probability; - } - - public cElementalDecay(cElementalDefinitionStackMap tree) { - this(2F, tree); - } - - public cElementalDecay(float probability, cElementalDefinitionStackMap tree) { - this.outputStacks = tree; - this.probability = probability; - } - - public cElementalInstanceStackMap getResults(float lifeMult, long age, int energy, int amountDecaying) { - cElementalInstanceStackMap decayResult = new cElementalInstanceStackMap(); - if (outputStacks == null) return decayResult;//This is to prevent null pointer exceptions. - //Deny decay code is in instance! - int qtty = 0; - for (cElementalDefinitionStack stack : outputStacks.values()) qtty += stack.amount; - if (qtty <= 0) return decayResult; - //energy /= qtty; - //lifeMult /= (float) qtty; - for (cElementalDefinitionStack stack : outputStacks.values()) { - decayResult.putUnify(new cElementalInstanceStack(stack.definition, - amountDecaying * stack.amount, - lifeMult, age/*new products*/, energy / Math.max(1, stack.amount)));//get instances from stack - } - return decayResult; - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java deleted file mode 100644 index ce12ad5c3d..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import net.minecraft.nbt.NBTTagCompound; - -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; - -import static com.github.technus.tectech.auxiliary.TecTechConfig.DEBUG_MODE; -import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveDefinition.nbtE__; - -/** - * Created by danie_000 on 23.01.2017. - */ -public abstract class cElementalDefinition implements iElementalDefinition { - //Nothing array - public static final iElementalDefinition[] nothing = new cElementalPrimitive[0]; - - //add text based creators for recipe formula input? - private static final Map nbtCreationBind = new HashMap<>();//creator methods in subclasses - private static final HashSet classSet = new HashSet<>(); - - protected static void addCreatorFromNBT(byte shortcutNBT, Method constructorFromNBT,byte classID) { - if(nbtCreationBind.put(shortcutNBT, constructorFromNBT)!=null) throw new Error("Duplicate NBT shortcut! "+shortcutNBT); - if(!classSet.add(classID)) throw new Error("Duplicate Class ID! "+classID); - } - - @Override - public final cElementalDefinition clone() { - return this;//IMMUTABLE - } - - public static iElementalDefinition fromNBT(NBTTagCompound nbt) { - try { - return (iElementalDefinition) nbtCreationBind.get(nbt.getByte("t")).invoke(null, nbt); - } catch (Exception e) { - if (DEBUG_MODE) e.printStackTrace(); - return nbtE__; - } - } - - @Override - public int compareTo(iElementalDefinition o) { - final int classCompare = compareClassID(o); - if (classCompare != 0) return classCompare; - - //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()); - } - - public final int compareClassID(iElementalDefinition obj) { - return ((int) getClassType()) - obj.getClassType(); - } - - //use only for nested operations! - private static int compareInnerContentsWithAmounts(cElementalDefinitionStack[] tc, cElementalDefinitionStack[] sc) { - if (tc == null) { - if (sc == null) return 0; - else return -1; - } - if (sc == null) return 1; - - final int lenDiff = tc.length - sc.length; - if (lenDiff != 0) return lenDiff; - - for (int i = 0; i < tc.length; i++) { - int cn = tc[i].definition.compareTo(sc[i].definition); - if (cn != 0) return cn; - - if (tc[i].amount > sc[i].amount) return 1; - if (tc[i].amount < sc[i].amount) return -1; - } - return 0; - } - - @Override - public final cElementalDefinitionStack getStackForm(int i) { - return new cElementalDefinitionStack(this,i); - } - - @Override - public final boolean equals(Object obj) { - if(this==obj)return true; - if (obj instanceof iElementalDefinition) - return compareTo((iElementalDefinition) obj) == 0; - if (obj instanceof iHasElementalDefinition) - return compareTo(((iHasElementalDefinition) obj).getDefinition()) == 0; - return false; - } - - @Override - public int hashCode() {//Internal amounts should be also hashed - int hash = -(getSubParticles().size() << 4); - for (cElementalDefinitionStack s : getSubParticles().values()) { - hash += ((s.amount & 0x1) == 0 ? -s.amount : s.amount) + s.definition.hashCode(); - } - return hash; - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java deleted file mode 100644 index 7ab4dcdc56..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import net.minecraft.nbt.NBTTagCompound; - -import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveDefinition.null__; - -/** - * Created by danie_000 on 20.11.2016. - */ -public final class cElementalDefinitionStack implements iHasElementalDefinition { - public final iElementalDefinition definition; - public final int amount; - - public cElementalDefinitionStack(iElementalDefinition def, int amount) { - this.definition = def == null ? null__ : def; - this.amount = amount; - } - - @Override - public final cElementalDefinitionStack clone() { - return this;//IMMUTABLE - } - - @Override - public iElementalDefinition getDefinition() { - return definition;//IMMUTABLE - } - - @Override - public int getAmount() { - return amount; - } - - public int getCharge() { - return definition.getCharge() * amount; - } - - public float getMass() { - return definition.getMass() * amount; - } - - public NBTTagCompound toNBT() { - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setTag("d", definition.toNBT()); - nbt.setInteger("q", amount); - return nbt; - } - - public static cElementalDefinitionStack fromNBT(NBTTagCompound nbt) { - return new cElementalDefinitionStack( - cElementalDefinition.fromNBT(nbt.getCompoundTag("d")), - nbt.getInteger("q")); - } - - public cElementalDefinitionStack addAmountIntoNewInstance(int amount) { - if(amount==0) return this; - return new cElementalDefinitionStack(definition, amount + this.amount); - } - - public cElementalDefinitionStack addAmountIntoNewInstance(cElementalDefinitionStack... other) { - if (other == null || other.length == 0) return this; - int i = 0; - for (cElementalDefinitionStack stack : other) - i += stack.amount; - return addAmountIntoNewInstance(i); - } - - @Override - public int compareTo(iHasElementalDefinition o) { - return definition.compareTo(o.getDefinition()); - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof iElementalDefinition) - return definition.compareTo((iElementalDefinition) obj) == 0; - if (obj instanceof iHasElementalDefinition) - return definition.compareTo(((iHasElementalDefinition) obj).getDefinition()) == 0; - return false; - } - - //Amount shouldn't be hashed if this is just indicating amount and not structure - @Override - public int hashCode() { - return definition.hashCode(); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java deleted file mode 100644 index 47b1a29994..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.TreeMap; - -import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveDefinition.nbtE__; - -/** - * Created by Tec on 12.05.2017. - */ -public final class cElementalDefinitionStackMap/*IMMUTABLE*/ extends cElementalStackMap {//Target 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(cElementalDefinitionStack... in) { - map=new cElementalMutableDefinitionStackMap(in).map; - } - - public cElementalDefinitionStackMap(TreeMap in) { - map = new TreeMap<>(in); - } - - //IMMUTABLE DON'T NEED IT - @Override - public final cElementalDefinitionStackMap clone() { - return this; - } - - public cElementalMutableDefinitionStackMap toMutable() { - return new cElementalMutableDefinitionStackMap(map); - } - - @Override - @Deprecated//BETTER TO JUST MAKE A MUTABLE VERSION AND DO SHIT ON IT - public TreeMap getRawMap() { - return toMutable().getRawMap(); - } - - public static cElementalDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { - final cElementalDefinitionStack[] defStacks = new cElementalDefinitionStack[nbt.getInteger("i")]; - for (int i = 0; i < defStacks.length; i++) { - defStacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i))); - if (defStacks[i].definition.equals(nbtE__)) - throw new tElementalException("Something went Wrong"); - } - return new cElementalDefinitionStackMap(defStacks); - } -} diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java deleted file mode 100644 index 7b5b45cc25..0000000000 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java +++ /dev/null @@ -1,271 +0,0 @@ -package com.github.technus.tectech.elementalMatter.classes; - -import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; -import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition; -import net.minecraft.nbt.NBTTagCompound; - -import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveDefinition.null__; - -/** - * Created by danie_000 on 22.10.2016. - */ -public final class cElementalInstanceStack implements iHasElementalDefinition { - public final iElementalDefinition definition; - //energy - if positive then particle should try to decay - public int energy; - //byte color; 0=Red 1=Green 2=Blue 0=Cyan 1=Magenta 2=Yellow, else ignored (-1 - uncolorable) - private byte color; - public long age; - public int amount; - private float lifeTime; - private float lifeTimeMult; - - public cElementalInstanceStack(cElementalDefinitionStack stackSafe) { - this(stackSafe.definition, stackSafe.amount, 1F, 0, 0); - } - - public cElementalInstanceStack(cElementalDefinitionStack stackSafe, float lifeTimeMult, long age, int energy) { - this(stackSafe.definition, stackSafe.amount, lifeTimeMult, age, energy); - } - - public cElementalInstanceStack(iElementalDefinition defSafe, int amount) { - this(defSafe, amount, 1F, 0, 0); - } - - public cElementalInstanceStack(iElementalDefinition defSafe, int amount, float lifeTimeMult, long age, int energy) { - this.definition = defSafe == null ? null__ : defSafe; - byte color = definition.getColor(); - if (color < 0 || color > 2) {//transforms colorable??? into proper color - this.color = color; - } else { - this.color = (byte) (TecTech.Rnd.nextInt(3)); - } - this.lifeTimeMult = lifeTimeMult; - this.lifeTime = definition.getRawLifeTime() * this.lifeTimeMult; - this.age = age; - this.energy = energy; - this.amount = amount; - } - - //Clone proxy - private cElementalInstanceStack(cElementalInstanceStack stack) { - definition = stack.definition; - energy = stack.energy; - color = stack.color; - age = stack.age; - amount = stack.amount; - lifeTime = stack.lifeTime; - lifeTimeMult = stack.lifeTimeMult; - } - - @Override - public final cElementalInstanceStack clone() { - return new cElementalInstanceStack(this); - } - - @Override - public int getAmount() { - return amount; - } - - public int getCharge() { - return definition.getCharge() * amount; - } - - public float getMass() { - return definition.getMass() * amount; - } - - public cElementalDefinitionStack getDefinitionStack() { - return new cElementalDefinitionStack(definition, amount); - } - - @Override - public iElementalDefinition getDefinition() { - return definition; - } - - public byte getColor() { - return color; - } - - public byte setColor(byte color) {//does not allow changing magic element - if (this.color < 0 || this.color > 2 || color < 0 || color >= 3) return this.color; - return this.color = color; - } - - public byte nextColor() {//does not allow changing magic element - if (this.color < 0 || this.color > 2) return this.color; - return this.color = (byte) (TecTech.Rnd.nextInt(3)); - } - - public float getLifeTime() { - return lifeTime; - } - - public float multLifeTime(float mult) { - this.lifeTimeMult = mult; - this.lifeTime = definition.getRawLifeTime() * mult; - return this.lifeTime; - } - - public float getLifeTimeMult() { - return lifeTimeMult; - } - - public cElementalInstanceStackMap decay() { - return decay(1F, age, 0);//try to decay without changes - } - - public cElementalInstanceStackMap decay(long apparentAge, int postEnergize) { - return decay(1F,apparentAge,postEnergize); - } - - public cElementalInstanceStackMap decay(Float lifeTimeMult, long apparentAge, int postEnergize) { - if (this.energy > 0) { - this.energy--; - return decayCompute(definition.getEnergeticDecayInstant(), lifeTimeMult, 0, postEnergize + this.energy); - } else if (definition.getRawLifeTime() < 0) { - return null;//return null, decay cannot be achieved - } else if (1F > this.lifeTime) { - return decayCompute(definition.getNaturalDecayInstant(), lifeTimeMult, 0, postEnergize + this.energy); - } else if (((float) apparentAge) > this.lifeTime) { - return decayCompute(definition.getDecayArray(), lifeTimeMult, 0, postEnergize + this.energy); - } - return null;//return null since decay cannot be achieved - } - - //Use to get direct decay output providing correct decay array - public cElementalInstanceStackMap decayCompute(cElementalDecay[] decays, float lifeTimeMult, long newProductsAge, int energy) { - if (decays == null) return null;//Can not decay so it wont - else if (decays.length == 0) - return new cElementalInstanceStackMap();//provide non null 0 length array for annihilation - else if (decays.length == 1) {//only one type of decay :D, doesn't need dead end - return decays[0].getResults(lifeTimeMult, newProductsAge, energy, this.amount); - } else { - cElementalInstanceStackMap output = new cElementalInstanceStackMap(); - final int differentDecays = decays.length; - int[] qttyOfDecay = new int[differentDecays]; - int amountRemaining = this.amount, amount = this.amount; - float remainingProbability = 1F; - - for (int i = 0; i < differentDecays; i++) { - if (decays[i].probability > 1F) { - int thisDecayAmount = (int) (Math.floor(remainingProbability * (float) amount)); - if (thisDecayAmount == 0) { - //remainingProbability=something; - break; - } else if (thisDecayAmount <= amountRemaining) { - amountRemaining -= thisDecayAmount; - qttyOfDecay[i] += thisDecayAmount; - break; - } - //in case too much was made - qttyOfDecay[i] += amountRemaining; - amountRemaining = 0; - //remainingProbability=0; - break; - } - int thisDecayAmount = (int) (Math.floor(decays[i].probability * (float) amount)); - if (thisDecayAmount <= amountRemaining && thisDecayAmount > 0) {//some was made - remainingProbability -= (decays[i].probability); - amountRemaining -= thisDecayAmount; - qttyOfDecay[i] += thisDecayAmount; - } else if (thisDecayAmount > amountRemaining) {//too much was made - qttyOfDecay[i] += amountRemaining; - amountRemaining = 0; - //remainingProbability=0; - break; - }//if 0 - } - - for (int i = 0; i < amountRemaining; i++) { - double rand = (double) (TecTech.Rnd.nextFloat()); - for (int j = 0; j < differentDecays; j++) {//looking for the thing it decayed into - rand -= (double) (decays[j].probability); - if (rand <= 0D) { - qttyOfDecay[j]++; - break; - } - } - } - - for (int i = 0; i < differentDecays; i++) { - if (qttyOfDecay[i] > 0) - output.putUnifyAll(decays[i].getResults(lifeTimeMult, newProductsAge, energy, qttyOfDecay[i])); - } - return output; - } - } - - public cElementalInstanceStack unifyIntoThis(cElementalInstanceStack... instances) { - if (instances == null) return this; - //returns with the definition from the first object passed - int energy = this.energy * this.amount; - float lifeTimeMul = this.lifeTimeMult; - - for (cElementalInstanceStack instance : instances) { - if (instance != null && this.compareTo(instance) == 0) { - this.amount += instance.amount; - energy += instance.energy * instance.amount; -