aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2019-02-18 19:24:14 +0100
committerTec <daniel112092@gmail.com>2019-02-18 19:24:14 +0100
commit664d264be74c12b2a7471548b16d49870d98cada (patch)
treeb4f169ea8613c748ad19ff8440904845c0661225
parentd1b16ceea346e546ae7bec574230bdf03c2a4172 (diff)
downloadGT5-Unofficial-664d264be74c12b2a7471548b16d49870d98cada.tar.gz
GT5-Unofficial-664d264be74c12b2a7471548b16d49870d98cada.tar.bz2
GT5-Unofficial-664d264be74c12b2a7471548b16d49870d98cada.zip
Storing work
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java64
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java11
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_Container_MultiMachineEM.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_GUIContainer_MultiMachineEM.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java21
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/LedStatus.java67
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java129
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java2
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);
}