aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-05-21 16:24:08 +0200
committerTechnus <daniel112092@gmail.com>2017-05-21 16:24:08 +0200
commit27e36620b8639c983b59c47088e71770cab8f7d6 (patch)
treef71feeafeec53ac3dd7a691a9db92011b6b55aad /src
parent5154fd4aa55f39ffe3b8bb0ec5de7f8107510ee3 (diff)
downloadGT5-Unofficial-27e36620b8639c983b59c47088e71770cab8f7d6.tar.gz
GT5-Unofficial-27e36620b8639c983b59c47088e71770cab8f7d6.tar.bz2
GT5-Unofficial-27e36620b8639c983b59c47088e71770cab8f7d6.zip
ThaumcraftCompat
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/TecTech.java8
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java8
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java8
-rw-r--r--src/main/java/com/github/technus/tectech/loader/ElementalLoader.java4
-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.java68
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompat.java30
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompatEnabled.java81
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java (renamed from src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java)87
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/definitions/ePrimalAspectDefinition.java (renamed from src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/ePrimalAspectDefinition.java)31
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/definitions/iElementalAspect.java8
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java30
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java69
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java79
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java112
-rw-r--r--src/main/java/com/github/technus/tectech/thing/CustomItemList.java1
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java59
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java5
18 files changed, 641 insertions, 58 deletions
diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java
index ed5e1634ef..763741adbf 100644
--- a/src/main/java/com/github/technus/tectech/TecTech.java
+++ b/src/main/java/com/github/technus/tectech/TecTech.java
@@ -62,7 +62,10 @@ public class TecTech {
}
@EventHandler
- public void load(FMLInitializationEvent event) {
+ public void Load(FMLInitializationEvent event) {
+ GTCustomLoader = new MainLoader();
+ GTCustomLoader.load();
+
proxy.registerRenderInfo();
}
@@ -70,8 +73,7 @@ public class TecTech {
public void PostLoad(FMLPostInitializationEvent PostEvent) {
hasCOFH = Loader.isModLoaded(Reference.COFHCORE);
- GTCustomLoader = new MainLoader();
- GTCustomLoader.run();
+ GTCustomLoader.postLoad();
}
@EventHandler
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 d73f3730d7..d521053e6e 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
@@ -18,6 +18,7 @@ import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefin
* Created by danie_000 on 18.11.2016.
*/
public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize map i/o
+ private final int hash;
public static final Map<dAtomDefinition, ItemStack> itemBinds = new TreeMap<>();
public static final Map<dAtomDefinition, FluidStack> fluidBinds = new TreeMap<>();
@@ -126,6 +127,8 @@ public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize
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) {
@@ -555,4 +558,9 @@ public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize
public byte getClassType() {
return 64;
}
+
+ @Override
+ public int hashCode() {
+ return hash;
+ }
}
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 13c589ef6f..10bfaf86d8 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
@@ -18,6 +18,7 @@ import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefin
* Created by danie_000 on 17.11.2016.
*/
public final class dHadronDefinition extends cElementalDefinition {//TODO Optimize map i/o
+ private final int hash;
public static final Map<dHadronDefinition, ItemStack> itemBinds = new TreeMap<>();
public static final Map<dHadronDefinition, FluidStack> fluidBinds = new TreeMap<>();
@@ -96,6 +97,8 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
this.rawLifeTime = (1.21F / this.mass) / (float) Math.pow(9.80, charge);
}
}
+
+ hash=super.hashCode();
}
//public but u can just try{}catch(){} the constructor it still calls this method
@@ -346,4 +349,9 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
public byte getClassType() {
return -64;
}
+
+ @Override
+ public int hashCode() {
+ return hash;
+ }
}
diff --git a/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java b/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java
index 93c5afbfc3..5cc1133d88 100644
--- a/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/ElementalLoader.java
@@ -2,8 +2,8 @@ package com.github.technus.tectech.loader;
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.magicAddon.definitions.dComplexAspectDefinition;
+import com.github.technus.tectech.magicAddon.definitions.ePrimalAspectDefinition;
/**
* Created by danie_000 on 16.11.2016.
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 338d9d3d53..7568d2daf9 100644
--- a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
@@ -1,5 +1,7 @@
package com.github.technus.tectech.loader;
+import com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_essentiaDequantizer;
+import com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_essentiaQuantizer;
import com.github.technus.tectech.thing.metaTileEntity.hatch.*;
import com.github.technus.tectech.thing.metaTileEntity.multi.*;
import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Data;
@@ -125,7 +127,6 @@ public class MachineLoader implements Runnable {
eM_energymulti64_UXV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
15125, "hatch.energymulti64.tier.13", "UXV 64A Energy Hatch", 13, 64).getStackForm(1L));
-
// ===================================================================================================
// Multi AMP Power OUTPUTS
// ===================================================================================================
@@ -185,6 +186,10 @@ public class MachineLoader implements Runnable {
Machine_Multi_MatterToEM.set(new GT_MetaTileEntity_EM_quantizer(15321, "multimachine.em.mattertoem", "Matter Quantizer").getStackForm(1L));
Machine_Multi_EMToMatter.set(new GT_MetaTileEntity_EM_dequantizer(15322, "multimachine.em.emtomatter", "Matter Dequantizer").getStackForm(1L));
+ // COMPAT
+ Machine_Multi_EssentiaToEM.set(new GT_MetaTileEntity_EM_essentiaQuantizer(15323, "multimachine.em.essentiatoem", "Essentia Quantizer").getStackForm(1L));
+ Machine_Multi_EMToEssentia.set(new GT_MetaTileEntity_EM_essentiaDequantizer(15324, "multimachine.em.emtoessentia", "Essentia Dequantizer").getStackForm(1L));
+
Machine_Multi_Scanner.set(new GT_MetaTileEntity_EM_scanner(15330, "multimachine.em.scanner", "Elemental Scanner").getStackForm(1L));
Machine_Multi_Research.set(new GT_MetaTileEntity_EM_research(15331, "multimachine.em.research", "Research station").getStackForm(1L));
@@ -204,10 +209,10 @@ public class MachineLoader implements Runnable {
Machine_Multi_Annihilation.set(new GT_MetaTileEntity_EM_annihilation(15405, "multimachine.em.annihilation", "Annihilation Generator").getStackForm(1L));
Machine_Multi_BHG.set(new GT_MetaTileEntity_EM_bhg(15410, "multimachine.em.blackholegenerator", "Black Hole Generator").getStackForm(1L));
-
// ===================================================================================================
// Hatches
// ===================================================================================================
+
Parametrizer_Hatch.set(new GT_MetaTileEntity_Hatch_Param(15420, "hatch.param.tier.07", "Parametrizer", 7).getStackForm(1L));
Uncertainty_Hatch.set(new GT_MetaTileEntity_Hatch_Uncertainty(15430, "hatch.certain.tier.07", "Uncertainty Resolver", 7).getStackForm(1L));
@@ -222,6 +227,7 @@ public class MachineLoader implements Runnable {
// ===================================================================================================
// Pipes
// ===================================================================================================
+
EMpipe.set(new GT_MetaTileEntity_Pipe_EM(15460, "pipe.elementalmatter", "Quantum \"Tunnel\"").getStackForm(1L));
DATApipe.set(new GT_MetaTileEntity_Pipe_Data(15470, "pipe.datastream", "Optical Fiber Cable").getStackForm(1L));
@@ -232,7 +238,6 @@ public class MachineLoader implements Runnable {
Machine_DebugWriter.set(new GT_MetaTileEntity_DebugStructureWriter(15499, "debug.tt.writer", "Debug Structure Writer", 15).getStackForm(1L));
-
// ===================================================================================================
// MetaTE init
// ===================================================================================================
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 5271e2b35c..d12636e86d 100644
--- a/src/main/java/com/github/technus/tectech/loader/MainLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/MainLoader.java
@@ -1,11 +1,16 @@
package com.github.technus.tectech.loader;
import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat;
+import com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompatEnabled;
+import com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat;
+import com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompatEnabled;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
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;
import com.github.technus.tectech.thing.machineTT;
+import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ProgressManager;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -17,23 +22,53 @@ import net.minecraft.item.ItemStack;
import java.util.List;
import static com.github.technus.tectech.TecTech.mainTab;
+import static com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat.aspectDefinitionCompat;
+import static com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat.essentiaContainerCompat;
public final 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.
- private static ProgressManager.ProgressBar progressBar;
- public MainLoader(){
- progressBar = ProgressManager.push("TecTech Loader", 6);
+ public void load() {
+ ProgressManager.ProgressBar progressBarLoad = ProgressManager.push("TecTech Loader", 4);
+
+ progressBarLoad.step("Elemental Things");
+ new ElementalLoader().run();
+ TecTech.Logger.info("Elemental Init Done");
+
+ progressBarLoad.step("Thaumcraft Compatibility");
+ if (Loader.isModLoaded("Thaumcraft")) {
+ essentiaContainerCompat = new EssentiaCompatEnabled();
+ essentiaContainerCompat.run();
+ } else {
+ essentiaContainerCompat = new EssentiaCompat();
+ }
+
+ progressBarLoad.step("Regular Things");
+ new ThingsLoader().run();
+ TecTech.Logger.info("Block/Item Init Done");
+
+ progressBarLoad.step("Machine Things");
+ new MachineLoader().run();
+ TecTech.Logger.info("Machine Init Done");
+
+ ProgressManager.pop(progressBarLoad);
}
- public void run(){
- progressBar.step("Loading Things");
- things();
+ public void postLoad() {
+ ProgressManager.ProgressBar progressBarPostLoad = ProgressManager.push("TecTech Post Loader", 4);
- progressBar.step("Loading Recipes");
+ progressBarPostLoad.step("Thaumcraft Compatibility");
+ if (Loader.isModLoaded("Thaumcraft")) {
+ aspectDefinitionCompat = new AspectDefinitionCompatEnabled();
+ aspectDefinitionCompat.run();
+ } else {
+ aspectDefinitionCompat = new AspectDefinitionCompat();
+ }
+
+ progressBarPostLoad.step("Recipes");
new RecipeLoader().run();
TecTech.Logger.info("Recipe Init Done");
- progressBar.step("Registering in Creative Tab");
+ progressBarPostLoad.step("Creative Tab part1");
mainTab = new CreativeTabs("TecTech") {
@SideOnly(Side.CLIENT)
@Override
@@ -51,23 +86,10 @@ public final class MainLoader {//TODO add checks for - is mod loaded dreamcraft
super.displayAllReleventItems(stuffToShow);
}
};
+ progressBarPostLoad.step("Creative Tab part2");
registerThingsInTabs();
- ProgressManager.pop(progressBar);
- }
-
- public void things() {
- progressBar.step("Loading Elemental Things");
- new ElementalLoader().run();
- TecTech.Logger.info("Elemental Init Done");
-
- progressBar.step("Loading Regular Things");
- new ThingsLoader().run();
- TecTech.Logger.info("Block/Item Init Done");
-
- progressBar.step("Loading Machine Things");
- new MachineLoader().run();
- TecTech.Logger.info("Machine Init Done");
+ ProgressManager.pop(progressBarPostLoad);
}
public void registerThingsInTabs() {
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompat.java b/src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompat.java
new file mode 100644
index 0000000000..3c5d8cc507
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompat.java
@@ -0,0 +1,30 @@
+package com.github.technus.tectech.magicAddon.definitions;
+
+
+import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition;
+import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition;
+
+import java.util.HashMap;
+
+/**
+ * Created by Tec on 21.05.2017.
+ */
+public class AspectDefinitionCompat {
+ public static AspectDefinitionCompat aspectDefinitionCompat;
+ static final HashMap<cElementalDefinition,String> defToAspect = new HashMap<>();
+ public static final HashMap<String,cElementalDefinition> aspectToDef = new HashMap<>();
+
+ public void run(){}
+
+ Object getAspect(cElementalDefinition definition){
+ return null;
+ }
+
+ String getAspectTag(cElementalDefinition definition){
+ return null;
+ }
+
+ iElementalDefinition getDefinition(String aspect){
+ return null;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompatEnabled.java b/src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompatEnabled.java
new file mode 100644
index 0000000000..8623b9a845
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/definitions/AspectDefinitionCompatEnabled.java
@@ -0,0 +1,81 @@
+package com.github.technus.tectech.magicAddon.definitions;
+
+import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition;
+import com.github.technus.tectech.elementalMatter.classes.tElementalException;
+import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition;
+import thaumcraft.api.aspects.Aspect;
+
+import java.util.ArrayList;
+
+import static com.github.technus.tectech.magicAddon.definitions.ePrimalAspectDefinition.*;
+
+/**
+ * Created by Tec on 21.05.2017.
+ */
+public final class AspectDefinitionCompatEnabled extends AspectDefinitionCompat {
+ public void run(){
+ defToAspect.put(magic_air,"aer");
+ defToAspect.put(magic_earth,"terra");
+ defToAspect.put(magic_fire,"ignis");
+ defToAspect.put(magic_water,"aqua");
+ defToAspect.put(magic_order,"ordo");
+ defToAspect.put(magic_entropy,"perditio");
+
+ aspectToDef.put("aer",magic_air);
+ aspectToDef.put("terra",magic_earth);
+ aspectToDef.put("ignis",magic_fire);
+ aspectToDef.put("aqua",magic_water);
+ aspectToDef.put("ordo",magic_order);
+ aspectToDef.put("perditio",magic_entropy);
+
+ ArrayList<Aspect> list=Aspect.getCompoundAspects();
+ Aspect[] array=list.toArray(new Aspect[0]);
+ while (!list.isEmpty()) {
+ for (Aspect aspect : array) {
+ if (list.contains(aspect)) {
+ Aspect[] content = aspect.getComponents();
+ if (content.length != 2) {
+ list.remove(aspect);
+ }else if(aspectToDef.containsKey(content[0].getTag()) &&
+ aspectToDef.containsKey(content[1].getTag())){
+ try {
+ dComplexAspectDefinition newAspect;
+ if(content[0].getTag().equals(content[1].getTag())){
+ newAspect = new dComplexAspectDefinition(
+ aspectToDef.get(content[0].getTag()).getStackForm(2)
+ );
+ }else{
+ newAspect = new dComplexAspectDefinition(
+ aspectToDef.get(content[0].getTag()).getStackForm(1),
+ aspectToDef.get(content[1].getTag()).getStackForm(1)
+ );
+ }
+ aspectToDef.put(aspect.getTag(),newAspect);
+ defToAspect.put(newAspect,aspect.getTag());
+ }catch (tElementalException e) {
+ /**/
+ }finally {
+ list.remove(aspect);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ Aspect getAspect(cElementalDefinition definition) {
+ return Aspect.getAspect(defToAspect.get(definition));
+ }
+
+ @Override
+ String getAspectTag(cElementalDefinition definition) {
+ return defToAspect.get(definition);
+ }
+
+ @Override
+ iElementalDefinition getDefinition(String aspect) {
+ return aspectToDef.get(aspect);
+ }
+
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java
index 9f65f600af..cfddd4c67d 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/dComplexAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java
@@ -1,4 +1,4 @@
-package com.github.technus.tectech.elementalMatter.magicAddon.definitions;
+package com.github.technus.tectech.magicAddon.definitions;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.auxiliary.TecTechConfig;
@@ -10,32 +10,90 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;
import static com.github.technus.tectech.elementalMatter.classes.cElementalDecay.noDecay;
+import static com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat.aspectDefinitionCompat;
/**
* Created by Tec on 06.05.2017.
*/
-public final class dComplexAspectDefinition extends cElementalDefinition {//TODO Optimize map i/o
- //TODO aspect binding
+public final class dComplexAspectDefinition extends cElementalDefinition implements iElementalAspect {
+ private final int hash;
private static final byte nbtType = (byte) 'c';
private final cElementalDefinitionStackMap aspectStacks;
- public dComplexAspectDefinition(cElementalDefinitionStack[] tree) throws tElementalException {//todo constructors
- aspectStacks = cElementalDefinitionStackMap.empty;
+ @Deprecated
+ public dComplexAspectDefinition(cElementalDefinition... aspects) throws tElementalException {
+ this(true, new cElementalDefinitionStackMap(aspects));
+ }
+
+ @Deprecated
+ private dComplexAspectDefinition(boolean check, cElementalDefinition... aspects) throws tElementalException {
+ this(check, new cElementalDefinitionStackMap(aspects));
+ }
+
+ public dComplexAspectDefinition(cElementalDefinitionStack... aspects) throws tElementalException {
+ this(true, new cElementalDefinitionStackMap(aspects));
+ }
+
+ private dComplexAspectDefinition(boolean check, cElementalDefinitionStack... aspects) throws tElementalException {
+ this(check, new cElementalDefinitionStackMap(aspects));
+ }
+
+ public dComplexAspectDefinition(cElementalDefinitionStackMap aspects) throws tElementalException {
+ this(true, aspects);
+ }
+
+ private dComplexAspectDefinition(boolean check, cElementalDefinitionStackMap aspects) throws tElementalException {
+ if (check && !canTheyBeTogether(aspects)) throw new tElementalException("Hadron Definition error");
+ this.aspectStacks = aspects;
+
+ hash=super.hashCode();
+ }
+
+ //public but u can just try{}catch(){} the constructor it still calls this method
+ private static boolean canTheyBeTogether(cElementalDefinitionStackMap stacks) {
+ int amount = 0;
+ for (cElementalDefinitionStack aspects : stacks.values()) {
+ if (aspects.definition instanceof dComplexAspectDefinition || aspects.definition instanceof ePrimalAspectDefinition)
+ amount += aspects.amount;
+ else return false;
+ }
+ return amount==2;
+ }
+
+ //Unused outside yet still available.
+ public boolean checkThis() {
+ return canTheyBeTogether(aspectStacks);
}
@Override
- public String getName() {//todo name
- return "Aspect: ";
+ public String getName() {
+ String name= aspectDefinitionCompat.getAspectTag(this);
+ if(name!=null){
+ name=name.substring(0,1).toUpperCase()+name.substring(1);
+ }else{
+ name=getSymbol();
+ }
+ return "Aspect: "+name;
}
@Override
public String getSymbol() {
String symbol = "";
- for (cElementalDefinitionStack quark : aspectStacks.values())
- for (int i = 0; i < quark.amount; i++)
- symbol += quark.definition.getSymbol();
+ for (cElementalDefinitionStack aspect : aspectStacks.values()) {
+ if (aspect.definition instanceof ePrimalAspectDefinition) {
+ for (int i = 0; i < aspect.amount; i++) {
+ symbol += aspect.definition.getSymbol();
+ }
+ } else {
+ symbol+="(";
+ for (int i = 0; i < aspect.amount; i++) {
+ symbol += aspect.definition.getSymbol();
+ }
+ symbol+=")";
+ }
+ }
return symbol;
}
@@ -117,6 +175,10 @@ public final class dComplexAspectDefinition extends cElementalDefinition {//TODO
return null;
}
+ public Object materializeIntoAspect() {
+ return aspectDefinitionCompat.getAspect(this);
+ }
+
@Override
public iElementalDefinition getAnti() {
return null;
@@ -136,4 +198,9 @@ public final class dComplexAspectDefinition extends cElementalDefinition {//TODO
public byte getClassType() {
return -96;
}
+
+ @Override
+ public int hashCode() {
+ return hash;
+ }
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/ePrimalAspectDefinition.java b/src/main/java/com/github/technus/tectech/magicAddon/definitions/ePrimalAspectDefinition.java
index 63dc462572..64e8f4ac69 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/magicAddon/definitions/ePrimalAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/definitions/ePrimalAspectDefinition.java
@@ -1,32 +1,33 @@
-package com.github.technus.tectech.elementalMatter.magicAddon.definitions;
+package com.github.technus.tectech.magicAddon.definitions;
import com.github.technus.tectech.elementalMatter.classes.cElementalPrimitive;
import static com.github.technus.tectech.elementalMatter.classes.cElementalDecay.noDecay;
+import static com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat.aspectDefinitionCompat;
/**
* Created by Tec on 06.05.2017.
*/
-public final class ePrimalAspectDefinition extends cElementalPrimitive {
+public final class ePrimalAspectDefinition extends cElementalPrimitive implements iElementalAspect {
public static final ePrimalAspectDefinition
- magic_order = new ePrimalAspectDefinition("Order", "o`", 0, 0F, 0, -1, 30),
- magic_entropy_ = new ePrimalAspectDefinition("Entropy", "e`", 0, 0F, 0, -1, 31),
- magic_water = new ePrimalAspectDefinition("Water", "w`", 0, 0F, 0, -1, 32),
- magic_fire_ = new ePrimalAspectDefinition("Fire", "f`", 0, 0F, 0, -1, 33),
+ magic_air = new ePrimalAspectDefinition("Air", "a`", 0, 0F, 0, -1, 35),
magic_earth = new ePrimalAspectDefinition("Earth", "e`", 0, 0F, 0, -1, 34),
- magic_air_ = new ePrimalAspectDefinition("Air", "a`", 0, 0F, 0, -1, 35);
+ magic_fire = new ePrimalAspectDefinition("Fire", "f`", 0, 0F, 0, -1, 33),
+ magic_water = new ePrimalAspectDefinition("Water", "w`", 0, 0F, 0, -1, 32),
+ magic_order = new ePrimalAspectDefinition("Order", "o`", 0, 0F, 0, -1, 30),
+ magic_entropy = new ePrimalAspectDefinition("Entropy", "e`", 0, 0F, 0, -1, 31);
private ePrimalAspectDefinition(String name, String symbol, int type, float mass, int charge, int color, int ID) {
super(name, symbol, type, mass, charge, color, ID);
}
public static void run() {
- magic_order.init(magic_entropy_, -1F, -1, -1, noDecay);
- magic_entropy_.init(magic_order, -1F, -1, -1, noDecay);
- magic_water.init(magic_fire_, -1F, -1, -1, noDecay);
- magic_fire_.init(magic_water, -1F, -1, -1, noDecay);
- magic_earth.init(magic_air_, -1F, -1, -1, noDecay);
- magic_air_.init(magic_earth, -1F, -1, -1, noDecay);
+ magic_air.init(null, -1F, -1, -1, noDecay);
+ magic_earth.init(null, -1F, -1, -1, noDecay);
+ magic_fire.init(null, -1F, -1, -1, noDecay);
+ magic_water.init(null, -1F, -1, -1, noDecay);
+ magic_order.init(null, -1F, -1, -1, noDecay);
+ magic_entropy.init(null, -1F, -1, -1, noDecay);
}
@Override
@@ -34,6 +35,8 @@ public final class ePrimalAspectDefinition extends cElementalPrimitive {
return "Primal: " + name;
}
- //TODO aspect binding
+ public Object materializeIntoAspect() {
+ return aspectDefinitionCompat.getAspect(this);
+ }
}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/definitions/iElementalAspect.java b/src/main/java/com/github/technus/tectech/magicAddon/definitions/iElementalAspect.java
new file mode 100644
index 0000000000..c8ec3c40b4
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/definitions/iElementalAspect.java
@@ -0,0 +1,8 @@
+package com.github.technus.tectech.magicAddon.definitions;
+
+/**
+ * Created by Tec on 21.05.2017.
+ */
+public interface iElementalAspect {
+ Object materializeIntoAspect();
+}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java
new file mode 100644
index 0000000000..d3d90f832c
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java
@@ -0,0 +1,30 @@
+package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
+
+import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
+import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
+import net.minecraft.tileentity.TileEntity;
+
+/**
+ * Created by Tec on 21.05.2017.
+ */
+public class EssentiaCompat {
+ public static EssentiaCompat essentiaContainerCompat;
+
+ public void run(){}
+
+ public boolean check(GT_MetaTileEntity_MultiblockBase_EM meta){
+ return false;
+ }
+
+ public TileEntity getContainer(GT_MetaTileEntity_MultiblockBase_EM meta){
+ return null;
+ }
+
+ public boolean putElementalInstanceStack(TileEntity conatainer, cElementalInstanceStack stack){
+ return false;
+ }
+
+ public cElementalInstanceStack getFromContainer(TileEntity container){
+ return null;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java
new file mode 100644
index 0000000000..2fec74a87a
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java
@@ -0,0 +1,69 @@
+package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
+
+import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition;
+import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
+import com.github.technus.tectech.magicAddon.definitions.iElementalAspect;
+import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
+import net.minecraft.tileentity.TileEntity;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.AspectList;
+import thaumcraft.api.aspects.IAspectContainer;
+import thaumcraft.common.tiles.TileEssentiaReservoir;
+import thaumcraft.common.tiles.TileJarFillable;
+
+import static com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat.aspectToDef;
+
+/**
+ * Created by Tec on 21.05.2017.
+ */
+public class EssentiaCompatEnabled extends EssentiaCompat {
+ @Override
+ public void run() {
+
+ }
+
+ @Override
+ public boolean check(GT_MetaTileEntity_MultiblockBase_EM meta) {
+ TileEntity tile =meta.getBaseMetaTileEntity().getTileEntityAtSide(meta.getBaseMetaTileEntity().getBackFacing());
+ return tile!=null && (tile instanceof TileEssentiaReservoir) || (tile instanceof TileJarFillable);
+ }
+
+ @Override
+ public TileEntity getContainer(GT_MetaTileEntity_MultiblockBase_EM meta) {
+ TileEntity tile =meta.getBaseMetaTileEntity().getTileEntityAtSide(meta.getBaseMetaTileEntity().getBackFacing());
+ return tile!=null && !tile.isInvalid() && (tile instanceof TileEssentiaReservoir) || (tile instanceof TileJarFillable)?tile:null;
+ }
+
+ @Override
+ public boolean putElementalInstanceStack(TileEntity container,cElementalInstanceStack stack){
+ if(container==null || container.isInvalid())return false;
+ if((container instanceof IAspectContainer) && (stack.definition instanceof iElementalAspect)){
+ Aspect aspect=(Aspect)(((iElementalAspect) stack.definition).materializeIntoAspect());
+ if(aspect!=null){
+ ((IAspectContainer) container).addToContainer(aspect,1);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public cElementalInstanceStack getFromContainer(TileEntity container){
+ if(container==null || container.isInvalid())return null;
+ if(container instanceof IAspectContainer){
+ AspectList aspects=((IAspectContainer) container).getAspects();
+ if(aspects!=null){
+ Aspect[] aspectsArr= aspects.getAspects();
+ if(aspectsArr!=null && aspectsArr[0]!=null){
+ if (((IAspectContainer) container).takeFromContainer(aspectsArr[0],1)){
+ cElementalDefinition def=aspectToDef.get(aspectsArr[0].getTag());
+ if(def!=null){
+ return new cElementalInstanceStack(def,1);
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
new file mode 100644
index 0000000000..59b24df242
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
@@ -0,0 +1,79 @@
+package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
+
+import com.github.technus.tectech.CommonValues;
+import com.github.technus.tectech.thing.block.QuantumGlassBlock;
+import com.github.technus.tectech.thing.metaTileEntity.constructableTT;
+import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.EnumChatFormatting;
+
+import static com.github.technus.tectech.Util.StructureBuilder;
+import static com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat.essentiaContainerCompat;
+import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT;
+import static gregtech.api.enums.GT_Values.E;
+
+/**
+ * Created by danie_000 on 17.12.2016.
+ */
+public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_MultiblockBase_EM implements constructableTT {
+ private TileEntity container;
+
+ //region Structure
+ //use multi A energy inputs, use less power the longer it runs
+ private static final String[][] shape = new String[][]{
+ {"!!!","!.!","!!!",},
+ {"0A0",E,"0A0",},
+ {"121","232","121",},
+ {"\"\"\"","\"2\"","\"\"\"",},
+ {"202","0 0","202",},
+ };
+ private static final Block[] blockType = new Block[]{QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT};
+ private static final byte[] blockMeta = new byte[]{0,0,4,10};
+ private static final String[] addingMethods = new String[]{"addElementalInputToMachineList", "addClassicToMachineList", "addElementalMufflerToMachineList"};
+ private static final byte[] casingTextures = new byte[]{textureOffset + 4, textureOffset, textureOffset + 4};
+ private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT};
+ private static final byte[] blockMetaFallback = new byte[]{4, 0, 4};
+ //endregion
+
+ public GT_MetaTileEntity_EM_essentiaDequantizer(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GT_MetaTileEntity_EM_essentiaDequantizer(String aName) {
+ super(aName);
+ }
+
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_EM_essentiaDequantizer(this.mName);
+ }
+
+ @Override
+ public boolean EM_checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
+ return essentiaContainerCompat.check(this) && EM_StructureCheckAdvanced(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 1, 1, 0);
+ }
+
+ @Override
+ public void construct(int qty) {
+ StructureBuilder(shape, blockType, blockMeta,1, 1, 0, getBaseMetaTileEntity());
+ }
+
+ @Override
+ public boolean EM_checkRecipe(ItemStack itemStack) {
+ container=essentiaContainerCompat.getContainer(this);
+
+ return false;
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ CommonValues.tecMark,
+ "Transform quantum form back to...",
+ EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "regular one, but why?"
+ };
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
new file mode 100644
index 0000000000..dee3e5587b
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
@@ -0,0 +1,112 @@
+package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
+
+import com.github.technus.tectech.CommonValues;
+import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.auxiliary.TecTechConfig;
+import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStack;
+import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
+import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap;
+import com.github.technus.tectech.thing.block.QuantumGlassBlock;
+import com.github.technus.tectech.thing.metaTileEntity.constructableTT;
+import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+import static com.github.technus.tectech.Util.StructureBuilder;
+import static com.github.technus.tectech.Util.isInputEqual;
+import static com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat.essentiaContainerCompat;
+import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT;
+import static gregtech.api.enums.GT_Values.E;
+import static gregtech.api.enums.GT_Values.V;
+
+/**
+ * Created by danie_000 on 17.12.2016.
+ */
+public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_MultiblockBase_EM implements constructableTT {
+ private TileEntity container;
+
+ //region Structure
+ //use multi A energy inputs, use less power the longer it runs
+ private static final String[][] shape = new String[][]{
+ {"!!!","!.!","!!!",},
+ {"0A0",E,"0A0",},
+ {"121","232","121",},
+ {"\"\"\"","\"1\"","\"\"\"",},
+ {"010","1 1","010",},
+ };
+ private static final Block[] blockType = new Block[]{QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT};
+ private static final byte[] blockMeta = new byte[]{0,4,0,10};
+ private static final String[] addingMethods = new String[]{"addElementalOutputToMachineList", "addClassicToMachineList", "addElementalMufflerToMachineList"};
+ private static final byte[] casingTextures = new byte[]{textureOffset + 4, textureOffset, textureOffset + 4};
+ private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT};
+ private static final byte[] blockMetaFallback = new byte[]{4, 0, 4};
+ //endregion
+
+ public GT_MetaTileEntity_EM_essentiaQuantizer(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GT_MetaTileEntity_EM_essentiaQuantizer(String aName) {
+ super(aName);
+ }
+
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_EM_essentiaQuantizer(this.mName);
+ }
+
+ @Override
+ public boolean EM_checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
+ return essentiaContainerCompat.check(this) && EM_StructureCheckAdvanced(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 1, 1, 0);
+ }
+
+ @Override
+ public void construct(int qty) {
+ StructureBuilder(shape, blockType, blockMeta,1, 1, 0, getBaseMetaTileEntity());
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ CommonValues.tecMark,
+ "Conveniently convert regular stuff into quantum form.",
+ EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "To make it more inconvenient."
+ };
+ }
+
+ @Override
+ public boolean EM_checkRecipe(ItemStack itemStack) {
+ container=essentiaContainerCompat.getContainer(this);
+
+ cElementalInstanceStack newStack=essentiaContainerCompat.getFromContainer(container);
+ if(newStack!=null){
+ if (TecTechConfig.DEBUG_MODE)
+ TecTech.Logger.info("Essentia-Quantifier-recipe " + newStack.definition.getName());
+ mMaxProgresstime = 20;
+ mEfficiencyIncrease = 10000;
+ eAmpereFlow=1;
+ outputEM = new cElementalInstanceStackMap[1];
+ outputEM[0] = new cElementalInstanceStackMap(newStack);
+ return true;
+ }
+
+ mEfficiencyIncrease = 0;
+ mMaxProgresstime = 0;
+ return false;
+ }
+
+ @Override
+ public void EM_outputFunction() {
+ if (eOutputHatches.size() < 1) {
+ stopMachine();
+ return;
+ }
+ eOutputHatches.get(0).getContainerHandler().putUnifyAll(outputEM[0]);
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java
index 936c95a5ae..d35422d5a6 100644
--- a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java
+++ b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java
@@ -31,6 +31,7 @@ public enum CustomItemList implements IItemContainer {
Parametrizer_Hatch, Uncertainty_Hatch, UncertaintyX_Hatch, dataIn_Hatch, dataOut_Hatch,
eM_Containment, eM_Containment_Field, eM_Containment_Advanced, eM_Coil, eM_Teleportation, eM_Dimensional, eM_Ultimate_Containment, eM_Ultimate_Containment_Advanced, eM_Ultimate_Containment_Field, eM_Spacetime, eM_Computer_Casing, eM_Computer_Bus, eM_Computer_Vent, eM_Hollow, eM_Power,
debugBlock,
+ Machine_Multi_EssentiaToEM, Machine_Multi_EMToEssentia,
Machine_Multi_MatterToEM, Machine_Multi_EMToMatter, Machine_Multi_EMjunction,
Machine_Multi_Transformer, Machine_Multi_Computer, Machine_Multi_Infuser, Machine_Multi_Switch,
Machine_Multi_BHG, Machine_Multi_Annihilation, Machine_Multi_Decay,
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java
index 68117b33b3..05ea810c2c 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java
@@ -1,6 +1,7 @@
package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.CommonValues;
+import com.github.technus.tectech.thing.block.QuantumGlassBlock;
import com.github.technus.tectech.thing.metaTileEntity.constructableTT;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -23,11 +24,13 @@ public class GT_MetaTileEntity_EM_bhg extends GT_MetaTileEntity_MultiblockBase_E
private static Textures.BlockIcons.CustomIcon ScreenOFF;
private static Textures.BlockIcons.CustomIcon ScreenON;
+ public boolean glassDome=false;
+
//Time dillatation - to slow down the explosion thing but REALLY REDUCE POWER OUTPUT
//Startcodes to startup
//per dim disable thingies
- //region Structure
+ //region Structure actual
private static final String[][] shape = new String[][]{
{"\u000B","M0000000","L00 00","L0 0","L0 !!! 0","L0 !.! 0","L0 !!! 0","L0 0","L00 00","M0000000",},
{"\u0008","O0A0","O0A0","O0A0","O0A0","N11111","M1101011","I000010010010000","M1111111","I000010010010000","M1101011","N11111","O0A0","O0A0","O0A0","O0A0",},
@@ -71,6 +74,46 @@ public class GT_MetaTileEntity_EM_bhg extends GT_MetaTileEntity_MultiblockBase_E
private static final byte[] blockMetaFallback = new byte[]{0, 4};
//endregion
+ //region Structure dank - glass sphere for the looks
+ private static final String[][] shape2 = new String[][]{
+ {"\u000B","M0000000","L00 00","L0 0","L0 !!! 0","L0 !.! 0","L0 !!! 0","L0 0","L00 00","M0000000",},
+ {"\u0008","O0A0","M110A011","L1110A0111","K11110A01111","J1111222221111","J1112202022111","I000020020020000","M2222222","I000020020020000","J1112202022111","J1111222221111","K11110A01111","L1110A0111","M110A011","O0A0",},
+ {"\u0006","O0A0","M110A011","K11110A01111","J111C2C111","I111D2D111","I11B2222222B11","H11B22E22B11","H11B2B333B2B11","G000B2A34443A2B000","J222A34443A222","G000B2A34443A2B000","H11B2B333B2B11","H11B22E22B11","I11B2222222B11","I111D2D111","J111C2C111","K11110A01111","M110A011","O0A0",},
+ {"\u0005","O0A0","L1110A0111","J111C2C111","I11E2E11","H11M11","H1O1","G11O11","G1Q1","G1Q1","F00Q00","H22M22","F00Q00","G1Q1","G1Q1","G11O11","H1O1","H11M11","I11E2E11","J111C2C111","L1110A0111","O0A0",},
+ {"\u0004","O0A0","K11100000111","I111D2D111","H11F5F11","G11G5G11","G1Q1","F11Q11","F1S1","F1S1","F0S0","E00S00","F0255M5520","E00S00","F0S0","F1S1","F1S1","F11Q11","G1Q1","G11G5G11","H11F5F11","I111D2D111","K11100000111","O0A0",},
+ {"\u0003","O0A0","J111110A011111","H111E2E111","G11D3335333D11","F11Q11","F1S1","E11S11","E1U1","E1U1","E1A3Q3A1","E1A3Q3A1","D00A3Q3A00","F25Q52","D00A3Q3A00","E1A3Q3A1","E1A3Q3A1","E1U1","E1U1","E11S11","F1S1","F11Q11","G11D3335333D11","H111E2E111","J111110A011111","O0A0",},
+ {"\u0002","O0A0","K11100000111","H111E2E111","G11G5G11","F1S1","E11S11","E1U1","E1U1","D1W1","D1W1","D1W1","D0W0","C00W00","D025S520","C00W00","D0W0","D1W1","D1W1","D1W1","E1U1","E1U1","E11S11","F1S1","G11G5G11","H111E2E111","K11100000111","O0A0",},
+ {"\u0001","O0A0","L1110A0111","I111D2D111","G11D3335333D11","F1S1","E1U1","E1U1","D1W1","D1W1","D1W1","C1Y1","C1A3U3A1","C1A3U3A1","B00A3U3A00","D25U52","B00A3U3A00","C1A3U3A1","C1A3U3A1","C1Y1","D1W1","D1W1","D1W1","E1U1","E1U1","F1S1","G11D3335333D11","I111D2D111","L1110A0111","O0A0",},
+ {"\u0001","M110A011","J111C2C111","H11F5F11","F11Q11","E11S11","E1U1","D1W1","D1W1","C1Y1","C1Y1","C1Y1","B1[1","B1[1","B0[0","C25W52","B0[0","B1[1","B1[1","C1Y1","C1Y1","C1Y1","D1W1","D1W1","E1U1","E11S11","F11Q11","H11F5F11","J111C2C111","M110A011",},
+ {E,"O0A0","K11110A01111","I11E2E11","G11G5G11","F1S1","E1U1","D1W1","D1W1","C1Y1","C1Y1","B1[1","B1[1","B1[1","B1[1","A00[00","C25W52","A00[00","B1[1","B1[1","B1[1","B1[1","C1Y1","C1Y1","D1W1","D1W1","E1U1","F1S1","G11G5G11","I11E2E11","K11110A01111","O0A0",},
+ {E,"M110A011","J111C2C111","H11M11","G1Q1","E11S11","E1U1","D1W1","C1Y1","C1Y1","B1[1","B1[1","B1[1","A1]1","A1]1","A0]0","B2[2","A0]0","A1]1","A1]1","B1[1","B1[1","B1[1","C1Y1","C1Y1","D1W1","E1U1","E11S11","G1Q1","H11M11","J111C2C111","M110A011",},
+ {E,"L1110A0111","I111D2D111","H1O1","F11Q11","E1U1","D1W1","D1W1","C1Y1","B1[1","B1[1","B1[1","A1]1","A1]1","A1]1","A0]0","B2[2","A0]0","A1]1","A1]1","A1]1","B1[1","B1[1","B1[1","C1Y1","D1W1","D1W1","E1U1","F11Q11","H1O1","I111D2D111","L1110A0111",},
+ {"O0A0","K11110A01111","I11B2222222B11","G11O11","F1S1","E1U1","D1W1","C1Y1","C1Y1","B1[1","B1[1","A1]1","A1]1","A12[21","A12[21","002[200","B2[2","002[200","A12[21","A12[21","A1]1","A1]1","B1[1","B1[1","C1Y1","C1Y1","D1W1","E1U1","F1S1","G11O11","I11B2222222B11","K11110A01111","O0A0",},
+ {"O0A0","J1111222221111","H11B22E22B11","G1Q1","F1S1","E1A3Q3A1","D1W1","C1A3U3A1","B1[1","B1[1","A1]1","A1]1","A12[21","A12[21","A2]2","02]20","A2]2","02]20","A2]2","A12[21","A12[21","A1]1","A1]1","B1[1","B1[1","C1A3U3A1","D1W1","E1A3Q3A1","F1S1","G1Q1","H11B22E22B11","J1111222221111","O0A0",},
+ {"O0A0","J1112202022111","H11B2B333B2B11","G1Q1","F0S0","E1A3Q3A1","D0W0","C1A3U3A1","B1[1","B1[1","A1]1","A1]1","A12[21","A2]2","A2]2","003[300","A23[32","003[300","A2]2","A2]2","A12[21","A1]1","A1]1","B1[1","B1[1","C1A3U3A1","D0W0","E1A3Q3A1","F0S0","G1Q1","H11B2B333B2B11","J1112202022111","O0A0",},
+ {"L000000000","I000020020020000","G000B2A34443A2B000","F00Q00","E00S00","D00A3Q3A00","C00W00","B00A3U3A00","B0[0","A00[00","A0]0","A0]0","002[200","02]20","003[300","004[400","024[420","004[400","003[300","02]20","002[200","A0]0","A0]0","A00[00","B0[0","B00A3U3A00","C00W00","D00A3Q3A00","E00S00","F00Q00","G000B2A34443A2B000","I000020020020000","L000000000",},
+ {"O0A0","M2222222","J222A34443A222","H22M22","F0255M5520","F25Q52","D025S520","D25U52","C25W52","C25W52","B2[2","B2[2","B2[2","A2]2","A23[32","024[420","A24[42","024[420","A23[32","A2]2","B2[2","B2[2","B2[2","C25W52","C25W52","D25U52","D025S520","F25Q52","F0255M5520","H22M22","J222A34443A222","M2222222","O0A0",},
+ {"L000000000","I000020020020000","G000B2A34443A2B000","F00Q00","E00S00","D00A3Q3A00","C00W00","B00A3U3A00","B0[0","A00[00","A0]0","A0]0","002[200","02]20","003[300","004[400","024[420","004[400","003[300","02]20","002[200","A0]0","A0]0","A00[00","B0[0","B00A3U3A00","C00W00","D00A3Q3A00","E00S00","F00Q00","G000B2A34443A2B000","I000020020020000","L000000000",},
+ {"O0A0","J1112202022111","H11B2B333B2B11","G1Q1","F0S0","E1A3Q3A1","D0W0","C1A3U3A1","B1[1","B1[1","A1]1","A1]1","A12[21","A2]2","A2]2","003[300","A23[32","003[300","A2]2","A2]2","A12[21","A1]1","A1]1","B1[1","B1[1","C1A3U3A1","D0W0","E1A3Q3A1","F0S0","G1Q1","H11B2B333B2B11","J1112202022111","O0A0",},
+ {"O0A0","J1111222221111","H11B22E22B11","G1Q1","F1S1","E1A3Q3A1","D1W1","C1A3U3A1","B1[1","B1[1","A1]1","A1]1","A12[21","A12[21","A2]2","02]20","A2]2","02]20","A2]2","A12[21","A12[21","A1]1","A1]1","B1[1","B1[1","C1A3U3A1","D1W1","E1A3Q3A1","F1S1","G1Q1","H11B22E22B11","J1111222221111","O0A0",},
+ {"O0A0","K11110A01111","I11B2222222B11","G11O11","F1S1","E1U1","D1W1","C1Y1","C1Y1","B1[1","B1[1","A1]1","A1]1","A12[21","A12[21","002[200","B2[2","002[200","A12[21","A12[21","A1]1","A1]1","B1[1","B1[1","C1Y1","C1Y1","D1W1","E1U1","F1S1","G11O11","I11B2222222B11","K11110A01111","O0A0",},
+ {E,"L1110A0111","I111D2D111","H1O1","F11Q11","E1U1","D1W1","D1W1","C1Y1","B1[1","B1[1","B1[1","A1]1","A1]1","A1]1","A0]0","B2[2","A0]0","A1]1","A1]1","A1]1","B1[1","B1[1","B1[1","C1Y1","D1W1","D1W1","E1U1","F11Q11","H1O1","I111D2D111","L1110A0111",},
+ {E,"M110A011","J111C2C111","H11M11","G1Q1","E11S11","E1U1","D1W1","C1Y1","C1Y1","B1[1","B1[1","B1[1","A1]1","A1]1","A0]0","B2[2","A0]0","A1]1","A1]1","B1[1","B1[1","B1[1","C1Y1","C1Y1","D1W1","E1U1","E11S11","G1Q1","H11M11","J111C2C111","M110A011",},
+ {E,"O0A0","K11110A01111","I11E2E11","G11G5G11","F1S1","E1U1","D1W1","D1W1","C1Y1","C1Y1","B1[1","B1[1","B1[1","B1[1","A00[00","C25W52","A00[00","B1[1","B1[1","B1[1","B1[1","C1Y1","C1Y1","D1W1","D1W1","E1U1","F1S1","G11G5G11","I11E2E11","K11110A01111","O0A0",},
+ {"\u0001","M110A011","J111C2C111","H11F5F11","F11Q11","E11S11","E1U1","D1W1","D1W1","C1Y1","C1Y1","C1Y1","B1[1","B1[1","B0[0","C25W52","B0[0","B1[1","B1[1","C1Y1","C1Y1","C1Y1","D1W1","D1W1","E1U1","E11S11","F11Q11","H11F5F11","J111C2C111","M110A011",},
+ {"\u0001","O0A0","L1110A0111","I111D2D111","G11D3335333D11","F1S1","E1U1","E1U1","D1W1","D1W1","D1W1","C1Y1","C1A3U3A1","C1A3U3A1","B00A3U3A00","D25U52","B00A3U3A00","C1A3U3A1","C1A3U3A1","C1Y1","D1W1","D1W1","D1W1","E1U1","E1U1","F1S1","G11D3335333D11","I111D2D111","L1110A0111","O0A0",},
+ {"\u0002","O0A0","K11100000111","H111E2E111","G11G5G11","F1S1","E11S11","E1U1","E1U1","D1W1","D1W1","D1W1","D0W0","C00W00","D025S520","C00W00","D0W0","D1W1","D1W1","D1W1","E1U1","E1U1","E11S11","F1S1","G11G5G11","H111E2E111","K11100000111","O0A0",},
+ {"\u0003","O0A0","J111110A011111","H111E2E111","G11D3335333D11","F11Q11","F1S1","E11S11","E1U1","E1U1","E1A3Q3A1","E1A3Q3A1","D00A3Q3A00","F25Q52","D00A3Q3A00","E1A3Q3A1","E1A3Q3A1","E1U1","E1U1","E11S11","F1S1","F11Q11","G11D3335333D11","H111E2E111","J111110A011111","O0A0",},
+ {"\u0004","O0A0","K11100000111","I111D2D111","H11F5F11","G11G5G11","G1Q1","F11Q11","F1S1","F1S1","F0S0","E00S00","F0255M5520","E00S00","F0S0","F1S1","F1S1","F11Q11","G1Q1","G11G5G11","H11F5F11","I111D2D111","K11100000111","O0A0",},
+ {"\u0005","O0A0","L1110A0111","J111C2C111","I11E2E11","H11M11","H1O1","G11O11","G1Q1","G1Q1","F00Q00","H22M22","F00Q00","G1Q1","G1Q1","G11O11","H1O1","H11M11","I11E2E11","J111C2C111","L1110A0111","O0A0",},
+ {"\u0006","O0A0","M110A011","K11110A01111","J111C2C111","I111D2D111","I11B2222222B11","H11B22E22B11","H11B2B333B2B11","G000B2A34443A2B000","J222A34443A222","G000B2A34443A2B000","H11B2B333B2B11","H11B22E22B11","I11B2222222B11","I111D2D111","J111C2C111","K11110A01111","M110A011","O0A0",},
+ {"\u0008","O0A0","M110A011","L1110A0111","K11110A01111","J1111222221111","J1112202022111","I000020020020000","M2222222","I000020020020000","J1112202022111","J1111222221111","K11110A01111","L1110A0111","M110A011","O0A0",},
+ {"\u000B","O0A0","O0A0","O0A0","L000000000","O0A0","L000000000","O0A0","O0A0","O0A0",},
+ };
+ private static final Block[] blockType2 = new Block[]{sBlockCasingsTT, QuantumGlassBlock.INSTANCE,sBlockCasingsTT,sBlockCasingsTT,sBlockCasingsTT,sBlockCasingsTT};
+ private static final byte[] blockMeta2 = new byte[]{12, 0, 13, 14, 10, 11};
+ //endregion
+
public GT_MetaTileEntity_EM_bhg(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
}
@@ -85,12 +128,22 @@ public class GT_MetaTileEntity_EM_bhg extends GT_MetaTileEntity_MultiblockBase_E
@Override
public boolean EM_checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
- return EM_StructureCheckAdvanced(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 16, 16, 0);
+ //TODO enable later when you implement 3d models
+ //if(EM_StructureCheckAdvanced(shape2, blockType2, blockMeta2, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 16, 16, 0)){
+ // glassDome=true;
+ // return true;
+ //}
+ if(EM_StructureCheckAdvanced(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 16, 16, 0)){
+ glassDome=false;
+ return true;
+ }
+ return false;
}
@Override
public void construct(int qty) {
- StructureBuilder(shape, blockType, blockMeta,16, 16, 0, getBaseMetaTileEntity());
+ if((qty&1)==1) StructureBuilder(shape, blockType, blockMeta,16, 16, 0, getBaseMetaTileEntity());
+ else StructureBuilder(shape2, blockType2, blockMeta2,16, 16, 0, getBaseMetaTileEntity());
}
@Override
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java
index 3665c2e686..74c02ce50f 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java
@@ -55,6 +55,11 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo
StructureBuilder(shape, blockType, blockMeta,1, 1, 0, getBaseMetaTileEntity());
}
+ //@Override
+ //public boolean EM_checkRecipe(ItemStack itemStack) {
+ //
+ //}
+
@Override
public String[] getDescription() {
return new String[]{