aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-05-13 22:41:53 +0200
committerTechnus <daniel112092@gmail.com>2017-05-13 22:41:53 +0200
commit483f7190a5189c8797c25903eaa943557c6be120 (patch)
tree1eb5f50d2b71e2a2c945aab45ca768537fd9db01
parent481bfaedb9186673b68232ff8b791489d7605221 (diff)
downloadGT5-Unofficial-483f7190a5189c8797c25903eaa943557c6be120.tar.gz
GT5-Unofficial-483f7190a5189c8797c25903eaa943557c6be120.tar.bz2
GT5-Unofficial-483f7190a5189c8797c25903eaa943557c6be120.zip
refactors
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java7
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java1
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java5
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java14
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java14
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java5
-rw-r--r--src/main/java/com/github/technus/tectech/loader/CasingLoader.java13
-rw-r--r--src/main/java/com/github/technus/tectech/loader/ElementalLoader.java38
-rw-r--r--src/main/java/com/github/technus/tectech/loader/MachineLoader.java11
-rw-r--r--src/main/java/com/github/technus/tectech/loader/MainLoader.java8
-rw-r--r--src/main/java/com/github/technus/tectech/loader/RecipeLoader.java31
-rw-r--r--src/main/java/com/github/technus/tectech/loader/ThingsLoader.java5
12 files changed, 89 insertions, 63 deletions
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
index 88c4fb7f8b..4d51920939 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java
@@ -7,6 +7,7 @@ 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.elementalMatter.definitions.cPrimitiveDefinition.nbtE__;
@@ -20,9 +21,11 @@ public abstract class cElementalDefinition implements iElementalDefinition {
//add text based creators for recipe formula input?
private static final Map<Byte, Method> nbtCreationBind = new HashMap<>();//creator methods in subclasses
+ private static final HashSet<Byte> classSet = new HashSet<>();
- protected static Method addCreatorFromNBT(byte b, Method m) {
- return nbtCreationBind.put(b, m);
+ 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
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
index 66da8e4eb4..d37c1e27cc 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java
@@ -55,6 +55,7 @@ public final class cElementalDefinitionStack implements iHasElementalDefinition
}
public cElementalDefinitionStack addAmountIntoNewInstance(int amount) {
+ if(amount==0) return this;
return new cElementalDefinitionStack(definition, amount + this.amount);
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java
index ed5d8624ba..3434d222cd 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java
@@ -1,5 +1,6 @@
package com.github.technus.tectech.elementalMatter.classes;
+import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.auxiliary.TecTechConfig;
import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition;
import net.minecraft.client.Minecraft;
@@ -162,10 +163,12 @@ public abstract class cElementalPrimitive extends cElementalDefinition {
public static void run() {
try {
- cElementalDefinition.addCreatorFromNBT(nbtType, cElementalPrimitive.class.getMethod("fromNBT", NBTTagCompound.class));
+ cElementalDefinition.addCreatorFromNBT(nbtType, cElementalPrimitive.class.getMethod("fromNBT", NBTTagCompound.class),(byte)-128);
} catch (Exception e) {
if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
}
+ if(TecTechConfig.DEBUG_MODE)
+ TecTech.Logger.info("Registered Elemental Matter Class: Primitive "+nbtType+" "+(-128));
}
@Override
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 b2c8108f19..3a9dd38b23 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
@@ -467,13 +467,7 @@ public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize
}
public static void run() {
- try {
- cElementalDefinition.addCreatorFromNBT(nbtType, dAtomDefinition.class.getMethod("fromNBT", NBTTagCompound.class));
- } catch (Exception e) {
- if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
- }
//populate stable isotopes
- el:
for (int element = 1; element < 84; element++)//Up to Astatine exclusive
for (int isotope = 0; isotope < 130; isotope++) {
xstr.setSeed((long) (element + 1) * (isotope + 100));
@@ -527,6 +521,14 @@ public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize
} catch (Exception e) {
if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
}
+
+ try {
+ cElementalDefinition.addCreatorFromNBT(nbtType, dAtomDefinition.class.getMethod("fromNBT", NBTTagCompound.class),(byte)64);
+ } catch (Exception e) {
+ if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
+ }
+ if(TecTechConfig.DEBUG_MODE)
+ TecTech.Logger.info("Registered Elemental Matter Class: Atom "+nbtType+" "+64);
}
public static dAtomDefinition getFirstStableIsotope(int element) {
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 20f66be4c6..4823efdaba 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
@@ -1,5 +1,6 @@
package com.github.technus.tectech.elementalMatter.definitions;
+import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.auxiliary.TecTechConfig;
import com.github.technus.tectech.elementalMatter.classes.*;
import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition;
@@ -298,15 +299,15 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
public static void run() {
try {
- hadron_p = new dHadronDefinition(false, eQuarkDefinition.quark_u, eQuarkDefinition.quark_u, eQuarkDefinition.quark_d);
+ hadron_p = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u, eQuarkDefinition.quark_u, eQuarkDefinition.quark_d));
protonMass = hadron_p.mass;
//redefine the proton with proper lifetime (the lifetime is based on mass comparison)
- hadron_p = new dHadronDefinition(false, eQuarkDefinition.quark_u, eQuarkDefinition.quark_u, eQuarkDefinition.quark_d);
+ hadron_p = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u, eQuarkDefinition.quark_u, eQuarkDefinition.quark_d));
hadron_p_ = (dHadronDefinition) (hadron_p.getAnti());
- hadron_n = new dHadronDefinition(false, eQuarkDefinition.quark_u, eQuarkDefinition.quark_d, eQuarkDefinition.quark_d);
+ hadron_n = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u, eQuarkDefinition.quark_d, eQuarkDefinition.quark_d));
neutronMass = hadron_n.mass;
//redefine the neutron with proper lifetime (the lifetime is based on mass comparison)
- hadron_n = new dHadronDefinition(false, eQuarkDefinition.quark_u, eQuarkDefinition.quark_d, eQuarkDefinition.quark_d);
+ hadron_n = new dHadronDefinition(new cElementalDefinitionStackMap(eQuarkDefinition.quark_u, eQuarkDefinition.quark_d, eQuarkDefinition.quark_d));
hadron_n_ = (dHadronDefinition) (hadron_n.getAnti());
} catch (tElementalException e) {
if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
@@ -317,11 +318,14 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
hadron_n1 = new cElementalDefinitionStack(hadron_n, 1);
hadron_p2 = new cElementalDefinitionStack(hadron_p, 2);
hadron_n2 = new cElementalDefinitionStack(hadron_n, 2);
+
try {
- cElementalDefinition.addCreatorFromNBT(nbtType, dHadronDefinition.class.getMethod("fromNBT", NBTTagCompound.class));
+ cElementalDefinition.addCreatorFromNBT(nbtType, dHadronDefinition.class.getMethod("fromNBT", NBTTagCompound.class),(byte)-64);
} catch (Exception e) {
if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
}
+ if(TecTechConfig.DEBUG_MODE)
+ TecTech.Logger.info("Registered Elemental Matter Class: Hadron "+nbtType+" "+(-64));
}
@Override
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java
index f0dea5b14b..9f65f600af 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java
@@ -1,5 +1,6 @@
package com.github.technus.tectech.elementalMatter.magicAddon.definitions;
+import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.auxiliary.TecTechConfig;
import com.github.technus.tectech.elementalMatter.classes.*;
import com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition;
@@ -123,10 +124,12 @@ public final class dComplexAspectDefinition extends cElementalDefinition {//TODO
public static void run() {
try {
- cElementalDefinition.addCreatorFromNBT(nbtType, dComplexAspectDefinition.class.getMethod("fromNBT", NBTTagCompound.class));
+ cElementalDefinition.addCreatorFromNBT(nbtType, dComplexAspectDefinition.class.getMethod("fromNBT", NBTTagCompound.class),(byte)-96);
} catch (Exception e) {
if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
}
+ if(TecTechConfig.DEBUG_MODE)
+ TecTech.Logger.info("Registered Elemental Matter Class: ComplexAspect "+nbtType+" "+(-96));
}
@Override
diff --git a/src/main/java/com/github/technus/tectech/loader/CasingLoader.java b/src/main/java/com/github/technus/tectech/loader/CasingLoader.java
deleted file mode 100644
index 26ed2e554b..0000000000
--- a/src/main/java/com/github/technus/tectech/loader/CasingLoader.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.github.technus.tectech.loader;
-
-import com.github.technus.tectech.thing.casing.GT_Block_CasingsTT;
-import com.github.technus.tectech.thing.casing.GT_Container_CasingsTT;
-
-/**
- * Created by danie_000 on 03.10.2016.
- */
-public class CasingLoader implements Runnable {
- public void run() {
- GT_Container_CasingsTT.sBlockCasingsTT = new GT_Block_CasingsTT();
- }
-}
diff --git a/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java b/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java
new file mode 100644
index 0000000000..9338cbd916
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java
@@ -0,0 +1,38 @@
+package com.github.technus.tectech.loader;
+
+import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.elementalMatter.classes.cElementalPrimitive;
+import com.github.technus.tectech.elementalMatter.definitions.*;
+import com.github.technus.tectech.elementalMatter.magicAddon.definitions.dComplexAspectDefinition;
+import com.github.technus.tectech.elementalMatter.magicAddon.definitions.ePrimalAspectDefinition;
+import com.github.technus.tectech.thing.block.QuantumGlassBlock;
+import com.github.technus.tectech.thing.item.DebugBuilder;
+import com.github.technus.tectech.thing.item.DebugContainer_EM;
+
+/**
+ * Created by danie_000 on 16.11.2016.
+ */
+public class ElementalLoader implements Runnable {
+ public void run() {
+ // ===================================================================================================
+ // Definition init
+ // ===================================================================================================
+
+ cElementalPrimitive.run();
+
+ cPrimitiveDefinition.run();
+
+ eQuarkDefinition.run();
+ eLeptonDefinition.run();
+ eNeutrinoDefinition.run();
+ eBosonDefinition.run();
+
+ dHadronDefinition.run();
+
+ dAtomDefinition.run();
+
+ ePrimalAspectDefinition.run();
+
+ dComplexAspectDefinition.run();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
index 891d6ae338..338d9d3d53 100644
--- a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
@@ -231,5 +231,16 @@ public class MachineLoader implements Runnable {
// ===================================================================================================
Machine_DebugWriter.set(new GT_MetaTileEntity_DebugStructureWriter(15499, "debug.tt.writer", "Debug Structure Writer", 15).getStackForm(1L));
+
+
+ // ===================================================================================================
+ // MetaTE init
+ // ===================================================================================================
+
+ GT_MetaTileEntity_MultiblockBase_EM.run();
+ GT_MetaTileEntity_Hatch_Rack.run();
+ GT_MetaTileEntity_EM_computer.run();
+ GT_MetaTileEntity_EM_research.run();
+ GT_MetaTileEntity_EM_quantizer.run();
}
}
diff --git a/src/main/java/com/github/technus/tectech/loader/MainLoader.java b/src/main/java/com/github/technus/tectech/loader/MainLoader.java
index 4b3ea41da2..15d966bcb8 100644
--- a/src/main/java/com/github/technus/tectech/loader/MainLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/MainLoader.java
@@ -10,13 +10,13 @@ import static com.github.technus.tectech.TecTech.mainTab;
public class MainLoader {//TODO add checks for - is mod loaded dreamcraft to enable higher tier machinery. (above UV), or implement a check for GT tier values.
public void things() {
- CasingLoader casingLoader = new CasingLoader();
- casingLoader.run();
- TecTech.Logger.info("Casing Init Done");
+ ElementalLoader elementalLoader = new ElementalLoader();
+ elementalLoader.run();
+ TecTech.Logger.info("Elemental Init Done");
ThingsLoader thingsLoader = new ThingsLoader();
thingsLoader.run();
- TecTech.Logger.info("Other things Init Done");
+ TecTech.Logger.info("Block/Item Init Done");
MachineLoader machineLoader = new MachineLoader();
machineLoader.run();
diff --git a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java
index 0512c8def8..8fc038aa5f 100644
--- a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java
@@ -17,37 +17,6 @@ import cpw.mods.fml.common.Loader;
public class RecipeLoader implements Runnable {
public void run() {
// ===================================================================================================
- // Definition init
- // ===================================================================================================
-
- cElementalPrimitive.run();
-
- cPrimitiveDefinition.run();
-
- eQuarkDefinition.run();
- eLeptonDefinition.run();
- eNeutrinoDefinition.run();
- eBosonDefinition.run();
-
- dHadronDefinition.run();
-
- dAtomDefinition.run();
-
- ePrimalAspectDefinition.run();
-
- dComplexAspectDefinition.run();
-
- // ===================================================================================================
- // MetaTE init
- // ===================================================================================================
-
- GT_MetaTileEntity_MultiblockBase_EM.run();
- GT_MetaTileEntity_Hatch_Rack.run();
- GT_MetaTileEntity_EM_computer.run();
- GT_MetaTileEntity_EM_research.run();
- GT_MetaTileEntity_EM_quantizer.run();
-
- // ===================================================================================================
// Recipes init - common goes here rest goes into methods below
// ===================================================================================================
diff --git a/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java b/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java
index c827c1ee24..03fba83f3d 100644
--- a/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java
@@ -2,6 +2,8 @@ package com.github.technus.tectech.loader;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
+import com.github.technus.tectech.thing.casing.GT_Block_CasingsTT;
+import com.github.technus.tectech.thing.casing.GT_Container_CasingsTT;
import com.github.technus.tectech.thing.item.DebugBuilder;
import com.github.technus.tectech.thing.item.DebugContainer_EM;
@@ -10,6 +12,9 @@ import com.github.technus.tectech.thing.item.DebugContainer_EM;
*/
public class ThingsLoader implements Runnable {
public void run() {
+ GT_Container_CasingsTT.sBlockCasingsTT = new GT_Block_CasingsTT();
+ TecTech.Logger.info("Elemental Casing registered");
+
QuantumGlassBlock.run();
TecTech.Logger.info("Quantum Glass registered");