diff options
author | Technus <daniel112092@gmail.com> | 2017-05-13 22:41:53 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-05-13 22:41:53 +0200 |
commit | 483f7190a5189c8797c25903eaa943557c6be120 (patch) | |
tree | 1eb5f50d2b71e2a2c945aab45ca768537fd9db01 | |
parent | 481bfaedb9186673b68232ff8b791489d7605221 (diff) | |
download | GT5-Unofficial-483f7190a5189c8797c25903eaa943557c6be120.tar.gz GT5-Unofficial-483f7190a5189c8797c25903eaa943557c6be120.tar.bz2 GT5-Unofficial-483f7190a5189c8797c25903eaa943557c6be120.zip |
refactors
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"); |