diff options
author | Technus <daniel112092@gmail.com> | 2017-05-21 16:24:08 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-05-21 16:24:08 +0200 |
commit | 27e36620b8639c983b59c47088e71770cab8f7d6 (patch) | |
tree | f71feeafeec53ac3dd7a691a9db92011b6b55aad /src | |
parent | 5154fd4aa55f39ffe3b8bb0ec5de7f8107510ee3 (diff) | |
download | GT5-Unofficial-27e36620b8639c983b59c47088e71770cab8f7d6.tar.gz GT5-Unofficial-27e36620b8639c983b59c47088e71770cab8f7d6.tar.bz2 GT5-Unofficial-27e36620b8639c983b59c47088e71770cab8f7d6.zip |
ThaumcraftCompat
Diffstat (limited to 'src')
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[]{ |