diff options
| author | Technus <daniel112092@gmail.com> | 2017-12-23 14:51:20 +0100 |
|---|---|---|
| committer | Technus <daniel112092@gmail.com> | 2017-12-23 14:51:20 +0100 |
| commit | 9dc7592301281137ef1cfb4332065c754b691eab (patch) | |
| tree | 900e140d918aeccefa29fbc6d06ae08c634eb5bd | |
| parent | cb643925847b531724c90866675548c76300dcac (diff) | |
| download | GT5-Unofficial-9dc7592301281137ef1cfb4332065c754b691eab.tar.gz GT5-Unofficial-9dc7592301281137ef1cfb4332065c754b691eab.tar.bz2 GT5-Unofficial-9dc7592301281137ef1cfb4332065c754b691eab.zip | |
draft on em Machine
18 files changed, 203 insertions, 95 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java index 903729149a..8f4d48b798 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java @@ -101,7 +101,7 @@ public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_ } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { container=essentiaContainerCompat.getContainer(this); if (eInputHatches.size() < 1 || container==null) { stopMachine(); @@ -123,8 +123,6 @@ public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_ } return true; } - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java index c1007ac36a..bb04d81089 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java @@ -110,7 +110,7 @@ public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_Mu } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { container=essentiaContainerCompat.getContainer(this); cElementalInstanceStack newStack=essentiaContainerCompat.getFromContainer(container); if(newStack!=null){ @@ -127,8 +127,6 @@ public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_Mu } return true; } - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/item/gui/ScanDisplayScreen.java b/src/main/java/com/github/technus/tectech/thing/item/gui/ScanDisplayScreen.java index 9b6c336cf6..c35a37a5cf 100644 --- a/src/main/java/com/github/technus/tectech/thing/item/gui/ScanDisplayScreen.java +++ b/src/main/java/com/github/technus/tectech/thing/item/gui/ScanDisplayScreen.java @@ -21,15 +21,14 @@ public class ScanDisplayScreen extends GuiScreen { private final String[] lines; private int firstLine =0; - private static final ResourceLocation[] BACKGROUND1 =new ResourceLocation[]{new ResourceLocation("tectech:textures/gui/scanDisplayScreen1.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen2.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen3.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen4.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen5.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen6.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen7.png"), - new ResourceLocation("tectech:textures/gui/scanDisplayScreen8.png")}; - private static final ResourceLocation BACKGROUND = BACKGROUND1[0]; + private static final ResourceLocation[] BACKGROUNDS =new ResourceLocation[]{new ResourceLocation("tectech:textures/gui/scanDisplayScreen1.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen2.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen3.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen4.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen5.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen6.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen7.png"), + new ResourceLocation("tectech:textures/gui/scanDisplayScreen8.png")}; private static final ResourceLocation ITEM =new ResourceLocation("tectech:textures/gui/scanDisplayItem.png"); public ScanDisplayScreen(EntityPlayer player){ @@ -45,7 +44,7 @@ public class ScanDisplayScreen extends GuiScreen { long tick=System.currentTimeMillis()/150; int itick=(int)(tick%12); drawTexturedModalRect(baseX+99,baseY+189,32*(itick/6),32*(itick%6), 32, 32); - this.mc.getTextureManager().bindTexture(BACKGROUND1[(int)(tick%8)]); + this.mc.getTextureManager().bindTexture(BACKGROUNDS[(int)(tick%8)]); drawTexturedModalRect(baseX,baseY,0,0, sizeX, sizeY); glDisable(GL_BLEND); super.drawScreen(x,y,partialTicks); @@ -132,7 +131,7 @@ public class ScanDisplayScreen extends GuiScreen { this.field_146123_n = xPos >= this.xPosition && yPos >= this.yPosition && xPos < this.xPosition + this.width && yPos < this.yPosition + this.height; glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - mc.getTextureManager().bindTexture(BACKGROUND); + mc.getTextureManager().bindTexture(BACKGROUNDS[0]); drawTexturedModalRect(this.xPosition, this.yPosition, u + this.getHoverState(this.field_146123_n) * 80, v, this.width, this.height); glDisable(GL_BLEND); GL11.glEnable(GL11.GL_BLEND); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java index 4db4c1096a..0c80e315ab 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java @@ -64,13 +64,13 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB public GT_MetaTileEntity_EM_computer(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); eCertainMode = 5; - eCertainStatus = -128;//no-brainer value + eCertainStatus = -128;//no-brain value } public GT_MetaTileEntity_EM_computer(String aName) { super(aName); eCertainMode = 5; - eCertainStatus = -128;//no-brainer value + eCertainStatus = -128;//no-brain value } public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { @@ -94,18 +94,16 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { eAvailableData = 0; maxCurrentTemp = 0; double overClockRatio,overVoltageRatio; - if (noParametrizationHatches) { + if (hadNoParametrizationHatches) { overVoltageRatio=overClockRatio=1; } else { overClockRatio= getParameterIn(0,0); overVoltageRatio= getParameterIn(0,1); if(Double.isNaN(overClockRatio) || Double.isNaN(overVoltageRatio)) { - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; for (GT_MetaTileEntity_Hatch_Rack r : eRacks) r.getBaseMetaTileEntity().setActive(false);//todo might be not needed return false; @@ -117,8 +115,6 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB mEUt = -(int)eut; else{ mEUt = -(int)V[8]; - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; for (GT_MetaTileEntity_Hatch_Rack r : eRacks) r.getBaseMetaTileEntity().setActive(false);//todo might be not needed return false; @@ -156,8 +152,6 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB return true; } } - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; for (GT_MetaTileEntity_Hatch_Rack r : eRacks) r.getBaseMetaTileEntity().setActive(false); return false; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java index b3f56a5bf5..9410842520 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java @@ -111,13 +111,11 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { cElementalInstanceStackMap map= getInputsClone_EM(); if(map!=null && map.hasStacks() && map.getFirst().getLifeTime()< STABLE_RAW_LIFE_TIME){ return startRecipe(map.getFirst()); } - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; return false; } 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 a94f092cf0..48353603f8 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 @@ -83,7 +83,7 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) { cElementalInstanceStackMap map = in.getContainerHandler(); for (cElementalInstanceStack stack : map.values()) { @@ -118,8 +118,6 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo } } } - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java index 0f27bd746e..d86cce6170 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java @@ -92,7 +92,7 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { if (itemStack != null && itemStack.stackSize == 1) { Item ofThis = itemStack.getItem(); if (ofThis instanceof IElectricItem) { @@ -105,10 +105,6 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa return true; } } - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; - eAmpereFlow = 0; - mEUt = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java index 7a178a692f..91163d5c6d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java @@ -104,7 +104,7 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) if (in.getContainerHandler().hasStacks()) { mEUt = -(int) V[8]; @@ -113,8 +113,6 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB mEfficiencyIncrease = 10000; return true; } - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java index 3c1986d635..6e5a16f5a5 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java @@ -1,16 +1,24 @@ package com.github.technus.tectech.thing.metaTileEntity.multi; 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; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.objects.GT_ItemStack; import gregtech.common.blocks.GT_Block_Machines; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import java.util.ArrayList; +import java.util.HashMap; + import static com.github.technus.tectech.Util.StructureBuilder; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsTT; @@ -81,4 +89,49 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "the time u started using it." }; } + + @Override + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { + Behaviour currentBehaviour=map.get(new GT_ItemStack(itemStack)); + if(currentBehaviour==null) return false; + //mux input + cElementalInstanceStackMap[] handles=new cElementalInstanceStackMap[3]; + if(hadNoParametrizationHatches){ + try { + handles[0] = eInputHatches.get(0).getContainerHandler(); + handles[1] = eInputHatches.get(1).getContainerHandler(); + handles[2] = eInputHatches.get(2).getContainerHandler(); + }catch (Exception ignored){} + }else{ + try { + + }catch (Exception ignored){} + } + MultiblockControl<cElementalInstanceStackMap> control=currentBehaviour.process(handles, hadNoParametrizationHatches); + if(control==null) return false; + outputEM=control.getValues(); + mEUt=control.getEUT(); + eAmpereFlow=control.getAmperage(); + mMaxProgresstime=control.getMaxProgressTime(); + eRequiredData=control.getRequiredData(); + mEfficiencyIncrease=control.getEffIncrease(); + return true; + } + + @Override + public void outputAfterRecipe_EM() { + //mux output + //output + } + + private static final HashMap<GT_ItemStack,Behaviour> map=new HashMap<>(); + public abstract class Behaviour { + public Behaviour(ItemStack... keyItems){ + for(ItemStack is:keyItems){ + map.put(new GT_ItemStack(is.getItem(),1,is.getItemDamage()),this); + } + } + + public abstract MultiblockControl<cElementalInstanceStackMap> process(cElementalInstanceStackMap[] inputs, boolean noParametrizationHatches, double... parameters); + } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java index 7357a141f1..f06ce1ba82 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java @@ -92,7 +92,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) {//TODO implement by item quantization, implement instance quantization + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) {//TODO implement by item quantization, implement instance quantization if (GregTech_API.sPostloadFinished) { ItemStack[] inI = getStoredInputs().toArray(new ItemStack[0]); if (inI.length > 0) { @@ -144,8 +144,6 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock } } } - mEfficiencyIncrease = 0; - mMaxProgresstime = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java index 4dfb4f7b6c..ccd5bc79e4 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java @@ -177,7 +177,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { tRecipe=null; aRecipe=null; if(eHolders.size()>0 && eHolders.get(0).mInventory[0]!=null) { @@ -244,8 +244,6 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB } holdItem=null; computationRequired=computationRemaining=0; - mMaxProgresstime=0; - mEfficiencyIncrease = 0; for (GT_MetaTileEntity_Hatch_Holder r : eHolders) r.getBaseMetaTileEntity().setActive(false); return false; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java index d286869a0c..c2b9f3a13f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java @@ -195,7 +195,7 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { eRecipe=null; if(eInputHatches.size()>0 && eInputHatches.get(0).getContainerHandler().hasStacks() && !eOutputHatches.isEmpty()) { cElementalInstanceStackMap researchEM = eInputHatches.get(0).getContainerHandler(); @@ -276,8 +276,6 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa quantumStuff(false); objectResearched=null; totalComputationRemaining =0; - mMaxProgresstime=0; - mEfficiencyIncrease = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java index 9a16035d49..cef1965174 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java @@ -80,7 +80,7 @@ public class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { short thingsActive = 0; for (GT_MetaTileEntity_Hatch_InputData di : eInputData) if (di.q != null) @@ -94,8 +94,6 @@ public class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas mEfficiencyIncrease = 10000; return true; } - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; return false; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java index 7285340215..a5d6d6ad8c 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java @@ -112,7 +112,7 @@ public class GT_MetaTileEntity_EM_transformer extends GT_MetaTileEntity_Multiblo } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { if (ePowerPass) { mEfficiencyIncrease = 10000; mMaxProgresstime = 20; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java index 03ac34a3d3..65ebabb7ac 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java @@ -155,9 +155,9 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock } @Override - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { hasBeenPausedThisCycle =false; - if(noParametrizationHatches){ + if(hadNoParametrizationHatches){ powerSetting=POWER_SETTING_DEFAULT; timerSetting=TIMER_SETTING_DEFAULT; } 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 c955466138..972d2df54e 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 @@ -94,7 +94,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt protected long eRequiredData = 0; // data required to operate protected long eAvailableData = 0; // data being available - private boolean explodedThisTick=false; + private boolean explodedThisTick=false, eHadNoParametrizationHatches = true; //init param states in constructor, or implement it in checkrecipe/outputfunction @@ -103,7 +103,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt //if you want to add checks that run periodically when machine works then make onRunningTick better //if you want to add checks that run periodically when machine is built then use check params - public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizationHatches) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) { return false; } // My code handles AMPS, if you want overclocking just modify mEUt and mMaxProgressTime, leave amps as usual! @@ -122,7 +122,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt // (Well it can be overflowed if machine didn't finished, soft-hammered/disabled/not enough EU) // Setting available data processing - protected void hatchInit_EM() { + protected void hatchInit_EM(boolean mMachine) { }//For extra types of hatches initiation, LOOK HOW IT IS CALLED! onPostTick protected void extraExplosions_EM() { @@ -158,13 +158,44 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt return 0; } - //triggered if machine is not allowed to work after completing a recipe + //helper method so i don't have to set that params to nothing at all times + protected void afterRecipeCheckFailed(){ + if (outputEM != null) { + float mass = 0; + for (cElementalInstanceStackMap tree : outputEM) + mass += tree.getMass(); + if (mass > 0) { + if (eMufflerHatches.size() < 1) explodeMultiblock(); + else { + mass /= eMufflerHatches.size(); + for (GT_MetaTileEntity_Hatch_MufflerElemental dump : eMufflerHatches) + if (dump.addOverflowMatter(mass)) explodeMultiblock(); + } + } + outputEM = null; + } + + for (GT_MetaTileEntity_Hatch_OutputData data : eOutputData) + data.q = null; + + mOutputItems = null; + mOutputFluids = null; + mEfficiency = 0; + mEfficiencyIncrease = 0; + mProgresstime = 0; + //mMaxProgresstime = 0; //Done after this - cos it is VITAL! + eAvailableData = 0; + //getBaseMetaTileEntity().disableWorking(); + //hatchesStatusUpdate_EM(); //called always after recipe checks + } + + //triggered if machine is not allowed to work after completing a recipe, override to make it not shutdown for instance (like turbines). protected void notAllowedToWork_stopMachine_EM(){ stopMachine(); } //Override if needed but usually call super method at start! - //On machine stop - NOT called when softhammered to offline state! - it SHOULD cause a full stop like power failure does + //On machine stop - NOT called directly when softhammered to offline state! - it SHOULD cause a full stop like power failure does @Override public void stopMachine() { if (outputEM != null) { @@ -188,11 +219,12 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt mOutputItems = null; mOutputFluids = null; mEfficiency = 0; + mEfficiencyIncrease = 0; mProgresstime = 0; mMaxProgresstime = 0; - mEfficiencyIncrease = 0; - getBaseMetaTileEntity().disableWorking(); + eAvailableData = 0; hatchesStatusUpdate_EM(); + getBaseMetaTileEntity().disableWorking(); } @Override @@ -267,6 +299,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt aNBT.setBoolean("eVoid", eSafeVoid); aNBT.setBoolean("eBoom", eDismantleBoom); aNBT.setBoolean("eOK", mMachine); + aNBT.setBoolean("eHadNoParam", eHadNoParametrizationHatches); //Ensures compatibility if (mOutputItems != null) { @@ -345,6 +378,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt eSafeVoid = aNBT.getBoolean("eVoid"); eDismantleBoom = aNBT.getBoolean("eBoom"); mMachine = aNBT.getBoolean("eOK"); + eHadNoParametrizationHatches = aNBT.getBoolean("eHadNoParam"); //Ensures compatibility int aOutputItemsLength = aNBT.getInteger("mOutputItemsLength"); @@ -597,13 +631,14 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt if(hatch.param>=0) bParamsAreFloats[hatch.param]=hatch.isUsingFloats(); } } + eHadNoParametrizationHatches &=eParamHatches.size()==0; } else { maxEUinputMin = 0; maxEUinputMax = 0; eMaxAmpereFlow = 0; this.setEUVar(0); } - hatchInit_EM(); + hatchInit_EM(mMachine); |
