aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java22
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/gtpp/GtppAtomLoader.java53
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java2
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java11
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/ePrimalAspectDefinition.java16
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecay.java28
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecayResult.java41
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDefinitionStackMap.java2
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalInstanceStackMap.java67
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalMutableDefinitionStackMap.java5
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalStackMap.java8
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/commands/GiveEM.java4
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalDefinitionStack.java23
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/cElementalInstanceStack.java344
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/stacks/iHasElementalDefinition.java6
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalDefinition.java12
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java22
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java18
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidDequantizationInfo.java8
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aFluidQuantizationInfo.java8
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemDequantizationInfo.java2
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aItemQuantizationInfo.java2
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictDequantizationInfo.java19
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/aOredictQuantizationInfo.java25
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/bTransformationInfo.java23
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/transformations/iExchangeInfo.java6
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dAtomDefinition.java374
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/dHadronDefinition.java97
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/iaeaNuclide.java85
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/cPrimitiveDefinition.java12
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eBosonDefinition.java20
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eLeptonDefinition.java54
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eNeutrinoDefinition.java38
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/primitive/eQuarkDefinition.java109
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java74
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/DebugElementalInstanceContainer_EM.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java21
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OverflowElemental.java20
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java1
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java91
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java17
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java57
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java22
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/MultiblockControl.java68
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java65
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java47
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java6
-rw-r--r--src/main/java/com/github/technus/tectech/util/DoubleCount.java116
49 files changed, 1267 insertions, 918 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java b/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java
index 748888c5c9..df5c11e67b 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java
@@ -1186,6 +1186,26 @@ public class DreamCraftRecipeLoader implements Runnable {
Materials.Concrete.getMolten(73728L)
},
getItemContainer("StargateFramePart").get(1L), 72000, 2000000);
+ //Deep Dark Portal
+ TT_recipeAdder.addResearchableAssemblylineRecipe(GT_ModHandler.getModItem("dreamcraft", "item.HeavyDutyPlateTier8", 1, 0),
+ 16777216, 2048, 2000000, 64, new Object[]{
+ GT_ModHandler.getModItem("ExtraUtilities", "cobblestone_compressed", 1, 7),
+ GT_ModHandler.getModItem("IC2", "blockMachine2", 1, 0),
+ GT_OreDictUnificator.get(OrePrefixes.block, Materials.Infinity, 4L),
+ new Object[]{OrePrefixes.circuit.get(Materials.Nano), 1},
+ new Object[]{OrePrefixes.circuit.get(Materials.Nano), 1},
+ new Object[]{OrePrefixes.circuit.get(Materials.Nano), 1},
+ new Object[]{OrePrefixes.circuit.get(Materials.Nano), 1},
+ GT_ModHandler.getModItem("dreamcraft", "item.PicoWafer", 32, 0),
+ ItemList.Robot_Arm_UEV.get(4),
+ ItemList.Emitter_UEV.get(4),
+ ItemList.Sensor_UEV.get(4),
+ }, new FluidStack[]{
+ new FluidStack(FluidRegistry.getFluid("oganesson"), 50000),
+ Materials.Infinity.getMolten(9216L),
+ Materials.Cheese.getMolten(232000L),
+ }, ItemList.Block_BedrockiumCompressed.get(1), 10000, 5000000);
+
//Batteries
TT_recipeAdder.addResearchableAssemblylineRecipe(ItemList.Energy_Cluster.get(1L), 12000, 16, 100000, 3, new Object[]{
@@ -1218,7 +1238,7 @@ public class DreamCraftRecipeLoader implements Runnable {
ItemList.Circuit_Wafer_UHPIC.get(64),
ItemList.Circuit_Wafer_SoC2.get(32),
ItemList.Circuit_Parts_DiodeASMD.get(64),
- GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.Neutronium, 64),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorUHV, 64),
}, new FluidStack[]{
Materials.SolderingAlloy.getMolten(3760),
Materials.Naquadria.getMolten(9216),
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 ad24f72cb0..32db2caed9 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
@@ -6,6 +6,7 @@ import net.minecraftforge.fluids.FluidStack;
import java.lang.reflect.Method;
+import static com.github.technus.tectech.mechanics.elementalMatter.core.transformations.bTransformationInfo.AVOGADRO_CONSTANT_144;
import static com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.dAtomDefinition.*;
public class GtppAtomLoader implements Runnable{
@@ -57,34 +58,34 @@ public class GtppAtomLoader implements Runnable{
}
//endregion
- transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(10), 144), getFluid("NEON",144));
+ TRANSFORMATION_INFO.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(10), AVOGADRO_CONSTANT_144), getFluid("NEON",144));
generate("GERMANIUM",true,true);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(32), 144), OrePrefixes.dust, getUnlocalizedName("GERMANIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(34), 144), OrePrefixes.dust, getUnlocalizedName("SELENIUM"),1);
- transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(35), 144), getFluid("BROMINE",144));
- transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(36), 144), getFluid("KRYPTON",144));
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(40), 144),OrePrefixes.dust, getUnlocalizedName("ZIRCONIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(43), 144),OrePrefixes.dust, getUnlocalizedName("TECHNETIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(44), 144),OrePrefixes.dust, getUnlocalizedName("RUTHENIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(45), 144),OrePrefixes.dust, getUnlocalizedName("RHODIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(53), 144),OrePrefixes.dust, getUnlocalizedName("IODINE"),1);
- transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(54), 144),getFluid("XENON",144));
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(72), 144),OrePrefixes.dust, getUnlocalizedName("HAFNIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(75), 144),OrePrefixes.dust, getUnlocalizedName("RHENIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(81), 144),OrePrefixes.dust, getUnlocalizedName("THALLIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(32), AVOGADRO_CONSTANT_144), OrePrefixes.dust, getUnlocalizedName("GERMANIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(34), AVOGADRO_CONSTANT_144), OrePrefixes.dust, getUnlocalizedName("SELENIUM"),1);
+ TRANSFORMATION_INFO.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(35), AVOGADRO_CONSTANT_144), getFluid("BROMINE",144));
+ TRANSFORMATION_INFO.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(36), AVOGADRO_CONSTANT_144), getFluid("KRYPTON",144));
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(40), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("ZIRCONIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(43), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("TECHNETIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(44), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("RUTHENIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(45), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("RHODIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(53), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("IODINE"),1);
+ TRANSFORMATION_INFO.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(54), AVOGADRO_CONSTANT_144),getFluid("XENON",144));
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(72), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("HAFNIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(75), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("RHENIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(81), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("THALLIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(84),144),OrePrefixes.dust, getUnlocalizedName("POLONIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(85),144),OrePrefixes.dust, getUnlocalizedName("ASTATINE"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(87),144),OrePrefixes.dust, getUnlocalizedName("FRANCIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(88),144),OrePrefixes.dust, getUnlocalizedName("RADIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(89),144),OrePrefixes.dust, getUnlocalizedName("ACTINIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(91),144),OrePrefixes.dust, getUnlocalizedName("PROTACTINIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(93),144),OrePrefixes.dust, getUnlocalizedName("NEPTUNIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(84), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("POLONIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(85), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("ASTATINE"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(87), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("FRANCIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(88), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("RADIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(89), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("ACTINIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(91), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("PROTACTINIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(93), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("NEPTUNIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(96),144),OrePrefixes.dust, getUnlocalizedName("CURIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(97),144),OrePrefixes.dust, getUnlocalizedName("BERKELIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(98),144),OrePrefixes.dust, getUnlocalizedName("CALIFORNIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(99),144),OrePrefixes.dust, getUnlocalizedName("EINSTEINIUM"),1);
- transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(100),144),OrePrefixes.dust, getUnlocalizedName("FERMIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(96), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("CURIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(97), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("BERKELIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(98), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("CALIFORNIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(99), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("EINSTEINIUM"),1);
+ TRANSFORMATION_INFO.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(100), AVOGADRO_CONSTANT_144),OrePrefixes.dust, getUnlocalizedName("FERMIUM"),1);
}
}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java
index e8163833ee..702ed77315 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java
@@ -59,7 +59,7 @@ public class projectileEM extends LaserProjectile {
avalableEM.clear();
} else {
cElementalInstanceStack consumeFromThis=avalableEM.get(TecTech.RANDOM.nextInt(avalableEM.size()));
- massFactor =consumeFromThis.definition.getMass()/ dHadronDefinition.hadron_n_.getMass();
+ massFactor =(float) (consumeFromThis.definition.getMass()/ dHadronDefinition.hadron_n_.getMass());
if(consumeFromThis.definition.getType()>1 || consumeFromThis.definition.getType()<-1) {
exotic = true;
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 070a05d7e9..ddef29b214 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
@@ -26,7 +26,7 @@ import static net.minecraft.util.StatCollector.translateToLocal;
*/
public final class dComplexAspectDefinition extends cElementalDefinition implements iElementalAspect {
private final int hash;
- public final float mass;
+ public final double mass;
private static final byte nbtType = (byte) 'c';
@@ -74,6 +74,9 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme
if (!(aspects.definition instanceof dComplexAspectDefinition) && !(aspects.definition instanceof ePrimalAspectDefinition)) {
return false;
}
+ if((int)aspects.amount!=aspects.amount){
+ throw new ArithmeticException("Amount cannot be safely converted to int!");
+ }
amount += aspects.amount;
}
return amount == 2;
@@ -160,7 +163,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme
}
@Override
- public float getRawTimeSpan(long currentEnergy) {
+ public double getRawTimeSpan(long currentEnergy) {
return -1;
}
@@ -195,7 +198,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme
}
@Override
- public float getEnergyDiffBetweenStates(long currentEnergyLevel, long newEnergyLevel) {
+ public double getEnergyDiffBetweenStates(long currentEnergyLevel, long newEnergyLevel) {
return iElementalDefinition.DEFAULT_ENERGY_REQUIREMENT * (newEnergyLevel - currentEnergyLevel);
}
@@ -230,7 +233,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme
}
@Override
- public float getMass() {
+ public double getMass() {
return mass;
}
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 bcb6e3f6fc..02e7d2fe21 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
@@ -10,14 +10,14 @@ import static net.minecraft.util.StatCollector.translateToLocal;
*/
public final class ePrimalAspectDefinition extends cElementalPrimitive implements iElementalAspect {
public static final ePrimalAspectDefinition
- magic_air = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Air"), "a`", 1e1F, 35),
- magic_earth = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Earth"), "e`", 1e9F, 34),
- magic_fire = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Fire"), "f`", 1e3F, 33),
- magic_water = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Water"), "w`", 1e7F, 32),
- magic_order = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Order"), "o`", 1e5F, 30),
- magic_entropy = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Entropy"), "e`", 1e5F, 31);
-
- private ePrimalAspectDefinition(String name, String symbol, float mass, int ID) {
+ magic_air = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Air"), "a`", 1e1D, 35),
+ magic_earth = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Earth"), "e`", 1e9D, 34),
+ magic_fire = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Fire"), "f`", 1e3D, 33),
+ magic_water = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Water"), "w`", 1e7D, 32),
+ magic_order = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Order"), "o`", 1e5D, 30),
+ magic_entropy = new ePrimalAspectDefinition(translateToLocal("tt.keyword.Entropy"), "e`", 1e5D, 31);
+
+ private ePrimalAspectDefinition(String name, String symbol, double mass, int ID) {
super(name, symbol, 0, mass, 0, -1, ID);
}
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/cElementalDecay.java
index 7d5e079876..e67f773a86 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/cElementalDecay.java
@@ -4,6 +4,8 @@ import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElement
import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
import com.github.technus.tectech.mechanics.elementalMatter.core.templates.iElementalDefinition;
+import static com.github.technus.tectech.util.DoubleCount.add;
+
/**
* Created by danie_000 on 22.10.2016.
*/
@@ -15,50 +17,50 @@ public final class cElementalDecay {
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 final double probability;
public cElementalDecay(iElementalDefinition... outSafe) {
- this(2F, outSafe);
+ this(1D, outSafe);
}
- public cElementalDecay(float probability, iElementalDefinition... outSafe) {
+ public cElementalDecay(double probability, iElementalDefinition... outSafe) {
cElementalDefinitionStack[] outArr = new cElementalDefinitionStack[outSafe.length];
for (int i = 0; i < outArr.length; i++) {
- outArr[i] = new cElementalDefinitionStack(outSafe[i], 1);
+ outArr[i] = new cElementalDefinitionStack(outSafe[i], 1D);
}
outputStacks = new cElementalDefinitionStackMap(outArr);
this.probability = probability;
}
public cElementalDecay(cElementalDefinitionStack... outSafe) {
- this(2F, outSafe);
+ this(1D, outSafe);
}
- public cElementalDecay(float probability, cElementalDefinitionStack... out) {
+ public cElementalDecay(double probability, cElementalDefinitionStack... out) {
outputStacks = new cElementalDefinitionStackMap(out);
this.probability = probability;
}
public cElementalDecay(cElementalDefinitionStackMap tree) {
- this(2F, tree);
+ this(1D, tree);
}
- public cElementalDecay(float probability, cElementalDefinitionStackMap tree) {
+ public cElementalDecay(double probability, cElementalDefinitionStackMap tree) {
outputStacks = tree;
this.probability = probability;
}
- public cElementalInstanceStackMap getResults(float lifeMult, long age, long energyTotalForProducts, long amountDecaying) {
+ public cElementalInstanceStackMap getResults(double lifeMult, double age, long energyTotalForProducts, double amountDecaying) {
cElementalInstanceStackMap decayResult = new cElementalInstanceStackMap();
if (outputStacks == null) {
return decayResult;//This is to prevent null pointer exceptions.
}
//Deny decay code is in instance!
- long qtty = 0;
+ double qtty = 0D;
for (cElementalDefinitionStack stack : outputStacks.values()) {
- qtty += stack.amount;
+ qtty= add(qtty,stack.amount);
}
- if (qtty <= 0) {
+ if (qtty <= 0D) {
return decayResult;
}
//energyTotalForProducts /= qtty;
@@ -66,7 +68,7 @@ public final class cElementalDecay {
for (cElementalDefinitionStack stack : outputStacks.values()) {
decayResult.putUnify(new cElementalInstanceStack(stack.definition,
amountDecaying * stack.amount,
- lifeMult, age/*new products*/, energyTotalForProducts / Math.max(1, Math.abs(stack.amount))));//get instances from stack
+ lifeMult, age/*new products*/, (long)(energyTotalForProducts / Math.max(1D, Math.abs(stack.amount)))));//get instances from stack
}
return decayResult;
}
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/cElementalDecayResult.java
new file mode 100644
index 0000000000..4ca63d14fe
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/cElementalDecayResult.java
@@ -0,0 +1,41 @@
+package com.github.technus.tectech.mechanics.elementalMatter.core;
+
+public class cElementalDecayResult {
+ private final cElementalInstanceStackMap output;
+ private double massAffected;
+ private double massDiff;
+
+ public cElementalDecayResult(cElementalInstanceStackMap output, double massAffected, double massDiff) {
+ this.output = output;
+ this.massAffected = massAffected;
+ this.massDiff = massDiff;
+ }
+
+ public cElementalInstanceStackMap getOutput() {
+ return output;
+ }
+
+ /**
+ * How much was lost in the process (decayed or removed)
+ * @return
+ */