diff options
author | Tec <daniel112092@gmail.com> | 2019-02-19 20:28:13 +0100 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2019-02-19 20:28:13 +0100 |
commit | 16ace78716ae898fe0d57abde51448fde68c2d58 (patch) | |
tree | 16e03878a8585c43e37d81e1efb9e2e2fb492301 /src/main | |
parent | 664d264be74c12b2a7471548b16d49870d98cada (diff) | |
download | GT5-Unofficial-16ace78716ae898fe0d57abde51448fde68c2d58.tar.gz GT5-Unofficial-16ace78716ae898fe0d57abde51448fde68c2d58.tar.bz2 GT5-Unofficial-16ace78716ae898fe0d57abde51448fde68c2d58.zip |
Most likely the param api will look like this.
Diffstat (limited to 'src/main')
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(){ |