From d0c22e43f31811c2dc2c7e7dc5c3a6e4c6ee3b52 Mon Sep 17 00:00:00 2001 From: Technus Date: Mon, 25 Dec 2017 16:48:52 +0100 Subject: tweaks --- .../base/GT_MetaTileEntity_MultiblockBase_EM.java | 38 ++++---- .../multi/base/MultiblockControl.java | 8 +- .../multi/em_machine/Behaviour_Centrifuge.java | 2 +- .../multi/em_machine/Behaviour_Electrolyzer.java | 2 +- .../Behaviour_ElectromagneticSeparator.java | 2 +- .../multi/em_machine/Behaviour_Mixer.java | 2 +- .../multi/em_machine/Behaviour_PrecisionLaser.java | 2 +- .../multi/em_machine/Behaviour_Recycler.java | 2 +- .../em_machine/GT_MetaTileEntity_EM_machine.java | 102 ++++++++++----------- 9 files changed, 81 insertions(+), 79 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java index b151678e5a..b2db48ee35 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java @@ -167,7 +167,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt if (outputEM != null) { float mass = 0; for (cElementalInstanceStackMap tree : outputEM) - mass += tree.getMass(); + if(tree!=null) mass += tree.getMass(); if (mass > 0) { if (eMufflerHatches.size() < 1) explodeMultiblock(); else { @@ -205,7 +205,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt if (outputEM != null) { float mass = 0; for (cElementalInstanceStackMap tree : outputEM) - mass += tree.getMass(); + if(tree!=null) mass += tree.getMass(); if (mass > 0) { if (eMufflerHatches.size() < 1) explodeMultiblock(); else { @@ -329,13 +329,14 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt } if (outputEM != null) { - aNBT.setInteger("outputStackCount", outputEM.length); + aNBT.setInteger("eOutputStackCount", outputEM.length); NBTTagCompound output = new NBTTagCompound(); for (int i = 0; i < outputEM.length; i++) - output.setTag(Integer.toString(i), outputEM[i].toNBT()); + if(outputEM[i]!=null) + output.setTag(Integer.toString(i), outputEM[i].toNBT()); aNBT.setTag("outputEM", output); } else { - aNBT.setInteger("outputStackCount", 0); + aNBT.setInteger("eOutputStackCount", 0); aNBT.removeTag("outputEM"); } @@ -400,18 +401,21 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i); } - final int outputLen = aNBT.getInteger("outputStackCount"); + final int outputLen = aNBT.getInteger("eOutputStackCount"); if (outputLen > 0) { outputEM = new cElementalInstanceStackMap[outputLen]; - for (int i = 0; i < outputEM.length; i++) - try { - outputEM[i] = cElementalInstanceStackMap.fromNBT( - aNBT.getCompoundTag("outputEM").getCompoundTag(Integer.toString(i))); - } catch (tElementalException e) { - if (DEBUG_MODE) e.printStackTrace(); - outputEM[i] = new cElementalInstanceStackMap(); + NBTTagCompound compound=aNBT.getCompoundTag("outputEM"); + for (int i = 0; i < outputEM.length; i++) { + if (compound.hasKey(Integer.toString(i))) { + try { + outputEM[i] = cElementalInstanceStackMap.fromNBT(compound.getCompoundTag(Integer.toString(i))); + } catch (tElementalException e) { + if (DEBUG_MODE) e.printStackTrace(); + outputEM[i] = null; + } } - } else outputEM = new cElementalInstanceStackMap[0]; + } + } else outputEM = null; NBTTagCompound paramI = aNBT.getCompoundTag("eParamsIn"); for (int i = 0; i < iParamsIn.length; i++) @@ -596,7 +600,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt explodeMultiblock(); if (outputEM != null) for (cElementalInstanceStackMap tree : outputEM) - if (tree.hasStacks()) explodeMultiblock(); + if (tree!=null && tree.hasStacks()) explodeMultiblock(); } if (eUncertainHatches.size() > 1) mMachine = false; @@ -1153,7 +1157,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt if (outputEM == null) return; float mass = 0; for (cElementalInstanceStackMap map : outputEM) - mass += map.getMass(); + if(map!=null) mass += map.getMass(); if (mass > 0) { if (eMufflerHatches.size() < 1) explodeMultiblock(); @@ -1285,7 +1289,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt explodeMultiblock(); if (outputEM != null) for (cElementalInstanceStackMap output : outputEM) - if (output.hasStacks()) explodeMultiblock(); + if (output!=null && output.hasStacks()) explodeMultiblock(); } catch (Exception e) { if (DEBUG_MODE) e.printStackTrace(); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/MultiblockControl.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/MultiblockControl.java index daa5c7568b..930d81a21f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/MultiblockControl.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/MultiblockControl.java @@ -6,9 +6,9 @@ package com.github.technus.tectech.thing.metaTileEntity.multi.base; public class MultiblockControl{ private final int[] controls=new int[7]; - private final T[] values; + private final T values; - public MultiblockControl(T[] values, int EUt, int amperes, int requiredData, int effIncrease, int maxProgressTime){ + public MultiblockControl(T values, int EUt, int amperes, int requiredData, int effIncrease, int maxProgressTime){ this.values = values; controls[0]=EUt; controls[1]=amperes; @@ -19,7 +19,7 @@ public class MultiblockControl{ controls[6]=Float.floatToIntBits(0); } - public MultiblockControl(T[] values, int EUt, int amperes, int requiredData, int effIncrease, int maxProgressTime, int pollutionToAdd, float excessMass){ + public MultiblockControl(T values, int EUt, int amperes, int requiredData, int effIncrease, int maxProgressTime, int pollutionToAdd, float excessMass){ this.values = values; controls[0]=EUt; controls[1]=amperes; @@ -30,7 +30,7 @@ public class MultiblockControl{ controls[6]=Float.floatToIntBits(excessMass); } - public T[] getValues() { + public T getValue() { return values; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java index 91ef19744b..da81932189 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java @@ -18,7 +18,7 @@ public class Behaviour_Centrifuge extends GT_MetaTileEntity_EM_machine.Behaviour } @Override - public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { + public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java index c6b9306b94..fccca17ddc 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java @@ -18,7 +18,7 @@ public class Behaviour_Electrolyzer extends GT_MetaTileEntity_EM_machine.Behavio } @Override - public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { + public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java index 7a2ed9ffcf..26e9cacbf2 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java @@ -18,7 +18,7 @@ public class Behaviour_ElectromagneticSeparator extends GT_MetaTileEntity_EM_mac } @Override - public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { + public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Mixer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Mixer.java index 29d9c4a081..50acb59a85 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Mixer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Mixer.java @@ -18,7 +18,7 @@ public class Behaviour_Mixer extends GT_MetaTileEntity_EM_machine.Behaviour { } @Override - public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { + public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java index 0365f436c3..8a003e35b0 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java @@ -18,7 +18,7 @@ public class Behaviour_PrecisionLaser extends GT_MetaTileEntity_EM_machine.Behav } @Override - public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { + public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java index e0fc30b469..7b922521d0 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java @@ -18,7 +18,7 @@ public class Behaviour_Recycler extends GT_MetaTileEntity_EM_machine.Behaviour { } @Override - public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { + public MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters) { return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java index 3a2a54ddb6..3de4bed480 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java @@ -4,8 +4,6 @@ import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.elementalMatter.core.cElementalInstanceStackMap; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputElemental; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -16,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import java.util.BitSet; import java.util.HashMap; import static com.github.technus.tectech.Util.StructureBuilder; @@ -113,15 +112,12 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa if(pointer>=0 && pointer=0 && pointer control=currentBehaviour.process(handles,parameters); + MultiblockControl control=currentBehaviour.process(handles,parameters); if(control==null) return false; //update other pare - outputEM=control.getValues(); - cElementalInstanceStackMap nullFix=new cElementalInstanceStackMap(); - for(int i=0;i process(cElementalInstanceStackMap[] inputs, double[] parameters); + public abstract MultiblockControl process(cElementalInstanceStackMap[] inputs, double[] parameters); } } -- cgit