aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-12-23 19:48:04 +0100
committerTechnus <daniel112092@gmail.com>2017-12-23 19:48:04 +0100
commita428d6f99e99499f20f380d5cc650261e5b4e30e (patch)
treea8de91880aebd4c7744dacfdf211602b1b223cb7 /src
parent9dc7592301281137ef1cfb4332065c754b691eab (diff)
downloadGT5-Unofficial-a428d6f99e99499f20f380d5cc650261e5b4e30e.tar.gz
GT5-Unofficial-a428d6f99e99499f20f380d5cc650261e5b4e30e.tar.bz2
GT5-Unofficial-a428d6f99e99499f20f380d5cc650261e5b4e30e.zip
Prepare initial code for em machine
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java64
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java72
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java40
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java32
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java66
16 files changed, 177 insertions, 123 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 8f4d48b798..374fad20d3 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
container=essentiaContainerCompat.getContainer(this);
if (eInputHatches.size() < 1 || container==null) {
stopMachine();
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 bb04d81089..65a43c76ab 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
container=essentiaContainerCompat.getContainer(this);
cElementalInstanceStack newStack=essentiaContainerCompat.getFromContainer(container);
if(newStack!=null){
diff --git a/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java b/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java
index 003720de76..67fcf320f4 100644
--- a/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java
+++ b/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java
@@ -3,6 +3,7 @@ package com.github.technus.tectech.thing.item;
import com.github.technus.tectech.CommonValues;
import com.github.technus.tectech.Util;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Param;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -47,28 +48,47 @@ public class ParametrizerMemoryCard extends Item {
aStack.stackSize = 1;
if (tTileEntity != null && tTileEntity instanceof IGregTechTileEntity) {
IMetaTileEntity metaTE = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity();
- if (metaTE != null && metaTE instanceof GT_MetaTileEntity_Hatch_Param) {
- GT_MetaTileEntity_Hatch_Param parametrizer = ((GT_MetaTileEntity_Hatch_Param) metaTE);
- if(aStack.getTagCompound()==null) aStack.setTagCompound(new NBTTagCompound());
- NBTTagCompound tNBT=aStack.getTagCompound();
- if (aStack.getItemDamage()==1) {
- //write to parametrizer
- parametrizer.param = tNBT.getInteger("param");
- if(parametrizer.setUsingFloats(tNBT.getBoolean("usesFloats"))) {
- parametrizer.value0i = (int)Float.intBitsToFloat(tNBT.getInteger("value0i"));
- parametrizer.value1i = (int)Float.intBitsToFloat(tNBT.getInteger("value1i"));
- }else{
- parametrizer.value0i = tNBT.getInteger("value0i");
- parametrizer.value1i = tNBT.getInteger("value1i");
+ if (metaTE != null) {
+ if (metaTE instanceof GT_MetaTileEntity_Hatch_Param) {
+ GT_MetaTileEntity_Hatch_Param parametrizer = ((GT_MetaTileEntity_Hatch_Param) metaTE);
+ if (aStack.getTagCompound() == null) aStack.setTagCompound(new NBTTagCompound());
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (aStack.getItemDamage() == 1) {
+ //write to parametrizer
+ parametrizer.param = tNBT.getInteger("param");
+ if (parametrizer.setUsingFloats(tNBT.getBoolean("usesFloats"))) {
+ parametrizer.value0i = (int) Float.intBitsToFloat(tNBT.getInteger("value0i"));
+ parametrizer.value1i = (int) Float.intBitsToFloat(tNBT.getInteger("value1i"));
+ } else {
+ parametrizer.value0i = tNBT.getInteger("value0i");
+ parametrizer.value1i = tNBT.getInteger("value1i");
+ }
+ } else {
+ //read from parametrizer
+ tNBT.setInteger("param", parametrizer.param);
+ tNBT.setBoolean("usesFloats", parametrizer.isUsingFloats());
+ tNBT.setInteger("value0i", parametrizer.value0i);
+ tNBT.setInteger("value1i", parametrizer.value1i);
+ }
+ return true;
+ }else if(metaTE instanceof GT_MetaTileEntity_MultiblockBase_EM){
+ GT_MetaTileEntity_MultiblockBase_EM base = ((GT_MetaTileEntity_MultiblockBase_EM) metaTE);
+ if (aStack.getTagCompound() == null) aStack.setTagCompound(new NBTTagCompound());
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if(aStack.getItemDamage()== 1){
+ //write to base
+ if(tNBT.getBoolean("usesFloats")){
+ base.setParameterPairIn_ClearOut(tNBT.getInteger("param"),true
+ ,Float.intBitsToFloat(tNBT.getInteger("value0i"))
+ ,Float.intBitsToFloat(tNBT.getInteger("value1i")));
+ }else{
+ base.setParameterPairIn_ClearOut(tNBT.getInteger("param"),false
+ ,tNBT.getInteger("value0i")
+ ,tNBT.getInteger("value1i"));
+ }
+ return true;
}
- } else {
- //read from parametrizer
- tNBT.setInteger("param", parametrizer.param);
- tNBT.setBoolean("usesFloats", parametrizer.isUsingFloats());
- tNBT.setInteger("value0i", parametrizer.value0i);
- tNBT.setInteger("value1i", parametrizer.value1i);
}
- return true;
}
}
}
@@ -96,9 +116,9 @@ public class ParametrizerMemoryCard extends Item {
aList.add("Stores Parameters");
if(aStack.getItemDamage()==1) {
- aList.add(EnumChatFormatting.BLUE + "Use on Parametrizer to configure it");
+ aList.add(EnumChatFormatting.BLUE + "Use on Parametrizer/Controller to configure it");
}else{
- aList.add(EnumChatFormatting.BLUE + "Use on Parametrizer to save parameters");
+ aList.add(EnumChatFormatting.BLUE + "Use on Parametrizer to store parameters");
}
aList.add(EnumChatFormatting.BLUE + "Sneak right click to lock/unlock");
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 0c80e315ab..c921a2abbe 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
@@ -94,20 +94,13 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
eAvailableData = 0;
maxCurrentTemp = 0;
- double overClockRatio,overVoltageRatio;
- if (hadNoParametrizationHatches) {
- overVoltageRatio=overClockRatio=1;
- } else {
- overClockRatio= getParameterIn(0,0);
- overVoltageRatio= getParameterIn(0,1);
- if(Double.isNaN(overClockRatio) || Double.isNaN(overVoltageRatio)) {
- for (GT_MetaTileEntity_Hatch_Rack r : eRacks)
- r.getBaseMetaTileEntity().setActive(false);//todo might be not needed
- return false;
- }
+ double overClockRatio= getParameterIn(0,0);
+ double overVoltageRatio= getParameterIn(0,1);
+ if(Double.isNaN(overClockRatio) || Double.isNaN(overVoltageRatio)) {
+ return false;
}
if(overClockRatio>0 && overVoltageRatio>=0.7f && overClockRatio<=3 && overVoltageRatio<=2){
float eut=V[8] * (float)overVoltageRatio * (float)overClockRatio;
@@ -115,8 +108,6 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
mEUt = -(int)eut;
else{
mEUt = -(int)V[8];
- for (GT_MetaTileEntity_Hatch_Rack r : eRacks)
- r.getBaseMetaTileEntity().setActive(false);//todo might be not needed
return false;
}
short thingsActive = 0;
@@ -152,18 +143,46 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
return true;
}
}
- for (GT_MetaTileEntity_Hatch_Rack r : eRacks)
- r.getBaseMetaTileEntity().setActive(false);
return false;
}
@Override
+ public void outputAfterRecipe_EM() {
+ if (eOutputData.size() > 0) {
+ final Vec3pos pos = new Vec3pos(getBaseMetaTileEntity());
+ QuantumDataPacket pack = new QuantumDataPacket(pos, eAvailableData);
+ for (GT_MetaTileEntity_Hatch_InputData i : eInputData) {
+ if (i.q == null || i.q.contains(pos)) continue;
+ pack = pack.unifyPacketWith(i.q);
+ if (pack == null) return;
+ }
+
+ pack.computation /= eOutputData.size();
+
+ for (GT_MetaTileEntity_Hatch_OutputData o : eOutputData)
+ o.q = pack;
+ }
+ }
+
+ @Override
protected long getAvailableData_EM() {
return eAvailableData;
}
@Override
- public void updateParameters_EM(boolean busy) {
+ protected void afterRecipeCheckFailed() {
+ super.afterRecipeCheckFailed();
+ for (GT_MetaTileEntity_Hatch_Rack r : eRacks)
+ r.getBaseMetaTileEntity().setActive(false);
+ }
+
+ @Override
+ protected void parametersLoadDefault_EM() {
+ setParameterPairIn_ClearOut(0, false, 1, 1);
+ }
+
+ @Override
+ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
double ocRatio = getParameterIn(0, 0);
if (ocRatio < 0) setStatusOfParameterIn(0, 0, STATUS_TOO_LOW);
else if (ocRatio < 1) setStatusOfParameterIn(0, 0, STATUS_LOW);
@@ -189,28 +208,11 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
else if (maxCurrentTemp <= 5000) setStatusOfParameterOut(0, 0, STATUS_HIGH);
else setStatusOfParameterOut(0, 0, STATUS_TOO_HIGH);
- if (!busy) setStatusOfParameterOut(0, 1, STATUS_WRONG);
+ if (!machineBusy) setStatusOfParameterOut(0, 1, STATUS_UNUSED);
else if (eAvailableData <= 0) setStatusOfParameterOut(0, 1, STATUS_TOO_LOW);
else setStatusOfParameterOut(0, 1, STATUS_OK);
}
- @Override
- public void outputAfterRecipe_EM() {
- if (eOutputData.size() > 0) {
- final Vec3pos pos = new Vec3pos(getBaseMetaTileEntity());
- QuantumDataPacket pack = new QuantumDataPacket(pos, eAvailableData);
- for (GT_MetaTileEntity_Hatch_InputData i : eInputData) {
- if (i.q == null || i.q.contains(pos)) continue;
- pack = pack.unifyPacketWith(i.q);
- if (pack == null) return;
- }
-
- pack.computation /= eOutputData.size();
-
- for (GT_MetaTileEntity_Hatch_OutputData o : eOutputData)
- o.q = pack;
- }
- }
@Override
public void onRemoval() {
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 9410842520..1471940085 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,7 +111,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
cElementalInstanceStackMap map= getInputsClone_EM();
if(map!=null && map.hasStacks() && map.getFirst().getLifeTime()< STABLE_RAW_LIFE_TIME){
return startRecipe(map.getFirst());
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 48353603f8..eb1ed256e4 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) {
cElementalInstanceStackMap map = in.getContainerHandler();
for (cElementalInstanceStack stack : map.values()) {
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 d86cce6170..a440ece804 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
if (itemStack != null && itemStack.stackSize == 1) {
Item ofThis = itemStack.getItem();
if (ofThis instanceof IElectricItem) {
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 91163d5c6d..9e16f179e3 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
@@ -78,7 +78,7 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB
}
@Override
- public void updateParameters_EM(boolean busy) {
+ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
double src, dest;
for (int i = 0; i < 10; i++) {
src = getParameterIn(i, 0);
@@ -104,7 +104,7 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches)
if (in.getContainerHandler().hasStacks()) {
mEUt = -(int) V[8];
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 6e5a16f5a5..68e6c6f4c9 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
@@ -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,7 +14,6 @@ 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;
@@ -91,24 +88,17 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
Behaviour currentBehaviour=map.get(new GT_ItemStack(itemStack));
if(currentBehaviour==null) return false;
//mux input
+ double[] parameters=new double[]{getParameterIn(0,0),getParameterIn(0,1),getParameterIn(1,0),getParameterIn(1,1),
+ getParameterIn(2,0),getParameterIn(2,1),getParameterIn(3,0),getParameterIn(3,1)};
+ if(!currentBehaviour.setAndCheckParametersOutAndStatuses(this,parameters))return false;
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);
+ MultiblockControl<cElementalInstanceStackMap> control=currentBehaviour.process(handles,parameters);
if(control==null) return false;
+ //update other pare
outputEM=control.getValues();
mEUt=control.getEUT();
eAmpereFlow=control.getAmperage();
@@ -119,6 +109,21 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
}
@Override
+ protected void parametersLoadDefault_EM() {//default 1 to 1 routing table
+ setParameterPairIn_ClearOut(4,false,1,1);//I
+ setParameterPairIn_ClearOut(5,false,2,2);//I
+ setParameterPairIn_ClearOut(6,false,3,3);//I
+ setParameterPairIn_ClearOut(7,false,1,1);//O
+ setParameterPairIn_ClearOut(8,false,2,2);//O
+ setParameterPairIn_ClearOut(9,false,3,3);//O
+ }
+
+ @Override
+ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
+ //update routing
+ }
+
+ @Override
public void outputAfterRecipe_EM() {
//mux output
//output
@@ -132,6 +137,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
}
}
- public abstract MultiblockControl<cElementalInstanceStackMap> process(cElementalInstanceStackMap[] inputs, boolean noParametrizationHatches, double... parameters);
+ public abstract boolean setAndCheckParametersOutAndStatuses(GT_MetaTileEntity_EM_machine te, double[] parameters);
+ public abstract MultiblockControl<cElementalInstanceStackMap> process(cElementalInstanceStackMap[] inputs, 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 f06ce1ba82..e2b485c2ba 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 hadNoParametrizationHatches) {//TODO implement by item quantization, implement instance quantization
+ public boolean checkRecipe_EM(ItemStack itemStack) {//TODO implement by item quantization, implement instance quantization
if (GregTech_API.sPostloadFinished) {
ItemStack[] inI = getStoredInputs().toArray(new ItemStack[0]);
if (inI.length > 0) {
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 ccd5bc79e4..b82bd55428 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
tRecipe=null;
aRecipe=null;
if(eHolders.size()>0 && eHolders.get(0).mInventory[0]!=null) {
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 c2b9f3a13f..91c638fce9 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
eRecipe=null;
if(eInputHatches.size()>0 && eInputHatches.get(0).getContainerHandler().hasStacks() && !eOutputHatches.isEmpty()) {
cElementalInstanceStackMap researchEM = eInputHatches.get(0).getContainerHandler();
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 cef1965174..af304aee65 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
short thingsActive = 0;
for (GT_MetaTileEntity_Hatch_InputData di : eInputData)
if (di.q != null)
@@ -149,7 +149,7 @@ public class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas
}
@Override
- public void updateParameters_EM(boolean busy) {
+ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
double weight, dest;
for (int i = 0; i < 10; i++) {
weight = getParameterIn(i, 0);
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 a5d6d6ad8c..f547b444ac 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
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 65ebabb7ac..e634bde66c 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
@@ -36,9 +36,7 @@ import static gregtech.api.GregTech_API.sBlockCasings4;
*/
public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable {
public final static int POWER_SETTING_DEFAULT=1000, TIMER_SETTING_DEFAULT=360;
- private int powerSetting = POWER_SETTING_DEFAULT;
- private int timerSetting = TIMER_SETTING_DEFAULT;
- private int timerValue = 0;
+ private int powerSetting,timerSetting,timerValue;
private boolean hasBeenPausedThisCycle=false;
private boolean flipped=false;
@@ -155,12 +153,8 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack, boolean hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
hasBeenPausedThisCycle =false;
- if(hadNoParametrizationHatches){
- powerSetting=POWER_SETTING_DEFAULT;
- timerSetting=TIMER_SETTING_DEFAULT;
- }
if(powerSetting<300 || timerSetting<=0 || timerSetting>3000) return false;
if (timerValue <= 0) {
timerValue=timerSetting;
@@ -241,7 +235,20 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock
}
@Override
- public void updateParameters_EM(boolean machineIsBusy) {
+ protected void parametersLoadDefault_EM() {
+ powerSetting = POWER_SETTING_DEFAULT;
+ timerSetting = TIMER_SETTING_DEFAULT;
+ setParameterPairIn_ClearOut(0,false,POWER_SETTING_DEFAULT,TIMER_SETTING_DEFAULT);
+ }
+
+ @Override
+ protected void parametersInRead_EM() {
+ powerSetting = (int) getParameterIn(0, 0);
+ timerSetting = (int) getParameterIn(0, 1);
+ }
+
+ @Override
+ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
double powerParameter = getParameterIn(0, 0);
if (powerParameter < 300) setStatusOfParameterIn(0, 0, STATUS_TOO_LOW);
else if (powerParameter < 1000) setStatusOfParameterIn(0, 0, STATUS_LOW);
@@ -258,16 +265,11 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock
setParameterOut(0, 0, timerValue);
setParameterOut(0, 1, timerSetting - timerValue);
-
- if (machineIsBusy) return;
-
- powerSetting = (int) powerParameter;
- timerSetting = (int) timerParameter;
}
@Override
public boolean onRunningTick(ItemStack aStack) {
- if(eSafeVoid) hasBeenPausedThisCycle =true;
+ if(eSafeVoid) hasBeenPausedThisCycle = true;
return hasBeenPausedThisCycle || super.onRunningTick(aStack);//consume eu and other resources if not paused
}
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 972d2df54e..22f4179290 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, eHadNoParametrizationHatches = true;
+ private boolean explodedThisTick=false;
//init param states in constructor, or implement it in checkrecipe/outputfunction
@@ -103,13 +103,17 @@ 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 hadNoParametrizationHatches) {
+ public boolean checkRecipe_EM(ItemStack itemStack) {
return false;
}
// My code handles AMPS, if you want overclocking just modify mEUt and mMaxProgressTime, leave amps as usual!
// Set mEUt, Efficiencies, required computation, time, check input etc.
- public void updateParameters_EM(boolean busy) {
+ protected void parametersInRead_EM(){
+
+ }
+
+ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
}
// update status of parameters in guis and "machine state"
// Called before check recipe, before outputting, and every second the machine is active
@@ -246,10 +250,12 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
public GT_MetaTileEntity_MultiblockBase_EM(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
+ parametersLoadDefault_EM();
}
public GT_MetaTileEntity_MultiblockBase_EM(String aName) {
super(aName);
+ parametersLoadDefault_EM();
}
@Override
@@ -299,7 +305,6 @@ 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) {
@@ -378,7 +383,6 @@ 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");
@@ -439,6 +443,26 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
}
//Param methods
+ //called in creator
+ protected void parametersLoadDefault_EM(){
+ //load default parameters with setParameterPairIn_ClearOut
+ }
+
+ public final boolean setParameterPairIn_ClearOut(int hatchNo, boolean usesFloats, double value0, double value1) {
+ if (mMaxProgresstime > 0) return false;
+ bParamsAreFloats[hatchNo] = usesFloats;
+ if (usesFloats) {
+ iParamsIn[hatchNo] = Float.floatToIntBits((float) value0);
+ iParamsIn[hatchNo + 10] = Float.floatToIntBits((float) value1);
+ } else {
+ iParamsIn[hatchNo] = (int) value0;
+ iParamsIn[hatchNo + 10] = (int) value1;
+ }
+ iParamsOut[hatchNo] = 0;
+ iParamsOut[hatchNo + 10] = 0;
+ return true;
+ }
+
public final boolean isParametrizerUsingFloat(int hatchNo){
return bParamsAreFloats[hatchNo];
}
@@ -631,7 +655,6 @@ 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;
@@ -1152,23 +1175,14 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
@Override
public final boolean checkRecipe(ItemStack itemStack) {//do recipe checks, based on "machine content and state"
hatchesStatusUpdate_EM();
- boolean result= checkRecipe_EM(itemStack, eHadNoParametrizationHatches);//if had no - set default params
+ boolean result= checkRecipe_EM(itemStack);//if had no - set default params
hatchesStatusUpdate_EM();
return result;
}
private void hatchesStatusUpdate_EM() {
- if(mMaxProgresstime==0) {
- for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
- if (!isValidMetaTileEntity(hatch) || hatch.param < 0) continue;
- final int paramID = hatch.param;
- bParamsAreFloats[hatch.param] = hatch.isUsingFloats();
- iParamsIn[paramID] = hatch.value0i;
- iParamsIn[paramID + 10] = hatch.value1i;
- hatch.input0i = iParamsOut[paramID];
- hatch.input1i = iParamsOut[paramID + 10];
- }
- }else {//write to hatches only
+ boolean busy=mMaxProgresstime>0;
+ if (busy) {//write from buffer to hatches only
for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
if (!isValidMetaTileEntity(hatch) || hatch.param < 0) continue;
final int paramID = hatch.param;
@@ -1183,12 +1197,22 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
hatch.input1i = (int)Float.intBitsToFloat(iParamsOut[paramID + 10]);
}
}
+ parametersInRead_EM();
+ } else {//if has nothing to do update all
+ for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
+ if (!isValidMetaTileEntity(hatch) || hatch.param < 0) continue;
+ final int paramID = hatch.param;
+ bParamsAreFloats[hatch.param] = hatch.isUsingFloats();
+ iParamsIn[paramID] = hatch.value0i;
+ iParamsIn[paramID + 10] = hatch.value1i;
+ hatch.input0i = iParamsOut[paramID];
+ hatch.input1i = iParamsOut[paramID + 10];
+ }
}
- updateParameters_EM(mMaxProgresstime>0);
- eAvailableData = getAvailableData_EM();
-
for (GT_MetaTileEntity_Hatch_Uncertainty uncertainty : eUncertainHatches)
eCertainStatus = uncertainty.update(eCertainMode);
+ eAvailableData = getAvailableData_EM();
+ parametersOutAndStatusesWrite_EM(busy);
}
@Override