aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-05-29 12:34:18 +0200
committerTechnus <daniel112092@gmail.com>2017-05-29 12:34:18 +0200
commit99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61 (patch)
treeb56e51b42c7a1e0d5fb8602505aa14af1b9faa78 /src
parenteb66bf1cd4d92384dd1e82de156da8f2eb3b1c6f (diff)
downloadGT5-Unofficial-99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61.tar.gz
GT5-Unofficial-99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61.tar.bz2
GT5-Unofficial-99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61.zip
Add Atom overrider
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/TecTech.java7
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java80
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java1
-rw-r--r--src/main/java/com/github/technus/tectech/loader/AtomOverrider.java42
5 files changed, 100 insertions, 32 deletions
diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java
index 0103ca25ce..52e17a4ff8 100644
--- a/src/main/java/com/github/technus/tectech/TecTech.java
+++ b/src/main/java/com/github/technus/tectech/TecTech.java
@@ -2,6 +2,8 @@ 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.loader.AtomOverrider;
import com.github.technus.tectech.loader.MainLoader;
import com.github.technus.tectech.proxy.CommonProxy;
import cpw.mods.fml.common.Loader;
@@ -52,6 +54,7 @@ public class TecTech {
ModConfig = new TecTechConfig(PreEvent.getModConfigurationDirectory(), Reference.COLLECTIONNAME,
Reference.MODID);
+
if (!ModConfig.LoadConfig())
Logger.error(Reference.MODID + " could not load its config file. Things are going to be weird!");
@@ -59,6 +62,9 @@ public class TecTech {
Logger.debug("Module_AdminErrorLogs is enabled");
Module_AdminErrorLogs = new IngameErrorLog();
}
+
+ GTCustomLoader = new MainLoader();
+ dAtomDefinition.overrides.add(new AtomOverrider());
}
@EventHandler
@@ -66,7 +72,6 @@ public class TecTech {
hasCOFH = Loader.isModLoaded(Reference.COFHCORE);
hasThaumcraft = Loader.isModLoaded(Reference.THAUMCRAFT);
- GTCustomLoader = new MainLoader();
GTCustomLoader.load();
proxy.registerRenderInfo();
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java
index 38c7eefacf..8c4b693d86 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java
@@ -31,7 +31,13 @@ public final class dAtomDefinition extends cElementalDefinition {
private static Map<Integer, TreeMap<Float, Integer>> mostStableUnstableIsotopes = new HashMap<>();
private static final Map<Integer, dAtomDefinition> unstableAtoms = new HashMap<>();
private static cElementalDefinitionStack alpha;
- private static final HashMap<dAtomDefinition,Float> lifetimeOverrides=new HashMap<>();
+
+ private static final HashMap<dAtomDefinition,Float> lifetimeOverrides = new HashMap<>();
+ public static final ArrayList<Runnable> overrides = new ArrayList<>();
+
+ public static void addOverride(dAtomDefinition atom, float rawLifeTime){
+ lifetimeOverrides.put(atom,rawLifeTime);
+ }
//float-mass in eV/c^2
public final float mass;
@@ -119,18 +125,22 @@ public final class dAtomDefinition extends cElementalDefinition {
int izoDiff = isotope - StableIsotope;
int izoDiffAbs = Math.abs(izoDiff);
- this.rawLifeTime = calculateLifeTime(izoDiff, izoDiffAbs, element, isotope, containsAnti);
+ hash=super.hashCode();
+
+ Float overridenLifeTime=lifetimeOverrides.get(this);
+ float rawLifeTimeTemp;
+ if(overridenLifeTime!=null)
+ rawLifeTimeTemp = overridenLifeTime;
+ else
+ rawLifeTimeTemp= calculateLifeTime(izoDiff, izoDiffAbs, element, isotope, containsAnti);
+
+ this.rawLifeTime=rawLifeTimeTemp>stableRawLifeTime?stableRawLifeTime:rawLifeTimeTemp;
+
if (izoDiff == 0)
this.decayMode = 0;
else
this.decayMode = izoDiff > 0 ? (byte) Math.min(2, 1 + izoDiffAbs / 4) : (byte) -Math.min(2, 1 + izoDiffAbs / 4);
- this.stable = isStable(this.rawLifeTime);
-
- hash=super.hashCode();
- }
-
- private static boolean isStable(float lifeTime) {
- return lifeTime >= 1.5e25f;
+ this.stable = this.rawLifeTime>=stableRawLifeTime;
}
private static int stableIzoCurve(int element) {
@@ -479,6 +489,16 @@ public final class dAtomDefinition extends cElementalDefinition {
}
public static void run() {
+ for (Runnable r : overrides) r.run();
+
+ for(Map.Entry<dAtomDefinition,Float> entry:lifetimeOverrides.entrySet()){
+ try {
+ lifetimeOverrides.put(new dAtomDefinition(entry.getKey().elementalStacks), entry.getValue());
+ }catch (tElementalException e){
+ e.printStackTrace(); //Impossible
+ }
+ }
+
//populate stable isotopes
for (int element = 1; element < 84; element++)//Up to Astatine exclusive
for (int isotope = 0; isotope < 130; isotope++) {
@@ -488,7 +508,7 @@ public final class dAtomDefinition extends cElementalDefinition {
final int izoDiff = isotope - StableIsotope;
final int izoDiffAbs = Math.abs(izoDiff);
final float rawLifeTime = calculateLifeTime(izoDiff, izoDiffAbs, element, isotope, false);
- if (isStable(rawLifeTime)) {
+ if (rawLifeTime>=stableRawLifeTime) {
TreeSet<Integer> isotopes = stableIsotopes.get(element);
if (isotopes == null) stableIsotopes.put(element, isotopes = new TreeSet<>());
isotopes.add(isotope);
@@ -658,26 +678,26 @@ public final class dAtomDefinition extends cElementalDefinition {
try {
dAtomDefinition temp;
- //temp=new dAtomDefinition(
- // eLeptonDefinition.lepton_e1,
- // dHadronDefinition.hadron_p1,
- // dHadronDefinition.hadron_n1
- //);
- //transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Deuterium.mGas.getID(), 144);
-
- //temp=new dAtomDefinition(
- // eLeptonDefinition.lepton_e1,
- // dHadronDefinition.hadron_p1,
- // dHadronDefinition.hadron_n2
- //);
- //transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Tritium.mGas.getID(), 144);
-
- //temp=new dAtomDefinition(
- // new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 2),
- // dHadronDefinition.hadron_p2,
- // new cElementalDefinitionStack(dHadronDefinition.hadron_n, 3)
- //);
- //transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Helium_3.mGas.getID(), 144);
+ temp=new dAtomDefinition(
+ eLeptonDefinition.lepton_e1,
+ dHadronDefinition.hadron_p1,
+ dHadronDefinition.hadron_n1
+ );
+ transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Deuterium.mGas.getID(), 144);
+
+ temp=new dAtomDefinition(
+ eLeptonDefinition.lepton_e1,
+ dHadronDefinition.hadron_p1,
+ dHadronDefinition.hadron_n2
+ );
+ transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Tritium.mGas.getID(), 144);
+
+ temp=new dAtomDefinition(
+ new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 2),
+ dHadronDefinition.hadron_p2,
+ new cElementalDefinitionStack(dHadronDefinition.hadron_n, 3)
+ );
+ transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Helium_3.mGas.getID(), 144);
temp=new dAtomDefinition(
new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 92),
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java
index 59119f851d..5665288bbb 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java
@@ -80,7 +80,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
int mult = this.amount * this.amount * (this.amount - 1);
this.mass = mass * 5.543F * (float) mult;//yes it becomes heavier
- if (this.mass == protonMass && this.amount == 3) this.rawLifeTime = 1e35F;
+ if (this.mass == protonMass && this.amount == 3) this.rawLifeTime = stableRawLifeTime;
else if (this.mass == neutronMass && this.amount == 3) this.rawLifeTime = 882F;
else {
if (this.amount == 3) {
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java
index 9a88e65f0c..522c6d9547 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java
@@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound;
* Created by danie_000 on 11.11.2016.
*/
public interface iElementalDefinition extends Comparable<iElementalDefinition>,Cloneable {//IMMUTABLE
+ float stableRawLifeTime=1.5e25f;
//Nomenclature
String getName();
diff --git a/src/main/java/com/github/technus/tectech/loader/AtomOverrider.java b/src/main/java/com/github/technus/tectech/loader/AtomOverrider.java
new file mode 100644
index 0000000000..a5fac2c5c9
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/loader/AtomOverrider.java
@@ -0,0 +1,42 @@
+package com.github.technus.tectech.loader;
+
+import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStack;
+import com.github.technus.tectech.elementalMatter.classes.tElementalException;
+import com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition;
+import com.github.technus.tectech.elementalMatter.definitions.dHadronDefinition;
+import com.github.technus.tectech.elementalMatter.definitions.eLeptonDefinition;
+
+import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.addOverride;
+import static com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition.stableRawLifeTime;
+
+/**
+ * Created by Tec on 29.05.2017.
+ */
+public class AtomOverrider implements Runnable{
+ @Override
+ public void run() {
+ try {
+ addOverride(new dAtomDefinition(
+ new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 2),
+ dHadronDefinition.hadron_p2,
+ new cElementalDefinitionStack(dHadronDefinition.hadron_n, 3)
+ ), stableRawLifeTime);//He3
+
+ addOverride(new dAtomDefinition(
+ eLeptonDefinition.lepton_e1,
+ dHadronDefinition.hadron_p1,
+ dHadronDefinition.hadron_n1
+ ), stableRawLifeTime);//D
+
+ addOverride(new dAtomDefinition(
+ eLeptonDefinition.lepton_e1,
+ dHadronDefinition.hadron_p1,
+ dHadronDefinition.hadron_n2
+ ), 1e9f);//T
+
+
+ }catch (tElementalException e){
+ e.printStackTrace();
+ }
+ }
+}