aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2019-02-19 20:28:13 +0100
committerTec <daniel112092@gmail.com>2019-02-19 20:28:13 +0100
commit16ace78716ae898fe0d57abde51448fde68c2d58 (patch)
tree16e03878a8585c43e37d81e1efb9e2e2fb492301
parent664d264be74c12b2a7471548b16d49870d98cada (diff)
downloadGT5-Unofficial-16ace78716ae898fe0d57abde51448fde68c2d58.tar.gz
GT5-Unofficial-16ace78716ae898fe0d57abde51448fde68c2d58.tar.bz2
GT5-Unofficial-16ace78716ae898fe0d57abde51448fde68c2d58.zip
Most likely the param api will look like this.
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java109
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java33
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_Container_MultiMachineEM.java36
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_GUIContainer_MultiMachineEM.java78
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java41
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/LedStatus.java46
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java49
9 files changed, 247 insertions, 159 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
index e805b02fa9..03404cf652 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
@@ -361,8 +361,8 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
@Override
protected void parametersInstantiation_EM() {
- Parameters.Group group=parametrization.makeGroup(0,false);
- mode=group.makeInParameter(0,FUSE_MODE, MODE_NAME, MODE_STATUS);
+ Parameters.Group hatch_0=parametrization.makeGroup(0,false);
+ mode=hatch_0.makeInParameter(0,FUSE_MODE, MODE_NAME, MODE_STATUS);
}
@Override
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 305acb23e3..d12ec0ca64 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
@@ -10,6 +10,7 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputData;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Rack;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture;
import cpw.mods.fml.relauncher.Side;
@@ -28,6 +29,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
import java.util.ArrayList;
+import java.util.function.Function;
import static com.github.technus.tectech.CommonValues.V;
import static com.github.technus.tectech.Util.StructureBuilderExtreme;
@@ -46,11 +48,29 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
//region parameters
protected Parameters.Group.ParameterIn overclock,overvolt;
-
+ protected Parameters.Group.ParameterOut maxCurrentTemp,availableData;
+ private static final Function<GT_MetaTileEntity_EM_computer,String> OC_NAME = base-> "Overclock ratio";
+ private static final Function<GT_MetaTileEntity_EM_computer,String> OV_NAME = base-> "Overvoltage ratio";
+ private static final Function<GT_MetaTileEntity_EM_computer,String> MAX_TEMP_NAME = base-> "Current max. heat";
+ private static final Function<GT_MetaTileEntity_EM_computer,String> COMPUTE_NAME = base-> "Produced computation";
+ private static final Function<GT_MetaTileEntity_EM_computer, LedStatus> OC_STATUS=
+ base->LedStatus.fromLimitsInclusiveOuterBoundary(base.overclock.get(),0,1,1,3);
+ private static final Function<GT_MetaTileEntity_EM_computer,LedStatus> OV_STATUS=
+ base->LedStatus.fromLimitsInclusiveOuterBoundary(base.overvolt.get(),.7,.8,1.2,2);
+ private static final Function<GT_MetaTileEntity_EM_computer,LedStatus> MAX_TEMP_STATUS=
+ base->LedStatus.fromLimitsInclusiveOuterBoundary(base.maxCurrentTemp.get(),-10000,0,0,5000);
+ private static final Function<GT_MetaTileEntity_EM_computer,LedStatus> COMPUTE_STATUS=base->{
+ if(base.eAvailableData<0){
+ return STATUS_TOO_LOW;
+ }
+ if(base.eAvailableData==0){
+ return STATUS_NEUTRAL;
+ }
+ return STATUS_OK;
+ };
//endregion
private final ArrayList<GT_MetaTileEntity_Hatch_Rack> eRacks = new ArrayList<>();
- private int maxCurrentTemp = 0;
//region Structure
private static final String[][] front = new String[][]{{"A ", "A ", "A. ", "A ",},};
@@ -84,7 +104,11 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
@Override
protected void parametersInstantiation_EM() {
-
+ Parameters.Group hatch_0=parametrization.makeGroup(0,true);
+ overclock=hatch_0.makeInParameter(0,1,OC_NAME,OC_STATUS);
+ overvolt=hatch_0.makeInParameter(1,1,OV_NAME,OV_STATUS);
+ maxCurrentTemp=hatch_0.makeOutParameter(0,0,MAX_TEMP_NAME,MAX_TEMP_STATUS);
+ availableData=hatch_0.makeOutParameter(1,0,COMPUTE_NAME,COMPUTE_STATUS);
}
@Override
@@ -116,14 +140,15 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
@Override
public boolean checkRecipe_EM(ItemStack itemStack) {
+ parametrization.setToDefaults(false,true,false);
eAvailableData = 0;
- maxCurrentTemp = 0;
- double overClockRatio= getParameterIn(0,0);
- double overVoltageRatio= getParameterIn(0,1);
+ double maxTemp=0;
+ double overClockRatio= overclock.get();
+ double overVoltageRatio= overvolt.get();
if(Double.isNaN(overClockRatio) || Double.isNaN(overVoltageRatio)) {
return false;
}
- if(overClockRatio>0 && overVoltageRatio>=0.7f && overClockRatio<=3 && overVoltageRatio<=2){
+ if(overclock.getStatus(true).isOk() && overvolt.getStatus(true).isOk()){
float eut=V[8] * (float)overVoltageRatio * (float)overClockRatio;
if(eut<Integer.MAX_VALUE-7) {
mEUt = -(int) eut;
@@ -138,8 +163,8 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
continue;
}
- if (rack.heat > maxCurrentTemp) {
- maxCurrentTemp = rack.heat;
+ if (rack.heat > maxTemp) {
+ maxTemp=rack.heat;
}
rackComputation = rack.tickComponents((float) overClockRatio, (float) overVoltageRatio);
if (rackComputation > 0) {
@@ -161,6 +186,8 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
eAmpereFlow = 1 + (thingsActive >> 2);
mMaxProgresstime = 20;
mEfficiencyIncrease = 10000;
+ maxCurrentTemp.set(maxTemp);
+ availableData.set(eAvailableData);
return true;
} else {
eAvailableData=0;
@@ -168,6 +195,8 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
eAmpereFlow = 1;
mMaxProgresstime = 20;
mEfficiencyIncrease = 10000;
+ maxCurrentTemp.set(maxTemp);
+ availableData.set(eAvailableData);
return true;
}
}
@@ -212,68 +241,6 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
}
@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);
- } else if (ocRatio == 1) {
- setStatusOfParameterIn(0, 0, STATUS_OK);
- } else if (ocRatio <= 3) {
- setStatusOfParameterIn(0, 0, STATUS_HIGH);
- } else if (Double.isNaN(ocRatio)) {
- setStatusOfParameterIn(0, 0, STATUS_WRONG);
- } else {
- setStatusOfParameterIn(0, 0, STATUS_TOO_HIGH);
- }
-
- double ovRatio = getParameterIn(0, 1);
- if (ovRatio < 0.7f) {
- setStatusOfParameterIn(0, 1, STATUS_TOO_LOW);
- } else if (ovRatio < 0.8f) {
- setStatusOfParameterIn(0, 1, STATUS_LOW);
- } else if (ovRatio <= 1.2f) {
- setStatusOfParameterIn(0, 1, STATUS_OK);
- } else if (ovRatio <= 2) {
- setStatusOfParameterIn(0, 1, STATUS_HIGH);
- } else if (Double.isNaN(ovRatio)) {
- setStatusOfParameterIn(0, 1, STATUS_WRONG);
- } else {
- setStatusOfParameterIn(0, 1, STATUS_TOO_HIGH);
- }
-
- setParameterOut(0, 0, maxCurrentTemp);
- setParameterOut(0, 1, eAvailableData);
-
- if (maxCurrentTemp < -10000) {
- setStatusOfParameterOut(0, 0, STATUS_TOO_LOW);
- } else if (maxCurrentTemp < 0) {
- setStatusOfParameterOut(0, 0, STATUS_LOW);
- } else if (maxCurrentTemp == 0) {
- setStatusOfParameterOut(0, 0, STATUS_OK);
- } else if (maxCurrentTemp <= 5000) {
- setStatusOfParameterOut(0, 0, STATUS_HIGH);
- } else {
- setStatusOfParameterOut(0, 0, STATUS_TOO_HIGH);
- }
-
- if (!machineBusy) {
- setStatusOfParameterOut(0, 1, STATUS_NEUTRAL);
- } else if (eAvailableData <= 0) {
- setStatusOfParameterOut(0, 1, STATUS_TOO_LOW);
- } else {
- setStatusOfParameterOut(0, 1, STATUS_OK);
- }
- }
-
-
- @Override
public void onRemoval() {
super.onRemoval();
for (GT_MetaTileEntity_Hatch_Rack r : eRacks) {
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java
index e79675f016..3a4e82cb52 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java
@@ -114,16 +114,6 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB
}
@Override
- protected void parametersLoadDefault_EM() {
- for(int i=0;i<10;i++){
- setStatusOfParameterIn(i,0,STATUS_UNUSED);
- setStatusOfParameterIn(i,1,STATUS_UNUSED);
- setStatusOfParameterOut(i,0,STATUS_UNUSED);
- setStatusOfParameterOut(i,1,STATUS_UNUSED);
- }
- }
-
- @Override
public boolean checkRecipe_EM(ItemStack itemStack) {
if (eDataAccessHatches.size() > 0 && eStacksDataOutputs.size() > 0) {
mEUt = -(int) V[7];
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 71a6b70dfb..36b7505a65 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
@@ -7,6 +7,8 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -23,11 +25,14 @@ import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
+import java.util.function.Function;
+
import static com.github.technus.tectech.CommonValues.VN;
import static com.github.technus.tectech.Util.StructureBuilderExtreme;
import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset;
import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.texturePage;
import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsTT;
+import static com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus.*;
/**
* Created by danie_000 on 17.12.2016.
@@ -40,6 +45,17 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
private static final double MASS_TO_EU_PARTIAL = ConfigUtil.getFloat(MainConfig.get(), "balance/energy/generator/nuclear") * 3_000_000.0 / URANIUM_INGOT_MASS_DIFF;
private static final double MASS_TO_EU_INSTANT= MASS_TO_EU_PARTIAL *20;
+ //region parameters
+ protected Parameters.Group.ParameterIn ampereFlow;
+ private final Function<GT_MetaTileEntity_EM_decay,String> FLOW_NAME=base->"Ampere divider";
+ private final Function<GT_MetaTileEntity_EM_decay, LedStatus> FLOW_STATUS=base->{
+ if(eAmpereFlow<=0){
+ return STATUS_TOO_LOW;
+ }
+ return STATUS_OK;
+ };
+ //endregion
+
//region structure
private static final String[][] shape = new String[][]{
{"0C0","A ","A . ","A ","0C0",},
@@ -74,6 +90,12 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
}
@Override
+ protected void parametersInstantiation_EM() {
+ Parameters.Group hatch_0=parametrization.makeGroup(0,false);
+ ampereFlow=hatch_0.makeInParameter(0,1,FLOW_NAME,FLOW_STATUS);
+ }
+
+ @Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_EM_decay(mName);
}
@@ -157,8 +179,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
float preMass=outputEM[0].getMass();
outputEM[0].tickContent(1,0,1);
double energyDose=((preMass-outputEM[0].getMass())* MASS_TO_EU_PARTIAL);
- mEUt=(int)(energyDose/getParameterInInt(0,0));
- eAmpereFlow=getParameterInInt(0,0);
+ mEUt=(int)(energyDose/(eAmpereFlow=(long) ampereFlow.get()));
return outputEM[0].hasStacks();
}
@@ -191,17 +212,17 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase
return new String[]{
"Progress:",
EnumChatFormatting.GREEN + Integer.toString(mProgresstime / 20) + EnumChatFormatting.RESET + " s / " +
- EnumChatFormatting.YELLOW + Integer.toString(mMaxProgresstime / 20) + EnumChatFormatting.RESET + " s",
+ EnumChatFormatting.YELLOW + mMaxProgresstime / 20 + EnumChatFormatting.RESET + " s",
"Energy Hatches:",
EnumChatFormatting.GREEN + Long.toString(storedEnergy) + EnumChatFormatting.RESET + " EU / " +
- EnumChatFormatting.YELLOW + Long.toString(maxEnergy) + EnumChatFormatting.RESET + " EU",
+ EnumChatFormatting.YELLOW + maxEnergy + EnumChatFormatting.RESET + " EU",
(mEUt <= 0 ? "Probably uses: " : "Probably makes: ") +
- EnumChatFormatting.RED + Integer.toString(Math.abs(mEUt)) + EnumChatFormatting.RESET + " EU/t at " +
+ EnumChatFormatting.RED + Math.abs(mEUt) + EnumChatFormatting.RESET + " EU/t at " +
EnumChatFormatting.RED + eAmpereFlow + EnumChatFormatting.RESET + " A",
"Tier Rating: " + EnumChatFormatting.YELLOW + VN[getMaxEnergyInputTier_EM()] + EnumChatFormatting.RESET + " / " + EnumChatFormatting.GREEN + VN[getMinEnergyInputTier_EM()] + EnumChatFormatting.RESET +
" Amp Rating: " + EnumChatFormatting.GREEN + eMaxAmpereFlow + EnumChatFormatting.RESET + " A",
"Problems: " + EnumChatFormatting.RED + (getIdealStatus() - getRepairStatus()) + EnumChatFormatting.RESET +
- " Efficiency: " + EnumChatFormatting.YELLOW + Float.toString(mEfficiency / 100.0F) + EnumChatFormatting.RESET + " %",
+ " Efficiency: " + EnumChatFormatting.YELLOW + mEfficiency / 100.0F + EnumChatFormatting.RESET + " %",
"PowerPass: " + EnumChatFormatting.BLUE + ePowerPass + EnumChatFormatting.RESET +
" SafeVoid: " + EnumChatFormatting.BLUE + eSafeVoid,
"Computation: " + EnumChatFormatting.GREEN + eAvailableData + EnumChatFormatting.RESET + " / " + EnumChatFormatting.YELLOW + eRequiredData + EnumChatFormatting.RESET,
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_Container_MultiMachineEM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_Container_MultiMachineEM.java
index 78b020979e..bd2c20b2bc 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_Container_MultiMachineEM.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_Container_MultiMachineEM.java
@@ -10,10 +10,15 @@ import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
+import java.util.BitSet;
+
public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine {
public LedStatus[] eParamsInStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNDEFINED);
public LedStatus[] eParamsOutStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNDEFINED);
+ public int[] eParamsIn = new int[20];//number I from parametrizers
+ public int[] eParamsOut = new int[20];//number O to parametrizers
public byte eCertainMode = 5, eCertainStatus = 127;
+ public short eParamsAreFloats;
public boolean ePowerPass = false, eSafeVoid = false, allowedToWork = false;
public final boolean ePowerPassButton, eSafeVoidButton, allowedToWorkButton;
@@ -108,6 +113,9 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine {
}
eParamsInStatus = ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).parametrization.eParamsInStatus;
eParamsOutStatus = ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).parametrization.eParamsOutStatus;
+ int[] iParamsIn= ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).parametrization.iParamsIn;
+ int[] iParamsOut= ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).parametrization.iParamsOut;
+ eParamsAreFloats=((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).parametrization.bParamsAreFloats;
eCertainMode = ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).eCertainMode;
eCertainStatus = ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).eCertainStatus;
ePowerPass = ((GT_MetaTileEntity_MultiblockBase_EM) mTileEntity.getMetaTileEntity()).ePowerPass;
@@ -122,6 +130,26 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine {
}
var1.sendProgressBarUpdate(this, 120, eCertainMode | (eCertainStatus << 8));
var1.sendProgressBarUpdate(this, 121, (ePowerPass ? 1 : 0) + (eSafeVoid ? 2 : 0) + (allowedToWork ? 4 : 0));
+ var1.sendProgressBarUpdate(this,122,eParamsAreFloats);
+ i=130;
+ for(int j=0;j<eParamsOut.length;j++){
+ if(eParamsOut[j]==iParamsOut[j]){
+ i+=2;
+ continue;
+ }
+ eParamsOut[j]=iParamsOut[j];
+ var1.sendProgressBarUpdate(this,i++,eParamsOut[j]&0xFFFF);
+ var1.sendProgressBarUpdate(this,i++,eParamsOut[j]>>>16);
+ }
+ for(int j=0;j<eParamsIn.length;j++){
+ if(eParamsIn[j]==iParamsIn[j]){
+ i+=2;
+ continue;
+ }
+ eParamsIn[j]=iParamsIn[j];
+ var1.sendProgressBarUpdate(this,i++,eParamsIn[j]&0xFFFF);
+ var1.sendProgressBarUpdate(this,i++,eParamsIn[j]>>>16);
+ }
}
}
@@ -141,6 +169,14 @@ public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine {
ePowerPass = (par2 & 1) == 1;
eSafeVoid = (par2 & 2) == 2;
allowedToWork = (par2 & 4) == 4;
+ } else if (par1 == 122) {
+ eParamsAreFloats=(short) par2;
+ }else if(par1>=130 && par1<170){
+ int pointer=(par1-130)>>1;
+ eParamsOut[pointer]=(par1&1)==0?eParamsOut[pointer]&0xFFFF0000|par2:eParamsOut[pointer]&0xFFFF|(par2<<16);
+ }else if(par1>=170 && par1<210){
+ int pointer=(par1-170)>>1;
+ eParamsIn[pointer]=(par1&1)==0?eParamsIn[pointer]&0xFFFF0000|par2:eParamsIn[pointer]&0xFFFF|(par2<<16);
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_GUIContainer_MultiMachineEM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_GUIContainer_MultiMachineEM.java
index 71ab4c0af8..47a3d60a0a 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_GUIContainer_MultiMachineEM.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_GUIContainer_MultiMachineEM.java
@@ -24,9 +24,11 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
private String mName;
private static byte counter = 0;
private final boolean ePowerPassButton, eSafeVoidButton, allowedToWorkButton;
+ private final GT_Container_MultiMachineEM mContainer;
public GT_GUIContainer_MultiMachineEM(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile, boolean enablePowerPass, boolean enableSafeVoid, boolean enablePowerButton) {
super(new GT_Container_MultiMachineEM(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "multimachines/" + (aTextureFile == null ? "MultiblockDisplay" : aTextureFile));
+ mContainer=(GT_Container_MultiMachineEM)super.mContainer;
mName = aName;
ePowerPassButton=enablePowerPass;
eSafeVoidButton=enableSafeVoid;
@@ -37,6 +39,7 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
public GT_GUIContainer_MultiMachineEM(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) {
super(new GT_Container_MultiMachineEM(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "multimachines/" + (aTextureFile == null ? "MultiblockDisplay" : aTextureFile));
+ mContainer=(GT_Container_MultiMachineEM)super.mContainer;
mName = aName;
ePowerPassButton=eSafeVoidButton=allowedToWorkButton=true;
ySize= 192;
@@ -58,36 +61,36 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
fontRendererObj.drawString(mName, 7, 8, 16448255);
if (mContainer != null) {
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 1) != 0) {
+ if ((mContainer.mDisplayErrorCode & 1) != 0) {
fontRendererObj.drawString("Pipe is loose.", 7, 16, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 2) != 0) {
+ if ((mContainer.mDisplayErrorCode & 2) != 0) {
fontRendererObj.drawString("Screws are loose.", 7, 24, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 4) != 0) {
+ if ((mContainer.mDisplayErrorCode & 4) != 0) {
fontRendererObj.drawString("Something is stuck.", 7, 32, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 8) != 0) {
+ if ((mContainer.mDisplayErrorCode & 8) != 0) {
fontRendererObj.drawString("Plating is dented.", 7, 40, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 16) != 0) {
+ if ((mContainer.mDisplayErrorCode & 16) != 0) {
fontRendererObj.drawString("Circuitry burned out.", 7, 48, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 32) != 0) {
+ if ((mContainer.mDisplayErrorCode & 32) != 0) {
fontRendererObj.drawString("That doesn't belong there.", 7, 56, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 64) != 0) {
+ if ((mContainer.mDisplayErrorCode & 64) != 0) {
fontRendererObj.drawString("Incomplete Structure.", 7, 64, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 128) != 0) {
+ if ((mContainer.mDisplayErrorCode & 128) != 0) {
fontRendererObj.drawString("Too Uncertain.", 7, 72, 16448255);
}
- if ((((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode & 256) != 0) {
+ if ((mContainer.mDisplayErrorCode & 256) != 0) {
fontRendererObj.drawString("Invalid Parameters.", 7, 80, 16448255);
}
- if (((GT_Container_MultiMachineEM) mContainer).mDisplayErrorCode == 0) {
- if (((GT_Container_MultiMachineEM) mContainer).mActive == 0) {
+ if (mContainer.mDisplayErrorCode == 0) {
+ if (mContainer.mActive == 0) {
fontRendererObj.drawString("Soft Hammer or press Button", 7, 16, 16448255);
fontRendererObj.drawString("to (re-)start the Machine", 7, 24, 16448255);
fontRendererObj.drawString("if it doesn't start.", 7, 32, 16448255);
@@ -104,41 +107,41 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
int x = (width - xSize) / 2;
int y = (height - ySize) / 2;
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
- if (mContainer != null && ((GT_Container_MultiMachineEM) mContainer).eParamsInStatus != null) {
+ if (mContainer != null && mContainer.eParamsInStatus != null) {
counter = (byte) ((1 + counter) % 6);
GL11.glColor4f(1f, 1f, 1f, 1f);
x+= 173;
if(!ePowerPassButton) {
drawTexturedModalRect(x, y + 115, 231, 23, 18, 18);
- } else if (((GT_Container_MultiMachineEM) mContainer).ePowerPass) {
+ } else if (mContainer.ePowerPass) {
drawTexturedModalRect(x, y + 115, 207, 23, 18, 18);
}
if(!eSafeVoidButton) {
drawTexturedModalRect(x, y + 132, 231, 41, 18, 18);
- } else if (((GT_Container_MultiMachineEM) mContainer).eSafeVoid) {
+ } else if (mContainer.eSafeVoid) {
drawTexturedModalRect(x, y + 132, 207, 41, 18, 18);
}
if(!allowedToWorkButton) {
drawTexturedModalRect(x, y + 147, 231, 57, 18, 18);
- } else if (((GT_Container_MultiMachineEM) mContainer).allowedToWork) {
+ } else if (mContainer.allowedToWork) {
drawTexturedModalRect(x, y + 147, 207, 57, 18, 18);
}
x -= 162;
y += 96;
for (int i = 0; i < 20; ) {
byte hatch = (byte) (i >>> 1);
- LEDdrawP(x, y, i, 0, ((GT_Container_MultiMachineEM) mContainer).eParamsInStatus[hatch]);
- LEDdrawP(x, y, i++, 1, ((GT_Container_MultiMachineEM) mContainer).eParamsOutStatus[hatch]);
- LEDdrawP(x, y, i, 0, ((GT_Container_MultiMachineEM) mContainer).eParamsInStatus[hatch + 10]);
- LEDdrawP(x, y, i++, 1, ((GT_Container_MultiMachineEM) mContainer).eParamsOutStatus[hatch + 10]);
+ LEDdrawP(x, y, i, 0, mContainer.eParamsInStatus[hatch]);
+ LEDdrawP(x, y, i++, 1, mContainer.eParamsOutStatus[hatch]);
+ LEDdrawP(x, y, i, 0, mContainer.eParamsInStatus[hatch + 10]);
+ LEDdrawP(x, y, i++, 1, mContainer.eParamsOutStatus[hatch + 10]);
}
short rU = 207, Vs = 77;
x += 162;
- byte state = ((GT_Container_MultiMachineEM) mContainer).eCertainStatus;
- switch (((GT_Container_MultiMachineEM) mContainer).eCertainMode) {
+ byte state = mContainer.eCertainStatus;
+ switch (mContainer.eCertainMode) {
case 1://ooo oxo ooo
drawTexturedModalRect(x + 6, y + 6,
rU + (state == 0 ? 30 : 6),
@@ -231,6 +234,29 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
case STATUS_HIGH:// too high
drawTexturedModalRect(x + su * i, y + sv * j, u + su * i, v + sv * (6 + j), su, sv);
break;
+ case STATUS_NEUTRAL:
+ if(counter<3){
+ GL11.glColor4f(.85f, .9f, .95f, 1.0F);
+ drawTexturedModalRect(x + su * i, y + sv * j, 212, 96, su+2, sv+2);
+ GL11.glColor4f(1f, 1f, 1f, 1f);
+ }else {
+ GL11.glColor4f(.8f, .9f, 1f, 1.0F);
+ drawTexturedModalRect(x + su * i, y + sv * j, 212, 96, su+2, sv+2);
+ GL11.glColor4f(1f, 1f, 1f, 1f);
+ }
+ break;
+ case STATUS_UNDEFINED:
+ if(counter<3) {
+ GL11.glColor4f(.5f, .1f, .15f, 1.0F);
+ drawTexturedModalRect(x + su * i, y + sv * j, 212, 96, su + 2, sv + 2);
+ GL11.glColor4f(1f, 1f, 1f, 1f);
+ }else {
+ GL11.glColor4f(0f, .1f, .2f, 1.0F);
+ drawTexturedModalRect(x + su * i, y + sv * j, 212, 96, su + 2, sv + 2);
+ GL11.glColor4f(1f, 1f, 1f, 1f);
+ }
+ break;
+ case STATUS_UNUSED:
default:
if (GregTech_API.sColoredGUI && this.mContainer.mTileEntity != null) {
int tColor = this.mContainer.mTileEntity.getColorization() & 15;
@@ -254,6 +280,12 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
if(mContainer.mTileEntity!=null){
IMetaTileEntity mte=mContainer.mTileEntity.getMetaTileEntity();
if(mte instanceof GT_MetaTileEntity_MultiblockBase_EM){
+ Parameters parametrization=((GT_MetaTileEntity_MultiblockBase_EM)mte).parametrization;
+ parametrization.bParamsAreFloats=mContainer.eParamsAreFloats;
+ parametrization.eParamsInStatus=mContainer.eParamsInStatus;
+ parametrization.eParamsOutStatus=mContainer.eParamsOutStatus;
+ parametrization.iParamsIn=mContainer.eParamsIn;
+ parametrization.iParamsOut=mContainer.eParamsOut;
int su = 8, sv = 6, u=11,v=96;
if(x<u || y<v) return;
v+=sv;
@@ -261,13 +293,13 @@ public class GT_GUIContainer_MultiMachineEM extends GT_GUIContainerMetaTile_Mach
for(int param=0;param<2;param++){
if(x<(u+=su)){
if(y<v){
- if(((GT_Container_MultiMachineEM) mContainer).eParamsInStatus[hatch + (10*param)]==STATUS_UNUSED){
+ if(mContainer.eParamsInStatus[hatch + (10*param)]==STATUS_UNUSED){
return;
}
hoveringText(((GT_MetaTileEntity_MultiblockBase_EM) mte).getFullLedDescriptionIn(hatch,param), renderPosX, renderPosY, fontRendererObj);
return;
}else if(y>=v && y<v+sv){
- if(((GT_Container_MultiMachineEM) mContainer).eParamsOutStatus[hatch + (10*param)]==STATUS_UNUSED){
+ if(mContainer.eParamsOutStatus[hatch + (10*param)]==STATUS_UNUSED){
return;
}
hoveringText(((GT_MetaTileEntity_MultiblockBase_EM) mte).getFullLedDescriptionOut(hatch,param), renderPosX, renderPosY, fontRendererObj);
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 f99eb510d3..f3147d890c 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
@@ -14,6 +14,7 @@ import com.github.technus.tectech.thing.metaTileEntity.multi.base.network.Rotati
import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -46,6 +47,7 @@ import static com.github.technus.tectech.Util.StructureCheckerExtreme;
import static com.github.technus.tectech.Util.getTier;
import static com.github.technus.tectech.loader.TecTechConfig.DEBUG_MODE;
import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.texturePage;
+import static gregtech.api.enums.GT_Values.B;
/**
* Created by danie_000 on 27.10.2016.
@@ -452,6 +454,9 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
EnumChatFormatting.AQUA+paramID +
EnumChatFormatting.YELLOW+ ":"+
EnumChatFormatting.AQUA+"I");
+ list.add(EnumChatFormatting.WHITE+"Value: "+
+ EnumChatFormatting.AQUA+parametrization.getIn(hatchNo,paramID)+
+ EnumChatFormatting.GOLD+(((parametrization.bParamsAreFloats& B[hatchNo])!=0)?" float":" int"));
try{
list.add(parametrization.groups[hatchNo].parameterIn[paramID].getBrief());
}catch (NullPointerException e){
@@ -474,6 +479,9 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
EnumChatFormatting.AQUA+paramID +
EnumChatFormatting.YELLOW+ ":"+
EnumChatFormatting.AQUA+"O");
+ list.add(EnumChatFormatting.WHITE+"Value: "+
+ EnumChatFormatting.AQUA+parametrization.getOut(hatchNo,paramID)+
+ EnumChatFormatting.GOLD+(((parametrization.bParamsAreFloats& B[hatchNo])!=0)?" float":" int"));
try{
list.add(parametrization.groups[hatchNo].parameterOut[paramID].getBrief());
}catch (NullPointerException e){
@@ -737,7 +745,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
*
* @param machineBusy is machine doing SHIT
*/
- public void parametersOutAndStatusesWrite_EM(boolean machineBusy) {
+ protected void parametersOutAndStatusesWrite_EM(boolean machineBusy) {//todo unimplement
if(!machineBusy){
for (Parameters.Group.ParameterIn parameterIn : parametrization.parameterInArrayList) {
if (parameterIn != null) {
@@ -893,11 +901,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
}
aNBT.setTag("eParamsOut", paramO);
- NBTTagCompound paramB = new NBTTagCompound();
- for (int i = 0; i < parametrization.bParamsAreFloats.length; i++) {
- paramB.setBoolean(Integer.toString(i), parametrization.bParamsAreFloats[i]);
- }
- aNBT.setTag("eParamsB", paramB);
+ aNBT.setShort("eParamsS",parametrization.bParamsAreFloats);
NBTTagCompound paramIs = new NBTTagCompound();
for (int i = 0; i < parametrization.eParamsInStatus.length; i++) {
@@ -984,9 +988,14 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
parametrization.iParamsOut[i] = paramO.getInteger(Integer.toString(i));
}
- NBTTagCompound paramB = aNBT.getCompoundTag("eParamsB");
- for (int i = 0; i < parametrization.bParamsAreFloats.length; i++) {
- parametrization.bParamsAreFloats[i] = paramB.getBoolean(Integer.toString(i));
+ if(aNBT.hasKey("eParamsB")) {
+ NBTTagCompound paramB = aNBT.getCompoundTag("eParamsB");
+ parametrization.bParamsAreFloats=0;
+ for (int i = 0; i < 10; i++) {
+ parametrization.bParamsAreFloats|=paramB.getBoolean(Integer.toString(i))? B[i]:0;
+ }
+ }else{
+ parametrization.bParamsAreFloats=aNBT.getShort("eParamsS");
}
NBTTagCompound paramIs = aNBT.getCompoundTag("eParamsInS");
@@ -1185,7 +1194,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
continue;
}
int paramID = hatch.param;
- if(parametrization.bParamsAreFloats[hatch.param] == hatch.isUsingFloats()){
+ if((parametrization.bParamsAreFloats&B[hatch.param])!=0){
hatch.input0i = parametrization.iParamsOut[paramID];
hatch.input1i = parametrization.iParamsOut[paramID + 10];
}else if(hatch.isUsingFloats()){
@@ -1203,7 +1212,11 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
continue;
}
int paramID = hatch.param;
- parametrization.bParamsAreFloats[hatch.param] = hatch.isUsingFloats();
+ if(hatch.isUsingFloats()){
+ parametrization.bParamsAreFloats |= B[hatch.param];
+ }else {
+ parametrization.bParamsAreFloats &=~B[hatch.param];
+ }
parametrization.iParamsIn[paramID] = hatch.value0i;
parametrization.iParamsIn[paramID + 10] = hatch.value1i;
hatch.input0i = parametrization.iParamsOut[paramID];
@@ -1419,7 +1432,11 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
hatch.getBaseMetaTileEntity().setActive(true);
if(hatch.param>=0) {
- parametrization.bParamsAreFloats[hatch.param] = hatch.isUsingFloats();
+ if(hatch.isUsingFloats()){
+ parametrization.bParamsAreFloats |= B[hatch.param];
+ }else {
+ parametrization.bParamsAreFloats &=~B[hatch.param];
+ }
}
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/LedStatus.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/LedStatus.java
index f346fe7e64..52d4f30c12 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/LedStatus.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/LedStatus.java
@@ -1,21 +1,30 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.base;
public enum LedStatus {
- STATUS_UNUSED,
- STATUS_TOO_LOW,
- STATUS_LOW,
- STATUS_WRONG,
- STATUS_OK,
- STATUS_TOO_HIGH,
- STATUS_HIGH,
- STATUS_UNDEFINED;
+ STATUS_UNUSED("Unused",true),
+ STATUS_TOO_LOW("Too Low",false),
+ STATUS_LOW("Low",true),
+ STATUS_WRONG("Wrong",false),
+ STATUS_OK("Valid",true),
+ STATUS_TOO_HIGH("Too High",false),
+ STATUS_HIGH("High",true),
+ STATUS_UNDEFINED("Unknown",false),
+ STATUS_NEUTRAL("Neutral",true);
+
+ public final String name;
+ public final boolean isOk;
+
+ LedStatus(String name,boolean ok){
+ this.name=name;
+ this.isOk=ok;
+ }
public boolean isOk(){
- return (ordinal()&1)==0;
+ return isOk;
}
public boolean isBad(){
- return (ordinal()&1)==1;
+ return !isOk;
}
public byte getOrdinalByte(){
@@ -38,9 +47,7 @@ public enum LedStatus {
return statuses;
}
- public static LedStatus fromLimitsInclusiveOuterBoundary(double value, double min,double low, double high, double max, double... excludedNumbers
- ){
- if(Double.isNaN(value)) return STATUS_WRONG;
+ public static LedStatus fromLimitsInclusiveOuterBoundary(double value, double min,double low, double high, double max, double... excludedNumbers){
if(value<min) return STATUS_TOO_LOW;
if(value>max) return STATUS_TOO_HIGH;
@@ -49,11 +56,11 @@ public enum LedStatus {
for (double val : excludedNumbers) {
if(val==value) return STATUS_WRONG;
}
+ if(Double.isNaN(value)) return STATUS_WRONG;
return STATUS_UNDEFINED;
}
- public static LedStatus fromLimitsExclusiveOuterBoundary(double value, double min,double low, double high,double max, double... excludedNumbers
- ){
+ public static LedStatus fromLimitsExclusiveOuterBoundary(double value, double min,double low, double high,double max, double... excludedNumbers){
if(Double.isNaN(value)) return STATUS_WRONG;
if(value<=min) return STATUS_TOO_LOW;
if(value>=max) return STATUS_TOO_HIGH;
@@ -63,11 +70,11 @@ public enum LedStatus {
for (double val : excludedNumbers) {
if(val==value) return STATUS_WRONG;
}
+ if(Double.isNaN(value)) return STATUS_WRONG;
return STATUS_OK;
}
- public static LedStatus fromLimitsInclusiveOuterBoundary(double value, double min, double max, double... excludedNumbers
- ){
+ public static LedStatus fromLimitsInclusiveBoundary(double value, double min, double max, double... excludedNumbers){
if(Double.isNaN(value)) return STATUS_WRONG;
if(value<=min) return STATUS_TOO_LOW;
else if(value==min)
@@ -76,11 +83,11 @@ public enum LedStatus {
for (double val : excludedNumbers) {
if(val==value) return STATUS_WRONG;
}
+ if(Double.isNaN(value)) return STATUS_WRONG;
return STATUS_OK;
}
- public static LedStatus fromLimitsExclusiveOuterBoundary(double value, double min, double max, double... excludedNumbers
- ){
+ public static LedStatus fromLimitsExclusiveBoundary(double value, double min, double max, double... excludedNumbers){
if(Double.isNaN(value)) return STATUS_WRONG;
if(value<=min) return STATUS_TOO_LOW;
else if(value==min)
@@ -89,6 +96,7 @@ public enum LedStatus {
for (double val : excludedNumbers) {
if(val==value) return STATUS_WRONG;
}
+ if(Double.isNaN(value)) return STATUS_WRONG;
return STATUS_OK;
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java
index e67072309f..3ab2947085 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java
@@ -1,8 +1,13 @@
package com.github.technus.tectech.thing.metaTileEntity.multi.base;
+import gregtech.api.enums.GT_Values;
+
import java.util.ArrayList;
+import java.util.BitSet;
import java.util.function.Function;
+import static gregtech.api.enums.GT_Values.B;
+
/**
* Instantiate parameters as field in parametersInstantiation_EM();
*/
@@ -13,16 +18,24 @@ public class Parameters {
final Group[] groups = new Group[10];
- final int[] iParamsIn = new int[20];//number I from parametrizers
- final int[] iParamsOut = new int[20];//number O to parametrizers
+ int[] iParamsIn = new int[20];//number I from parametrizers
+ int[] iParamsOut = new int[20];//number O to parametrizers
final ArrayList<Group.ParameterIn> parameterInArrayList =new ArrayList<>();
final ArrayList<Group.ParameterOut> parameterOutArrayList =new ArrayList<>();
- final boolean[] bParamsAreFloats =new boolean[10];
+ short bParamsAreFloats=0;
//package private for use in gui
- final LedStatus[] eParamsInStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNUSED);//LED status for I
- final LedStatus[] eParamsOutStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNUSED);//LED status for O
+ LedStatus[] eParamsInStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNUSED);//LED status for I
+ LedStatus[] eParamsOutStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNUSED);//LED status for O
+
+ public double getIn(int hatchNo,int parameterId){
+ return (bParamsAreFloats& B[hatchNo])!=0?Float.intBitsToFloat(iParamsIn[hatchNo+10*parameterId]):iParamsIn[hatchNo+10*parameterId];
+ }
+
+ public double getOut(int hatchNo,int parameterId){
+ return (bParamsAreFloats& B[hatchNo])!=0?Float.intBitsToFloat(iParamsOut[hatchNo+10*parameterId]):iParamsOut[hatchNo+10*parameterId];
+ }
private final GT_MetaTileEntity_MultiblockBase_EM parent;
@@ -37,7 +50,7 @@ public class Parameters {
p.setToDefaults(defaultIn,defaultOut,defaultAreFloats);
}else{
if(defaultAreFloats){
- bParamsAreFloats[hatch]=false;
+ bParamsAreFloats&=~B[hatch];
if(defaultIn){
iParamsIn[hatch] = 0;
iParamsIn[hatch + 10] = 0;
@@ -47,7 +60,7 @@ public class Parameters {
iParamsOut[hatch + 10] = 0;
}
}else{
- if(bParamsAreFloats[hatch]){
+ if((bParamsAreFloats& B[hatch])!=0){
if(defaultIn){
iParamsIn[hatch] = ZERO_FLOAT;
iParamsIn[hatch + 10] = ZERO_FLOAT;
@@ -110,16 +123,20 @@ public class Parameters {
return new ParameterOut(paramID, defaultValue, name, status);
}
- public void setToDefaults(boolean defaultIn, boolean defaultOut,boolean defaultAreFloats) {
- if(defaultAreFloats){
- bParamsAreFloats[hatchNo] = bParamsDefaultsAreStoredAsFloats;
+ public void setToDefaults(boolean defaultIn, boolean defaultOut,boolean defaultConfigureAreFloats) {
+ if(defaultConfigureAreFloats){
+ if(bParamsDefaultsAreStoredAsFloats){
+ bParamsAreFloats|= B[hatchNo];
+ }else {
+ bParamsAreFloats&=~B[hatchNo];
+ }
}
if(defaultIn){
for(int in=0;in<2;in++){
if(this.parameterIn[in]!=null){
this.parameterIn[in].setDefault();
}else {
- if (bParamsAreFloats[hatchNo]) {
+ if ((bParamsAreFloats& B[hatchNo])!=0) {
iParamsIn[hatchNo] = ZERO_FLOAT;
iParamsIn[hatchNo + 10] = ZERO_FLOAT;
} else {
@@ -134,7 +151,7 @@ public class Parameters {
if(this.parameterOut[out]!=null){
this.parameterOut[out].setDefault();
}else {
- if (bParamsAreFloats[hatchNo]) {
+ if ((bParamsAreFloats& B[hatchNo])!=0) {
iParamsIn[hatchNo] = ZERO_FLOAT;
iParamsIn[hatchNo + 10] = ZERO_FLOAT;
} else {
@@ -176,11 +193,11 @@ public class Parameters {
}
public double get(){
- return bParamsAreFloats[hatchNo]?Float.intBitsToFloat(iParamsOut[id]):iParamsOut[id];
+ return (bParamsAreFloats& B[hatchNo])!=0?Float.intBitsToFloat(iParamsOut[id]):iParamsOut[id];
}
public void set(double value){
- if(bParamsAreFloats[hatchNo]) {
+ if((bParamsAreFloats& B[hatchNo])!=0) {
iParamsOut[id]=Float.floatToIntBits((float) value);
}else{
iParamsOut[id]=(int)value;
@@ -229,7 +246,7 @@ public class Parameters {
}
private void setDefault() {
- if(bParamsAreFloats[hatchNo]) {
+ if((bParamsAreFloats& B[hatchNo])!=0) {
iParamsIn[id]=Float.floatToIntBits((float) defaultValue);
}else{
iParamsIn[id]=(int)defaultValue;
@@ -237,7 +254,7 @@ public class Parameters {
}
public double get(){
- return bParamsAreFloats[hatchNo]?Float.intBitsToFloat(iParamsIn[id]):iParamsIn[id];
+ return (bParamsAreFloats& B[hatchNo])!=0?Float.intBitsToFloat(iParamsIn[id]):iParamsIn[id];
}
public void updateStatus(){