diff options
author | Tec <daniel112092@gmail.com> | 2019-02-18 19:24:14 +0100 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2019-02-18 19:24:14 +0100 |
commit | 664d264be74c12b2a7471548b16d49870d98cada (patch) | |
tree | b4f169ea8613c748ad19ff8440904845c0661225 | |
parent | d1b16ceea346e546ae7bec574230bdf03c2a4172 (diff) | |
download | GT5-Unofficial-664d264be74c12b2a7471548b16d49870d98cada.tar.gz GT5-Unofficial-664d264be74c12b2a7471548b16d49870d98cada.tar.bz2 GT5-Unofficial-664d264be74c12b2a7471548b16d49870d98cada.zip |
Storing work
8 files changed, 190 insertions, 110 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 0ec2196a82..e805b02fa9 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 @@ -34,6 +34,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import java.util.HashMap; +import java.util.function.Function; import static com.github.technus.tectech.Util.StructureBuilderExtreme; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; @@ -50,11 +51,12 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB private static Textures.BlockIcons.CustomIcon ScreenON_Slave; private static Textures.BlockIcons.CustomIcon ScreenOFF_Slave; - private static double MASS_TO_EU_PARTIAL,MASS_TO_EU_INSTANT; + protected static final byte FUSE_MODE=0, COLLIDE_MODE =1; + private static double MASS_TO_EU_INSTANT; private static int STARTUP_COST,KEEPUP_COST; public static void setValues(int heliumPlasmaValue){ - MASS_TO_EU_PARTIAL = heliumPlasmaValue / 1.75893000478707E07;//mass diff + double MASS_TO_EU_PARTIAL = heliumPlasmaValue / 1.75893000478707E07;//mass diff MASS_TO_EU_INSTANT = MASS_TO_EU_PARTIAL * 20; STARTUP_COST=-heliumPlasmaValue*10000; KEEPUP_COST=-heliumPlasmaValue; @@ -268,9 +270,36 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB protected byte eTier = 0; protected cElementalInstanceStack stack; private long plasmaEnergy; - public Parameters.ParameterGroup.In mode; - protected static final byte FUSE_MODE=0, COLLIDE_MODE =1; + //region parameters + protected Parameters.Group.ParameterIn mode; + private static final Function<GT_MetaTileEntity_EM_collider, LedStatus> MODE_STATUS = base_EM->{ + if(base_EM.isMaster()){ + if (base_EM.mode.get() == FUSE_MODE || base_EM.mode.get() == COLLIDE_MODE) { + return STATUS_OK; + } else if (base_EM.mode.get() > 1) { + return STATUS_TOO_HIGH; + } else if (base_EM.mode.get() < 0) { + return STATUS_TOO_LOW; + }else{ + return STATUS_WRONG; + } + } + return STATUS_UNUSED; + }; + private static final Function<GT_MetaTileEntity_EM_collider,String> MODE_NAME = base_EM->{ + if(base_EM.isMaster()){ + if(base_EM.mode.get()==FUSE_MODE){ + return "Mode: Fuse"; + }else if(base_EM.mode.get()==COLLIDE_MODE){ + return "Mode: Collide"; + } + return "Mode: Undefined"; + } + return "Currently Slaves..."; + }; + //endregion + protected boolean started=false; //region Structure @@ -332,31 +361,8 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB @Override protected void parametersInstantiation_EM() { - Parameters.ParameterGroup group=parametrization.makeGroup(0,false); - mode=group.makeInParameter(0,FUSE_MODE,()->{ - if(isMaster()){ - if(mode.get()==FUSE_MODE){ - return "Mode: Fuse"; - }else if(mode.get()==COLLIDE_MODE){ - return "Mode: Collide"; - } - return "Mode: Undefined"; - } - return "Currently Slaves..."; - },()->{ - if(isMaster()){ - if (mode.get() == FUSE_MODE || mode.get() == COLLIDE_MODE) { - return STATUS_OK; - } else if (mode.get() > 1) { - return STATUS_TOO_HIGH; - } else if (mode.get() < 0) { - return STATUS_TOO_LOW; - }else{ - return STATUS_WRONG; - } - } - return STATUS_UNUSED; - }); + Parameters.Group group=parametrization.makeGroup(0,false); + mode=group.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 77db52f4b1..305acb23e3 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.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; @@ -43,6 +44,11 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB private static Textures.BlockIcons.CustomIcon ScreenOFF; private static Textures.BlockIcons.CustomIcon ScreenON; + //region parameters + protected Parameters.Group.ParameterIn overclock,overvolt; + + //endregion + private final ArrayList<GT_MetaTileEntity_Hatch_Rack> eRacks = new ArrayList<>(); private int maxCurrentTemp = 0; @@ -77,6 +83,11 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB } @Override + protected void parametersInstantiation_EM() { + + } + + @Override @SideOnly(Side.CLIENT) protected ResourceLocation getActivitySound(){ return GT_MetaTileEntity_EM_switch.activitySound; 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 b8c856f9f8..78b020979e 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 @@ -11,8 +11,8 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Container_MultiMachineEM extends GT_ContainerMetaTile_Machine { - public LedStatus[] eParamsInStatus = new LedStatus[20];//unused 0,G ok 1, B too low 2, R too high 3, Y blink dangerous 4,5 - public LedStatus[] eParamsOutStatus = new LedStatus[20]; + public LedStatus[] eParamsInStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNDEFINED); + public LedStatus[] eParamsOutStatus = LedStatus.makeArray(20,LedStatus.STATUS_UNDEFINED); public byte eCertainMode = 5, eCertainStatus = 127; public boolean ePowerPass = false, eSafeVoid = false, allowedToWork = false; public final boolean ePowerPassButton, eSafeVoidButton, allowedToWorkButton; 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 90ad4e7388..71ab4c0af8 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 @@ -231,7 +231,7 @@ 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_UNUSED: + default: if (GregTech_API.sColoredGUI && this.mContainer.mTileEntity != null) { int tColor = this.mContainer.mTileEntity.getColorization() & 15; if (tColor < ItemDye.field_150922_c.length) { 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 82da3a5ba2..f99eb510d3 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 @@ -97,7 +97,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt //region parameters public final Parameters parametrization; - //endregion //region Control variables @@ -152,14 +151,14 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt protected GT_MetaTileEntity_MultiblockBase_EM(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); - parametrization=new Parameters(); + parametrization=new Parameters(this); parametersInstantiation_EM(); parametrization.setToDefaults(true,true,true); } protected GT_MetaTileEntity_MultiblockBase_EM(String aName) { super(aName); - parametrization=new Parameters(); + parametrization=new Parameters(this); parametersInstantiation_EM(); parametrization.setToDefaults(true,true,true); } @@ -454,7 +453,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt EnumChatFormatting.YELLOW+ ":"+ EnumChatFormatting.AQUA+"I"); try{ - list.add(parametrization.parameterGroups[hatchNo].in[paramID].name.get()); + list.add(parametrization.groups[hatchNo].parameterIn[paramID].getBrief()); }catch (NullPointerException e){ list.add("Unused"); } @@ -476,7 +475,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt EnumChatFormatting.YELLOW+ ":"+ EnumChatFormatting.AQUA+"O"); try{ - list.add(parametrization.parameterGroups[hatchNo].out[paramID].name.get()); + list.add(parametrization.groups[hatchNo].parameterOut[paramID].getBrief()); }catch (NullPointerException e){ list.add("Unused"); } @@ -740,15 +739,15 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt */ public void parametersOutAndStatusesWrite_EM(boolean machineBusy) { if(!machineBusy){ - for (Parameters.ParameterGroup.In in : parametrization.inArrayList) { - if (in != null) { - in.updateStatus(); + for (Parameters.Group.ParameterIn parameterIn : parametrization.parameterInArrayList) { + if (parameterIn != null) { + parameterIn.updateStatus(); } } } - for (Parameters.ParameterGroup.Out out : parametrization.outArrayList) { - if (out != null) { - out.updateStatus(); + for (Parameters.Group.ParameterOut parameterOut : parametrization.parameterOutArrayList) { + if (parameterOut != null) { + parameterOut.updateStatus(); } } } 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 fba5910532..f346fe7e64 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 @@ -8,8 +8,7 @@ public enum LedStatus { STATUS_OK, STATUS_TOO_HIGH, STATUS_HIGH, - STATUS_UNDEFINED, - STATUS_NEUTRAL; + STATUS_UNDEFINED; public boolean isOk(){ return (ordinal()&1)==0; @@ -26,8 +25,70 @@ public enum LedStatus { public static LedStatus getStatus(byte value){ try{ return LedStatus.values()[value]; - }catch (IndexOutOfBoundsException e){ + }catch (Exception e){ return STATUS_UNDEFINED; } } + + public static LedStatus[] makeArray(int count,LedStatus defaultValue){ + LedStatus[] statuses=new LedStatus[count]; + for (int i = 0; i < count; i++) { + statuses[i]=defaultValue; + } + 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; + if(value<min) return STATUS_TOO_LOW; + if(value>max) return STATUS_TOO_HIGH; + + if(value<low) return STATUS_LOW; + if(value>high) return STATUS_HIGH; + for (double val : excludedNumbers) { + if(val==value) return STATUS_WRONG; + } + return STATUS_UNDEFINED; + } + + 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; + + if(value<low) return STATUS_LOW; + if(value>high) return STATUS_HIGH; + for (double val : excludedNumbers) { + if(val==value) return STATUS_WRONG; + } + return STATUS_OK; + } + + public static LedStatus fromLimitsInclusiveOuterBoundary(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) + if(value>=max) return STATUS_TOO_HIGH; + + for (double val : excludedNumbers) { + if(val==value) return STATUS_WRONG; + } + return STATUS_OK; + } + + public static LedStatus fromLimitsExclusiveOuterBoundary(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) + if(value>=max) return STATUS_TOO_HIGH; + + for (double val : excludedNumbers) { + if(val==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 824588ab25..e67072309f 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,33 +1,38 @@ package com.github.technus.tectech.thing.metaTileEntity.multi.base; import java.util.ArrayList; -import java.util.function.Supplier; +import java.util.function.Function; /** * Instantiate parameters as field in parametersInstantiation_EM(); */ public class Parameters { - private static final Supplier<LedStatus> LED_STATUS_FUNCTION_DEFAULT = ()->LedStatus.STATUS_UNDEFINED; - private static final int ZERO_FLOAT=Float.floatToIntBits(0); + public static final Function<GT_MetaTileEntity_MultiblockBase_EM,LedStatus> LED_STATUS_FUNCTION_DEFAULT = o->LedStatus.STATUS_UNDEFINED; + public static final Function<GT_MetaTileEntity_MultiblockBase_EM,String> NAME_FUNCTION_DEFAULT=o->"Undefined"; + public static final int ZERO_FLOAT=Float.floatToIntBits(0); - final ParameterGroup[] parameterGroups =new ParameterGroup[10]; + 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 - final ArrayList<ParameterGroup.In> inArrayList=new ArrayList<>(); - final ArrayList<ParameterGroup.Out> outArrayList=new ArrayList<>(); + final ArrayList<Group.ParameterIn> parameterInArrayList =new ArrayList<>(); + final ArrayList<Group.ParameterOut> parameterOutArrayList =new ArrayList<>(); final boolean[] bParamsAreFloats =new boolean[10]; //package private for use in gui - final LedStatus[] eParamsInStatus = new LedStatus[20];//LED status for I - final LedStatus[] eParamsOutStatus = new LedStatus[20];//LED status for O + 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 - Parameters(){} + private final GT_MetaTileEntity_MultiblockBase_EM parent; + + Parameters(GT_MetaTileEntity_MultiblockBase_EM parent){ + this.parent=parent; + } public void setToDefaults(boolean defaultIn, boolean defaultOut,boolean defaultAreFloats){ for (int hatch=0;hatch<10;hatch++) { - ParameterGroup p= parameterGroups[hatch]; + Group p= groups[hatch]; if (p!=null){ p.setToDefaults(defaultIn,defaultOut,defaultAreFloats); }else{ @@ -68,41 +73,41 @@ public class Parameters { public void ClearDefinitions(){ setToDefaults(true,true,false); - inArrayList.clear(); - outArrayList.clear(); - for(int i = 0; i< parameterGroups.length; i++){ - parameterGroups[i]=null; + parameterInArrayList.clear(); + parameterOutArrayList.clear(); + for(int i = 0; i< groups.length; i++){ + groups[i]=null; } } - public ParameterGroup makeGroup(int hatchNo, boolean aParamsDefaultsAreFloats){ - return new ParameterGroup( hatchNo, aParamsDefaultsAreFloats); + public Group makeGroup(int hatchNo, boolean aParamsDefaultsAreFloats){ + return new Group( hatchNo, aParamsDefaultsAreFloats); } /** * most likely used locally in parametersInstantiation_EM() */ - public class ParameterGroup { + public class Group { private final boolean bParamsDefaultsAreStoredAsFloats; private final int hatchNo; - final In[] in=new In[2]; - final Out[] out=new Out[2]; + final ParameterIn[] parameterIn =new ParameterIn[2]; + final ParameterOut[] parameterOut =new ParameterOut[2]; - private ParameterGroup(int hatchNo, boolean aParamsDefaultsAreFloats){ + private Group(int hatchNo, boolean aParamsDefaultsAreFloats){ if(hatchNo<0 || hatchNo>=10){ throw new IllegalArgumentException("ParameterGroup id must be in 0 to 9 range"); } this.hatchNo=hatchNo; bParamsDefaultsAreStoredAsFloats =aParamsDefaultsAreFloats; - parameterGroups[hatchNo]=this; + groups[hatchNo]=this; } - public In makeInParameter(int paramID, double defaultValue,Supplier<String> name, Supplier<LedStatus> status){ - return new In(paramID, defaultValue,name, status); + public ParameterIn makeInParameter(int paramID, double defaultValue, Function<? extends GT_MetaTileEntity_MultiblockBase_EM,String> name, Function<? extends GT_MetaTileEntity_MultiblockBase_EM,LedStatus> status){ + return new ParameterIn(paramID, defaultValue,name, status); } - public Out makeOutParameter(int paramID, double defaultValue,Supplier<String> name, Supplier<LedStatus> status){ - return new Out(paramID, defaultValue, name, status); + public ParameterOut makeOutParameter(int paramID, double defaultValue, Function<? extends GT_MetaTileEntity_MultiblockBase_EM,String> name, Function<? extends GT_MetaTileEntity_MultiblockBase_EM,LedStatus> status){ + return new ParameterOut(paramID, defaultValue, name, status); } public void setToDefaults(boolean defaultIn, boolean defaultOut,boolean defaultAreFloats) { @@ -111,8 +116,8 @@ public class Parameters { } if(defaultIn){ for(int in=0;in<2;in++){ - if(this.in[in]!=null){ - this.in[in].setDefault(); + if(this.parameterIn[in]!=null){ + this.parameterIn[in].setDefault(); }else { if (bParamsAreFloats[hatchNo]) { iParamsIn[hatchNo] = ZERO_FLOAT; @@ -126,8 +131,8 @@ public class Parameters { } if(defaultOut){ for(int out=0;out<2;out++){ - if(this.out[out]!=null){ - this.out[out].setDefault(); + if(this.parameterOut[out]!=null){ + this.parameterOut[out].setDefault(); }else { if (bParamsAreFloats[hatchNo]) { iParamsIn[hatchNo] = ZERO_FLOAT; @@ -144,29 +149,26 @@ public class Parameters { /** * Make a field out of this... */ - public class Out { + public class ParameterOut { public final int id; public final double defaultValue; - private final Supplier<LedStatus> status; - public Supplier<String> name; + Function<GT_MetaTileEntity_MultiblockBase_EM,LedStatus> status; + Function<GT_MetaTileEntity_MultiblockBase_EM,String> name; - private Out(int paramID, double defaultValue,Supplier<String> name, Supplier<LedStatus> status){ - this.name=name; + @SuppressWarnings("unchecked") + private ParameterOut(int paramID, double defaultValue, Function name, Function status){ + this.name= name; this.id=hatchNo+10*paramID; if(paramID<0 || paramID>2){ throw new IllegalArgumentException("Parameter id must be in 0 to 1 range"); } this.defaultValue=defaultValue; - if(out[paramID]!=null){ + if(parameterOut[paramID]!=null){ throw new InstantiationError("This parameter already exists!"); } - if(status ==null){ - this.status =LED_STATUS_FUNCTION_DEFAULT; - }else{ - this.status = status; - } - outArrayList.add(this); - out[paramID]=this; + this.status = status; + parameterOutArrayList.add(this); + parameterOut[paramID]=this; } private void setDefault() { @@ -185,48 +187,45 @@ public class Parameters { } } - public LedStatus getStatus(){ - return eParamsOutStatus[id]; - } - public void updateStatus(){ - eParamsOutStatus[id]=status.get(); + eParamsOutStatus[id]=status.apply(parent); } - public LedStatus getStaus(boolean update){ + public LedStatus getStatus(boolean update){ if(update){ updateStatus(); } return eParamsOutStatus[id]; } + + public String getBrief(){ + return name.apply(parent); + } } /** * Make a field out of this... */ - public class In { + public class ParameterIn { public final int id; public final double defaultValue; - private final Supplier<LedStatus> status; - public Supplier<String> name; + Function<GT_MetaTileEntity_MultiblockBase_EM,LedStatus> status; + Function<GT_MetaTileEntity_MultiblockBase_EM,String> name; - private In(int paramID, double defaultValue,Supplier<String> name,Supplier<LedStatus> status){ - this.name=name; + @SuppressWarnings("unchecked") + private ParameterIn(int paramID, double defaultValue, Function name, Function status){ + this.name= name; this.id=hatchNo+10*paramID; if(paramID<0 || paramID>2){ throw new IllegalArgumentException("Parameter id must be in 0 to 1 range"); } this.defaultValue=defaultValue; - if(in[paramID]!=null){ + if(parameterIn[paramID]!=null){ throw new InstantiationError("This parameter already exists!"); } - if(status ==null){ - this.status =LED_STATUS_FUNCTION_DEFAULT; - }else{ - this.status = status; - } - inArrayList.add(this); - in[paramID]=this; + this.status = status; + parameterInArrayList.add(this); + parameterIn[paramID]=this; } private void setDefault() { @@ -242,15 +241,19 @@ public class Parameters { } public void updateStatus(){ - eParamsInStatus[id]=status.get(); + eParamsInStatus[id]=status.apply(parent); } - public LedStatus getStaus(boolean update){ + public LedStatus getStatus(boolean update){ if(update){ updateStatus(); } return eParamsInStatus[id]; } + + public String getBrief(){ + return name.apply(parent); + } } } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java index d22b1d4d2c..9c45b5df67 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java @@ -377,7 +377,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa public Behaviour(){} public final void setOnMachine(GT_MetaTileEntity_EM_machine te){ - te.parametrization.ClearDefinitions(); + te.parametrization.clearGroups(); parametersInstantiation(te.parametrization); } |