diff options
author | Technus <daniel112092@gmail.com> | 2017-05-29 12:34:18 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-05-29 12:34:18 +0200 |
commit | 99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61 (patch) | |
tree | b56e51b42c7a1e0d5fb8602505aa14af1b9faa78 /src | |
parent | eb66bf1cd4d92384dd1e82de156da8f2eb3b1c6f (diff) | |
download | GT5-Unofficial-99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61.tar.gz GT5-Unofficial-99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61.tar.bz2 GT5-Unofficial-99b3126e9bf909e14ff8becb9f1d63d1d8c8cf61.zip |
Add Atom overrider
Diffstat (limited to 'src')
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(); + } + } +} |