From 1a582d7e629e8b83c31eedd8fcb59458195e317b Mon Sep 17 00:00:00 2001 From: Technus Date: Sat, 16 Dec 2017 19:35:15 +0100 Subject: Rework paramaterization --- src/main/java/com/github/technus/tectech/Util.java | 19 ++- .../GT_MetaTileEntity_EM_essentiaDequantizer.java | 2 +- .../GT_MetaTileEntity_EM_essentiaQuantizer.java | 2 +- .../tectech/thing/item/ParametrizerMemoryCard.java | 31 ++-- .../hatch/GT_MetaTileEntity_Hatch_Param.java | 97 ++++++------- .../hatch/gui/GT_Container_Param.java | 107 ++++++-------- .../hatch/gui/GT_Container_ParamAdv.java | 161 +++++++++------------ .../hatch/gui/GT_GUIContainer_Param.java | 21 +-- .../hatch/gui/GT_GUIContainer_ParamAdv.java | 32 ++-- .../multi/GT_MetaTileEntity_EM_computer.java | 108 ++++++++------ .../multi/GT_MetaTileEntity_EM_decay.java | 2 +- .../multi/GT_MetaTileEntity_EM_dequantizer.java | 2 +- .../multi/GT_MetaTileEntity_EM_infuser.java | 2 +- .../multi/GT_MetaTileEntity_EM_junction.java | 45 +++--- .../multi/GT_MetaTileEntity_EM_quantizer.java | 2 +- .../multi/GT_MetaTileEntity_EM_research.java | 2 +- .../multi/GT_MetaTileEntity_EM_scanner.java | 2 +- .../multi/GT_MetaTileEntity_EM_switch.java | 55 ++++--- .../multi/GT_MetaTileEntity_EM_transformer.java | 2 +- .../multi/GT_MetaTileEntity_MultiblockBase_EM.java | 139 ++++++++++++++---- .../multi/GT_MetaTileEntity_TM_microwave.java | 72 +++++---- .../multi/gui/GT_GUIContainer_MultiMachineEM.java | 12 +- 22 files changed, 512 insertions(+), 405 deletions(-) (limited to 'src') diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java index c0aec1baf8..dfda035f19 100644 --- a/src/main/java/com/github/technus/tectech/Util.java +++ b/src/main/java/com/github/technus/tectech/Util.java @@ -31,14 +31,29 @@ import static gregtech.api.enums.GT_Values.E; * Created by Tec on 21.03.2017. */ public class Util { - public static String intToString(int number, int groupSize) { + public static String intToString(int number) { StringBuilder result = new StringBuilder(); for (int i = 31; i >= 0; i--) { int mask = 1 << i; result.append((number & mask) != 0 ? "1" : "0"); - if (i % groupSize == 0) + if (i % 8 == 0) + result.append(" "); + } + result.replace(result.length() - 1, result.length(), ""); + + return result.toString(); + } + + public static String intToShortString(int number) { + StringBuilder result = new StringBuilder(); + + for (int i = 31; i >= 0; i--) { + int mask = 1 << i; + result.append((number & mask) != 0 ? "!" : "."); + + if (i % 8 == 0) result.append(" "); } result.replace(result.length() - 1, result.length(), ""); diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java index 00717007c1..666053ad1f 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java @@ -101,7 +101,7 @@ public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_ } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { container=essentiaContainerCompat.getContainer(this); if (eInputHatches.size() < 1 || container==null) { stopMachine(); diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java index b9b674f880..e5bde00836 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java @@ -110,7 +110,7 @@ public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_Mu } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { container=essentiaContainerCompat.getContainer(this); cElementalInstanceStack newStack=essentiaContainerCompat.getFromContainer(container); if(newStack!=null){ diff --git a/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java b/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java index 0e38d253e8..2fc27ac6a2 100644 --- a/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java +++ b/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java @@ -1,6 +1,7 @@ package com.github.technus.tectech.thing.item; import com.github.technus.tectech.CommonValues; +import com.github.technus.tectech.Util; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Param; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; @@ -52,19 +53,15 @@ public class ParametrizerMemoryCard extends Item { if (aStack.getItemDamage()==1) { //write to parametrizer parametrizer.param = tNBT.getInteger("param"); - parametrizer.data0 = tNBT.getInteger("value1"); - parametrizer.data1 = tNBT.getInteger("value2"); - parametrizer.value0f = tNBT.getFloat("value1f"); - parametrizer.value1f = tNBT.getFloat("value2f"); - parametrizer.extra = tNBT.getInteger("exponent"); + parametrizer.value0i = tNBT.getInteger("value0i"); + parametrizer.value1i = tNBT.getInteger("value1i"); + parametrizer.usesFloat = tNBT.getInteger("extra"); } else { //read from parametrizer tNBT.setInteger("param", parametrizer.param); - tNBT.setInteger("value1", parametrizer.data0); - tNBT.setInteger("value2", parametrizer.data1); - tNBT.setFloat("value2f", parametrizer.value1f); - tNBT.setFloat("value1f", parametrizer.value0f); - tNBT.setInteger("exponent", parametrizer.extra); + tNBT.setInteger("value0i", parametrizer.value0i); + tNBT.setInteger("value1i", parametrizer.value1i); + tNBT.setInteger("extra", parametrizer.usesFloat); } return true; } @@ -100,13 +97,17 @@ public class ParametrizerMemoryCard extends Item { } aList.add(EnumChatFormatting.BLUE + "Sneak right click to lock/unlock"); + int temp; if(tNBT!=null && tNBT.hasKey("param")) { aList.add("Hatch ID: "+EnumChatFormatting.AQUA + tNBT.getInteger("param")); - aList.add("Value 0|F: "+EnumChatFormatting.AQUA + tNBT.getFloat("value1f")); - aList.add("Value 1|F: "+EnumChatFormatting.AQUA + tNBT.getFloat("value2f")); - aList.add("Data 0|I: "+EnumChatFormatting.AQUA + tNBT.getInteger("value1")); - aList.add("Data 1|I: "+EnumChatFormatting.AQUA + tNBT.getInteger("value2")); - aList.add("Data x|I: "+EnumChatFormatting.AQUA + tNBT.getInteger("exponent")); + temp=tNBT.getInteger("value0i"); + aList.add("Value 0|I: "+EnumChatFormatting.AQUA + temp); + aList.add("Value 0|F: "+EnumChatFormatting.AQUA + Float.intBitsToFloat(temp)); + aList.add("Value 0|B: "+EnumChatFormatting.AQUA + Util.intToShortString(temp)); + temp=tNBT.getInteger("value1i"); + aList.add("Value 1|I: "+EnumChatFormatting.AQUA + temp); + aList.add("Value 1|F: "+EnumChatFormatting.AQUA + Float.intBitsToFloat(temp)); + aList.add("Value 1|B: "+EnumChatFormatting.AQUA + Util.intToShortString(temp)); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Param.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Param.java index cb83c9eb93..5b9e1faa98 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Param.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Param.java @@ -26,14 +26,13 @@ import net.minecraftforge.fluids.FluidStack; * Created by danie_000 on 15.12.2016. */ public class GT_MetaTileEntity_Hatch_Param extends GT_MetaTileEntity_Hatch { - public int extra = 0; - public int data1 = 0; - public int data0 = 0; + private boolean usesFloat = false; + public int pointer = 0; public int param = -1; - public float value0f = 0; - public float value1f = 0; - public float input1f = 0; - public float input2f = 0; + public int value0i = 0; + public int value1i = 0; + public int input0i = 0; + public int input1i = 0; private static Textures.BlockIcons.CustomIcon ScreenON; private static Textures.BlockIcons.CustomIcon ScreenOFF; @@ -101,36 +100,24 @@ public class GT_MetaTileEntity_Hatch_Param extends GT_MetaTileEntity_Hatch { @Override public String[] getInfoData() { - int temp; - if(mTier>=10){ + if(mTier>=10) return new String[]{ "Parametrizer ID: " + EnumChatFormatting.GREEN + param, - "Value 0|F: " + EnumChatFormatting.AQUA + value0f, - "Value 0|I: " + EnumChatFormatting.AQUA + (temp=Float.floatToIntBits(value0f)), - "Value 0|B: " + EnumChatFormatting.AQUA + Util.intToString(temp,8), - "Value 1|F: " + EnumChatFormatting.BLUE + value1f, - "Value 1|I: " + EnumChatFormatting.BLUE + (temp=Float.floatToIntBits(value1f)), - "Value 1|B: " + EnumChatFormatting.BLUE + Util.intToString(temp,8), - "Input 0|F: " + EnumChatFormatting.GOLD + input1f, - "Input 0|I: " + EnumChatFormatting.GOLD + (temp=Float.floatToIntBits(input1f)), - "Input 0|B: " + EnumChatFormatting.GOLD + Util.intToString(temp,8), - "Input 1|F: " + EnumChatFormatting.YELLOW + input2f, - "Input 1|I: " + EnumChatFormatting.YELLOW + (temp=Float.floatToIntBits(input2f)), - "Input 1|B: " + EnumChatFormatting.YELLOW + Util.intToString(temp,8), - "Data 0|I" + data0, - "Data 1|I" + data1, - "Data x|I" + extra, + "Value 0I: " + EnumChatFormatting.AQUA + value0i, + "Value 0FB: " + EnumChatFormatting.AQUA + Float.intBitsToFloat(value0i)+" "+ Util.intToShortString(value0i), + "Value 1I: " + EnumChatFormatting.BLUE + value1i, + "Value 1FB: " + EnumChatFormatting.BLUE + Float.intBitsToFloat(value1i)+" "+ Util.intToShortString(value1i), + "Input 0I: " + EnumChatFormatting.GOLD + input0i, + "Input 0FB: " + EnumChatFormatting.GOLD + Float.intBitsToFloat(input0i)+" "+ Util.intToShortString(input0i), + "Input 1I: " + EnumChatFormatting.YELLOW + input1i, + "Input 1FB: " + EnumChatFormatting.YELLOW + Float.intBitsToFloat(input1i)+" "+ Util.intToShortString(input1i), }; - } return new String[]{ "Parametrizer ID: " + EnumChatFormatting.GREEN + param, - "Value 0|F: " + EnumChatFormatting.AQUA + value0f, - "Value 1|F: " + EnumChatFormatting.BLUE + value1f, - "Input 0|F: " + EnumChatFormatting.GOLD + input1f, - "Input 1|F: " + EnumChatFormatting.YELLOW + input2f, - "Data 0|I" + data0, - "Data 1|I" + data1, - "Data x|I" + extra, + "Value 0I: " + EnumChatFormatting.AQUA + value0i, + "Value 1I: " + EnumChatFormatting.BLUE + value1i, + "Input 0I: " + EnumChatFormatting.GOLD + input0i, + "Input 1I: " + EnumChatFormatting.YELLOW + input1i, }; } @@ -151,30 +138,24 @@ public class GT_MetaTileEntity_Hatch_Param extends GT_MetaTileEntity_Hatch { public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); - aNBT.setInteger("mEXP", extra); - if(mTier>=10) { - aNBT.setInteger("mV2", Float.floatToIntBits(value1f)); - aNBT.setInteger("mV1", Float.floatToIntBits(value0f)); - }else { - aNBT.setInteger("mV2", data1); - aNBT.setInteger("mV1", data0); - } - aNBT.setInteger("mParam", param); + aNBT.setBoolean("eFloats", usesFloat); + aNBT.setInteger("ePointer", pointer); + aNBT.setInteger("eValue0i", value0i); + aNBT.setInteger("eValue1i", value1i); + aNBT.setInteger("eInput0i", value0i); + aNBT.setInteger("eInput1i", value1i); + aNBT.setInteger("eParam", param); } public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); - extra = aNBT.getInteger("mEXP"); - data1 = aNBT.getInteger("mV2"); - data0 = aNBT.getInteger("mV1"); - param = aNBT.getInteger("mParam"); - if(mTier>=10) { - value0f =Float.intBitsToFloat(data0); - value1f =Float.intBitsToFloat(data1); - }else{ - value0f = (float) (data0 * Math.pow(2, extra)); - value1f = (float) (data1 * Math.pow(2, extra)); - } + usesFloat = aNBT.getBoolean("eFloats"); + pointer = aNBT.getInteger("ePointer"); + value0i=aNBT.getInteger("eValue0i"); + value1i=aNBT.getInteger("eValue1i"); + value0i=aNBT.getInteger("eInput0i"); + value1i=aNBT.getInteger("eInput1i"); + param = aNBT.getInteger("eParam"); } @Override @@ -217,4 +198,16 @@ public class GT_MetaTileEntity_Hatch_Param extends GT_MetaTileEntity_Hatch { EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "E=mine*craft^2" }; } + + public boolean isUsingFloats() { + return mTier >= 10 && usesFloat; + } + + public boolean setUsingFloats(boolean value){ + if(mTier>=10){ + usesFloat=value; + return value; + } + return false; + } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_Param.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_Param.java index 56b66a46d8..22142b7d12 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_Param.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_Param.java @@ -15,16 +15,11 @@ import net.minecraft.item.ItemStack; import java.util.Iterator; public class GT_Container_Param extends GT_ContainerMetaTile_Machine { - public int extra = 0; - public int data1 = 0; - public int data0 = 0; public int param = 0; - public float value1f = 0; - public float value0f = 0; - public float input0f = 0; - public float input1f = 0; - private int input0Bits = 0; - private int input1Bits = 0; + public int value0f = 0; + public int value1f = 0; + public int input0f = 0; + public int input1f = 0; public GT_Container_Param(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { super(aInventoryPlayer, aTileEntity); @@ -64,52 +59,56 @@ public class GT_Container_Param extends GT_ContainerMetaTile_Machine { GT_MetaTileEntity_Hatch_Param paramH = (GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity(); switch (aSlotIndex) { case 0: - paramH.param -= (aShifthold == 1 ? 512 : 64); + paramH.param -= (aShifthold == 1 ? 16 : 4); break; case 1: - paramH.data0 -= (aShifthold == 1 ? 512 : 64); + paramH.value0i -= (aShifthold == 1 ? 512 : 64); break; case 2: - paramH.data1 -= (aShifthold == 1 ? 512 : 64); + paramH.value1i -= (aShifthold == 1 ? 512 : 64); break; case 3: - paramH.extra -= (aShifthold == 1 ? 16 : 8); + paramH.value0i >>= aShifthold == 1 ? 16 : 4; + paramH.value1i >>= aShifthold == 1 ? 16 : 4; break; case 4: - paramH.param -= (aShifthold == 1 ? 16 : 1); + paramH.param -= (aShifthold == 1 ? 2 : 1); break; case 5: - paramH.data0 -= (aShifthold == 1 ? 16 : 1); + paramH.value0i -= (aShifthold == 1 ? 16 : 1); break; case 6: - paramH.data1 -= (aShifthold == 1 ? 16 : 1); + paramH.value1i -= (aShifthold == 1 ? 16 : 1); break; case 7: - paramH.extra -= (aShifthold == 1 ? 4 : 1); + paramH.value0i >>= aShifthold == 1 ? 2 : 1; + paramH.value1i >>= aShifthold == 1 ? 2 : 1; break; case 8: - paramH.param += (aShifthold == 1 ? 512 : 64); + paramH.param += (aShifthold == 1 ? 16 : 4); break; case 9: - paramH.data0 += (aShifthold == 1 ? 512 : 64); + paramH.value0i += (aShifthold == 1 ? 512 : 64); break; case 10: - paramH.data1 += (aShifthold == 1 ? 512 : 64); + paramH.value1i += (aShifthold == 1 ? 512 : 64); break; case 11: - paramH.extra += (aShifthold == 1 ? 16 : 8); + paramH.value0i <<= aShifthold == 1 ? 16 : 4; + paramH.value1i <<= aShifthold == 1 ? 16 : 4; break; case 12: - paramH.param += (aShifthold == 1 ? 16 : 1); + paramH.param += (aShifthold == 1 ? 2 : 1); break; case 13: - paramH.data0 += (aShifthold == 1 ? 16 : 1); + paramH.value0i += (aShifthold == 1 ? 16 : 1); break; case 14: - paramH.data1 += (aShifthold == 1 ? 16 : 1); + paramH.value1i += (aShifthold == 1 ? 16 : 1); break; case 15: - paramH.extra += (aShifthold == 1 ? 4 : 1); + paramH.value0i <<= aShifthold == 1 ? 2 : 1; + paramH.value1i <<= aShifthold == 1 ? 2 : 1; break; default: doStuff = false; @@ -117,8 +116,6 @@ public class GT_Container_Param extends GT_ContainerMetaTile_Machine { if (doStuff) { if (paramH.param > 9) paramH.param = 9; else if (paramH.param < -1) paramH.param = -1; - paramH.value0f =Float.intBitsToFloat(Float.floatToIntBits((float) (paramH.data0 * Math.pow(2, paramH.extra)))); - paramH.value1f =Float.intBitsToFloat(Float.floatToIntBits((float) (paramH.data1 * Math.pow(2, paramH.extra)))); } } return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); @@ -131,27 +128,24 @@ public class GT_Container_Param extends GT_ContainerMetaTile_Machine { return; } this.param = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).param; - this.data0 = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).data0; - this.data1 = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).data1; - this.extra = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).extra; - this.input0Bits = Float.floatToIntBits(((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input1f); - this.input1Bits = Float.floatToIntBits(((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input2f); + this.value0f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).value0i; + this.value1f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).value1i; + this.input0f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input0i; + this.input1f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input1i; Iterator var2 = this.crafters.iterator(); while (var2.hasNext()) { ICrafting var1 = (ICrafting) var2.next(); var1.sendProgressBarUpdate(this, 100, this.param & 0xFFFF); var1.sendProgressBarUpdate(this, 101, this.param >>> 16); - var1.sendProgressBarUpdate(this, 102, this.data0 & 0xFFFF); - var1.sendProgressBarUpdate(this, 103, this.data0 >>> 16); - var1.sendProgressBarUpdate(this, 104, this.data1 & 0xFFFF); - var1.sendProgressBarUpdate(this, 105, this.data1 >>> 16); - var1.sendProgressBarUpdate(this, 106, this.extra & 0xFFFF); - var1.sendProgressBarUpdate(this, 107, this.extra >>> 16); - var1.sendProgressBarUpdate(this, 108, this.input0Bits & 0xFFFF); - var1.sendProgressBarUpdate(this, 109, this.input0Bits >>> 16); - var1.sendProgressBarUpdate(this, 110, this.input1Bits & 0xFFFF); - var1.sendProgressBarUpdate(this, 111, this.input1Bits >>> 16); + var1.sendProgressBarUpdate(this, 102, this.value0f & 0xFFFF); + var1.sendProgressBarUpdate(this, 103, this.value0f >>> 16); + var1.sendProgressBarUpdate(this, 104, this.value1f & 0xFFFF); + var1.sendProgressBarUpdate(this, 105, this.value1f >>> 16); + var1.sendProgressBarUpdate(this, 106, this.input0f & 0xFFFF); + var1.sendProgressBarUpdate(this, 107, this.input0f >>> 16); + var1.sendProgressBarUpdate(this, 108, this.input1f & 0xFFFF); + var1.sendProgressBarUpdate(this, 109, this.input1f >>> 16); } } @@ -166,43 +160,30 @@ public class GT_Container_Param extends GT_ContainerMetaTile_Machine { this.param = (this.param & 0xFFFF | (par2 << 16)); return; case 102: - this.data0 = (this.data0 & 0xFFFF0000 | par2); + this.value0f = (this.value0f & 0xFFFF0000 | par2); break; case 103: - this.data0 = (this.data0 & 0xFFFF | (par2 << 16)); + this.value0f = (this.value0f & 0xFFFF | (par2 << 16)); break; case 104: - this.data1 = (this.data1 & 0xFFFF0000 | par2); + this.value1f = (this.value1f & 0xFFFF0000 | par2); break; case 105: - this.data1 = (this.data1 & 0xFFFF | (par2 << 16)); + this.value1f = (this.value1f & 0xFFFF | (par2 << 16)); break; case 106: - this.extra = (this.extra & 0xFFFF0000 | par2); + this.input0f = (this.input0f & 0xFFFF0000 | par2); break; case 107: - this.extra = (this.extra & 0xFFFF | (par2 << 16)); + this.input0f = (this.input0f & 0xFFFF | (par2 << 16)); break; case 108: - this.input0Bits = (this.input0Bits & 0xFFFF0000 | par2); - this.input0f = Float.intBitsToFloat(input0Bits); + this.input1f = (this.input1f & 0xFFFF0000 | par2); return; case 109: - this.input0Bits = (this.input0Bits & 0xFFFF | (par2 << 16)); - this.input0f = Float.intBitsToFloat(input0Bits); - return; - case 110: - this.input1Bits = (this.input1Bits & 0xFFFF0000 | par2); - this.input1f = Float.intBitsToFloat(input1Bits); - return; - case 111: - this.input1Bits = (this.input1Bits & 0xFFFF | (par2 << 16)); - this.input1f = Float.intBitsToFloat(input1Bits); + this.input1f = (this.input1f & 0xFFFF | (par2 << 16)); return; default: - return; } - this.value0f = (float) (this.data0 * Math.pow(2, this.extra)); - this.value1f = (float) (this.data1 * Math.pow(2, this.extra)); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_ParamAdv.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_ParamAdv.java index 5c67caa42a..2c4670e52f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_ParamAdv.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_Container_ParamAdv.java @@ -15,16 +15,13 @@ import net.minecraft.item.ItemStack; import java.util.Iterator; public class GT_Container_ParamAdv extends GT_ContainerMetaTile_Machine { - public int extra = 0; - public int data1 = 0; - public int data0 = 0; + public boolean usesFloats = false; + public int pointer=0; public int param = 0; - public float value1f = 0; - public float value0f = 0; - public float input0f = 0; - public float input1f = 0; - private int input0Bits = 0; - private int input1Bits = 0; + public int value1f = 0; + public int value0f = 0; + public int input0f = 0; + public int input1f = 0; public GT_Container_ParamAdv(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { super(aInventoryPlayer, aTileEntity); @@ -62,84 +59,83 @@ public class GT_Container_ParamAdv extends GT_ContainerMetaTile_Machine { boolean doStuff = true; if ((tSlot != null) && (this.mTileEntity.getMetaTileEntity() != null)) { GT_MetaTileEntity_Hatch_Param paramH = (GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity(); - int columnPointer=paramH.extra&0xff; - boolean secondRow=(paramH.extra&0x0100)!=0; - boolean showInts=(paramH.extra&0x10000)!=0; + int columnPointer=paramH.pointer &0xff; + boolean secondRow=(paramH.pointer &0x0100)!=0; + boolean showInts=!paramH.isUsingFloats(); switch (aSlotIndex) { case 0: paramH.param -= (aShifthold == 1 ? 16 : 4); break; case 1: - if (secondRow) {secondRow=false;} else {columnPointer -= (aShifthold == 1 ? 16 : 4);} + if (secondRow) secondRow = false; + else columnPointer -= (aShifthold == 1 ? 16 : 4); break; case 2: - if (secondRow) {columnPointer -= (aShifthold == 1 ? 16 : 4);} else {secondRow=true;} + if (secondRow) columnPointer -= (aShifthold == 1 ? 16 : 4); + else secondRow = true; break; case 3: - if(aShifthold==1){ - if(secondRow) data1=0xFFFFFFFF; - else data0=0xFFFFFFFF; - }else { - if(secondRow){ - data1|=1<=32) columnPointer=31; else if(columnPointer<0) columnPointer=0; - paramH.extra=columnPointer; - if(secondRow) paramH.extra|=0x0100; - if(showInts) paramH.extra|=0x10000; + paramH.pointer=secondRow?columnPointer+0x100:columnPointer; + paramH.setUsingFloats(!showInts); if (paramH.param > 9) paramH.param = 9; else if (paramH.param < -1) paramH.param = -1; - paramH.value0f =Float.intBitsToFloat(Float.floatToIntBits(paramH.data0)); - paramH.value1f =Float.intBitsToFloat(Float.floatToIntBits(paramH.data1)); } } return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); @@ -166,27 +159,27 @@ public class GT_Container_ParamAdv extends GT_ContainerMetaTile_Machine { return; } this.param = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).param; - this.data0 = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).data0; - this.data1 = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).data1; - this.extra = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).extra; - this.input0Bits = Float.floatToIntBits(((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input1f); - this.input1Bits = Float.floatToIntBits(((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input2f); + this.value0f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).value0i; + this.value1f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).value1i; + this.input0f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input0i; + this.input1f = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).input1i; + this.pointer = ((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).pointer; + this.usesFloats =((GT_MetaTileEntity_Hatch_Param) this.mTileEntity.getMetaTileEntity()).isUsingFloats(); Iterator var2 = this.crafters.iterator(); while (var2.hasNext()) { ICrafting var1 = (ICrafting) var2.next(); var1.sendProgressBarUpdate(this, 100, this.param & 0xFFFF); var1.sendProgressBarUpdate(this, 101, this.param >>> 16); - var1.sendProgressBarUpdate(this, 102, this.data0 & 0xFFFF); - var1.sendProgressBarUpdate(this, 103, this.data0 >>> 16); - var1.sendProgressBarUpdate(this, 104, this.data1 & 0xFFFF); - var1.sendProgressBarUpdate(this, 105, this.data1 >>> 16); - var1.sendProgressBarUpdate(this, 106, this.extra & 0xFFFF); - var1.sendProgressBarUpdate(this, 107, this.extra >>> 16); - var1.sendProgressBarUpdate(this, 108, this.input0Bits & 0xFFFF); - var1.sendProgressBarUpdate(this, 109, this.input0Bits >>> 16); - var1.sendProgressBarUpdate(this, 110, this.input1Bits & 0xFFFF); - var1.sendProgressBarUpdate(this, 111, this.input1Bits >>> 16); + var1.sendProgressBarUpdate(this, 102, this.value0f & 0xFFFF); + var1.sendProgressBarUpdate(this, 103, this.value0f >>> 16); + var1.sendProgressBarUpdate(this, 104, this.value1f & 0xFFFF); + var1.sendProgressBarUpdate(this, 105, this.value1f >>> 16); + var1.sendProgressBarUpdate(this, 106, this.input0f & 0xFFFF); + var1.sendProgressBarUpdate(this, 107, this.input0f >>> 16); + var1.sendProgressBarUpdate(this, 108, this.input1f & 0xFFFF); + var1.sendProgressBarUpdate(this, 109, this.input1f >>> 16); + var1.sendProgressBarUpdate(this, 110, this.usesFloats?this.pointer+0x10000:this.pointer); } } @@ -201,43 +194,33 @@ public class GT_Container_ParamAdv extends GT_ContainerMetaTile_Machine { this.param = (this.param & 0xFFFF | (par2 << 16)); return; case 102: - this.data0 = (this.data0 & 0xFFFF0000 | par2); + this.value0f = (this.value0f & 0xFFFF0000 | par2); break; case 103: - this.data0 = (this.data0 & 0xFFFF | (par2 << 16)); + this.value0f = (this.value0f & 0xFFFF | (par2 << 16)); break; case 104: - this.data1 = (this.data1 & 0xFFFF0000 | par2); + this.value1f = (this.value1f & 0xFFFF0000 | par2); break; case 105: - this.data1 = (this.data1 & 0xFFFF | (par2 << 16)); + this.value1f = (this.value1f & 0xFFFF | (par2 << 16)); break; case 106: - this.extra = (this.extra & 0xFFFF0000 | par2); + this.input0f = (this.input0f & 0xFFFF0000 | par2); break; case 107: - this.extra = (this.extra & 0xFFFF | (par2 << 16)); + this.input0f = (this.input0f & 0xFFFF | (par2 << 16)); break; case 108: - this.input0Bits = (this.input0Bits & 0xFFFF0000 | par2); - this.input0f = Float.intBitsToFloat(input0Bits); + this.input1f = (this.input1f & 0xFFFF0000 | par2); return; case 109: - this.input0Bits = (this.input0Bits & 0xFFFF | (par2 << 16)); - this.input0f = Float.intBitsToFloat(input0Bits); + this.input1f = (this.input1f & 0xFFFF | (par2 << 16)); return; case 110: - this.input1Bits = (this.input1Bits & 0xFFFF0000 | par2); - this.input1f = Float.intBitsToFloat(input1Bits); - return; - case 111: - this.input1Bits = (this.input1Bits & 0xFFFF | (par2 << 16)); - this.input1f = Float.intBitsToFloat(input1Bits); - return; + this.pointer = par2 & 0xFFFF; + this.usesFloats=par2>=0x10000; default: - return; } - value0f =Float.intBitsToFloat(data0); - value1f =Float.intBitsToFloat(data1); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_Param.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_Param.java index 25945608d9..0741c69235 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_Param.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_Param.java @@ -1,9 +1,12 @@ package com.github.technus.tectech.thing.metaTileEntity.hatch.gui; +import com.github.technus.tectech.Util; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import java.util.Locale; + import static com.github.technus.tectech.TecTech.proxy; import static gregtech.api.enums.GT_Values.RES_PATH_GUI; @@ -14,16 +17,16 @@ public class GT_GUIContainer_Param extends GT_GUIContainerMetaTile_Machine { protected void drawGuiContainerForegroundLayer(int par1, int par2) { if (this.mContainer != null) { - proxy.renderUnicodeString("Parametrizer: " + ((GT_Container_Param) this.mContainer).param, 46, 7, 167, 0xffffff); - proxy.renderUnicodeString("\u24EA\u2b07|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_Param) this.mContainer).input0f), 46, 16, 167, 0x22ddff); - proxy.renderUnicodeString("\u2460\u2b07|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_Param) this.mContainer).input1f), 46, 24, 167, 0x00ffff); - proxy.renderUnicodeString("\u24EA\u2b06|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_Param) this.mContainer).value0f), 46, 33, 167, 0x00bbff); - proxy.renderUnicodeString("\u2460\u2b06|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_Param) this.mContainer).value1f), 46, 41, 167, 0x0077ff); - proxy.renderUnicodeString("M\u24EA: " + ((GT_Container_Param) this.mContainer).data0, 46, 50, 167, 0x00bbff); - proxy.renderUnicodeString("M\u2460: " + ((GT_Container_Param) this.mContainer).data1, 46, 58, 167, 0x0077ff); - proxy.renderUnicodeString("E\u24EA\u2460: " + ((GT_Container_Param) this.mContainer).extra, 46, 66, 167, 0x0033ff); + proxy.renderUnicodeString("Parameters: " + ((GT_Container_Param) this.mContainer).param, 46, 7, 167, 0xffffff); + Locale locale=java.util.Locale.getDefault(); + proxy.renderUnicodeString("\u24EA\u2b07" + String.format(locale, "%+d", ((GT_Container_Param) this.mContainer).input0f), 46, 16, 167, 0x22ddff); + proxy.renderUnicodeString("\u2460\u2b07" + String.format(locale, "%+d", ((GT_Container_Param) this.mContainer).input1f), 46, 24, 167, 0x00ffff); + proxy.renderUnicodeString("\u24EA\u2b06" + String.format(locale, "%+d", ((GT_Container_Param) this.mContainer).value0f), 46, 33, 167, 0x00bbff); + proxy.renderUnicodeString("\u2460\u2b06" + String.format(locale, "%+d", ((GT_Container_Param) this.mContainer).value1f), 46, 41, 167, 0x0077ff); + proxy.renderUnicodeString("\u24EA\u2b06" + Util.intToShortString(((GT_Container_Param) this.mContainer).value0f), 46, 50, 167, 0x00bbff); + proxy.renderUnicodeString("\u2460\u2b06" + Util.intToShortString(((GT_Container_Param) this.mContainer).value1f), 46, 58, 167, 0x0077ff); } else { - proxy.renderUnicodeString("Parametrizer", 46, 7, 167, 0xffffff); + proxy.renderUnicodeString("Parameters", 46, 7, 167, 0xffffff); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_ParamAdv.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_ParamAdv.java index 04ded38c18..d7ecba8a86 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_ParamAdv.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/gui/GT_GUIContainer_ParamAdv.java @@ -1,9 +1,12 @@ package com.github.technus.tectech.thing.metaTileEntity.hatch.gui; +import com.github.technus.tectech.Util; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import java.util.Locale; + import static com.github.technus.tectech.TecTech.proxy; import static gregtech.api.enums.GT_Values.RES_PATH_GUI; @@ -14,23 +17,24 @@ public class GT_GUIContainer_ParamAdv extends GT_GUIContainerMetaTile_Machine { protected void drawGuiContainerForegroundLayer(int par1, int par2) { if (this.mContainer != null) { - proxy.renderUnicodeString("Parametrizer X: " + ((GT_Container_ParamAdv) this.mContainer).param, 46, 7, 167, 0xffffff); - if (((GT_Container_ParamAdv) this.mContainer).extra >= 0x10000) { - proxy.renderUnicodeString("\u24EA\u2b07|I" + String.format(java.util.Locale.ENGLISH, "%d", Float.floatToIntBits(((GT_Container_ParamAdv) this.mContainer).input0f)), 46, 16, 167, 0x22ddff); - proxy.renderUnicodeString("\u2460\u2b07|I" + String.format(java.util.Locale.ENGLISH, "%d", Float.floatToIntBits(((GT_Container_ParamAdv) this.mContainer).input1f)), 46, 24, 167, 0x00ffff); - proxy.renderUnicodeString("\u24EA\u2b06|I" + String.format(java.util.Locale.ENGLISH, "%d", Float.floatToIntBits(((GT_Container_ParamAdv) this.mContainer).input0f)), 46, 33, 167, 0x00bbff); - proxy.renderUnicodeString("\u2460\u2b06|I" + String.format(java.util.Locale.ENGLISH, "%d", Float.floatToIntBits(((GT_Container_ParamAdv) this.mContainer).input1f)), 46, 41, 167, 0x0077ff); + proxy.renderUnicodeString("Parameters X: " + ((GT_Container_ParamAdv) this.mContainer).param, 46, 7, 167, 0xffffff); + Locale locale=java.util.Locale.getDefault(); + if (((GT_Container_ParamAdv) this.mContainer).usesFloats) { + proxy.renderUnicodeString("\u24EA\u2b07" + String.format(locale, "%+d", ((GT_Container_ParamAdv) this.mContainer).input0f), 46, 16, 167, 0x22ddff); + proxy.renderUnicodeString("\u2460\u2b07" + String.format(locale, "%+d", ((GT_Container_ParamAdv) this.mContainer).input1f), 46, 24, 167, 0x00ffff); + proxy.renderUnicodeString("\u24EA\u2b06" + String.format(locale, "%+d", ((GT_Container_ParamAdv) this.mContainer).input0f), 46, 33, 167, 0x00bbff); + proxy.renderUnicodeString("\u2460\u2b06" + String.format(locale, "%+d", ((GT_Container_ParamAdv) this.mContainer).input1f), 46, 41, 167, 0x0077ff); } else { - proxy.renderUnicodeString("\u24EA\u2b07|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_ParamAdv) this.mContainer).input0f), 46, 16, 167, 0x22ddff); - proxy.renderUnicodeString("\u2460\u2b07|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_ParamAdv) this.mContainer).input1f), 46, 24, 167, 0x00ffff); - proxy.renderUnicodeString("\u24EA\u2b06|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_ParamAdv) this.mContainer).value0f), 46, 33, 167, 0x00bbff); - proxy.renderUnicodeString("\u2460\u2b06|F" + String.format(java.util.Locale.ENGLISH, "%+.5E", ((GT_Container_ParamAdv) this.mContainer).value1f), 46, 41, 167, 0x0077ff); + proxy.renderUnicodeString("\u24EA\u2b07" + String.format(locale, "%+.5E", Float.intBitsToFloat(((GT_Container_ParamAdv) this.mContainer).input0f)), 46, 16, 167, 0x22ddff); + proxy.renderUnicodeString("\u2460\u2b07" + String.format(locale, "%+.5E", Float.intBitsToFloat(((GT_Container_ParamAdv) this.mContainer).input1f)), 46, 24, 167, 0x00ffff); + proxy.renderUnicodeString("\u24EA\u2b06" + String.format(locale, "%+.5E", Float.intBitsToFloat(((GT_Container_ParamAdv) this.mContainer).value0f)), 46, 33, 167, 0x00bbff); + proxy.renderUnicodeString("\u2460\u2b06" + String.format(locale, "%+.5E", Float.intBitsToFloat(((GT_Container_ParamAdv) this.mContainer).value1f)), 46, 41, 167, 0x0077ff); } - proxy.renderUnicodeString("\u24EA\u2b06|B" + ((GT_Container_ParamAdv) this.mContainer).data0, 46, 50, 167, 0x00bbff); - proxy.renderUnicodeString("\u2460\u2b06|B" + ((GT_Container_ParamAdv) this.mContainer).data1, 46, 58, 167, 0x0077ff); - proxy.renderUnicodeString("Pointer: 0x" + Integer.toHexString(((((GT_Container_ParamAdv) this.mContainer).extra & 0xFFFF)) | 0x10000).substring(1), 46, 66, 167, 0x0033ff); + proxy.renderUnicodeString("\u24EA\u2b06" + Util.intToShortString(((GT_Container_ParamAdv) this.mContainer).value0f), 46, 50, 167, 0x00bbff); + proxy.renderUnicodeString("\u2460\u2b06" + Util.intToShortString(((GT_Container_ParamAdv) this.mContainer).value1f), 46, 58, 167, 0x0077ff); + proxy.renderUnicodeString("Pointer " + Integer.toHexString(((GT_Container_ParamAdv) this.mContainer).pointer | 0x10000).substring(1), 46, 66, 167, 0x0033ff); } else { - proxy.renderUnicodeString("Parametrizer X", 46, 7, 167, 0xffffff); + proxy.renderUnicodeString("Parameters X", 46, 7, 167, 0xffffff); } } 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 9a1d4397f5..bc43f05787 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 @@ -40,7 +40,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB private static Textures.BlockIcons.CustomIcon ScreenON; private final ArrayList eRacks = new ArrayList<>(); - private int maxTemp = 0; + private int maxCurrentTemp = 0; //region Structure private static final String[][] front = new String[][]{{"A ", "A ", "A. ", "A ",},}; @@ -93,11 +93,19 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { eAvailableData = 0; - maxTemp = 0; - if(eParamsIn[0]>=0 && eParamsIn[10]>=0){ - float eut=V[8] * eParamsIn[10]; + maxCurrentTemp = 0; + double overClockRatio,overVoltageRatio; + if (noParametrizers) { + overVoltageRatio=overClockRatio=1; + } else { + overClockRatio=getParameterInSafely(0,0); + overVoltageRatio=getParameterInSafely(0,1); + if(Double.isNaN(overClockRatio) || Double.isNaN(overVoltageRatio)) return false; + } + if(overClockRatio>0 && overVoltageRatio>=0.7f && overClockRatio<=3 && overVoltageRatio<=2){ + float eut=V[8] * (float)overVoltageRatio * (float)overClockRatio; if(eut maxTemp) maxTemp = r.heat; - rackComputation = r.tickComponents(eParamsIn[0], eParamsIn[10]); + for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) { + if (!isValidMetaTileEntity(rack)) continue; + if (rack.heat > maxCurrentTemp) maxCurrentTemp = rack.heat; + rackComputation = rack.tickComponents((float) overClockRatio, (float) overVoltageRatio); if (rackComputation > 0) { eAvailableData += rackComputation; thingsActive += 4; } - r.getBaseMetaTileEntity().setActive(true); + rack.getBaseMetaTileEntity().setActive(true); } for (GT_MetaTileEntity_Hatch_InputData di : eInputData) @@ -154,39 +162,51 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB } @Override - public void updateParameters_EM() { - if (eParamsIn[0] < 0) - eParamsInStatus[0] = PARAM_TOO_LOW; - else if (eParamsIn[0] < 1) - eParamsInStatus[0] = PARAM_LOW; - else if (eParamsIn[0] == 1) - eParamsInStatus[0] = PARAM_OK; - else if (eParamsIn[0] <= 3) - eParamsInStatus[0] = PARAM_HIGH; - else eParamsInStatus[0] = PARAM_TOO_HIGH; - - if (eParamsIn[10] < 0.7f) - eParamsInStatus[10] = PARAM_TOO_LOW; - else if (eParamsIn[10] < 0.8f) - eParamsInStatus[10] = PARAM_LOW; - else if (eParamsIn[10] <= 1.2f) - eParamsInStatus[10] = PARAM_OK; - else if (eParamsIn[10] <= 2) - eParamsInStatus[10] = PARAM_HIGH; - else eParamsInStatus[10] = PARAM_TOO_HIGH; - - eParamsOut[0] = maxTemp; - eParamsOut[10] = eAvailableData; - - if (maxTemp < -10000) - eParamsOutStatus[0] = PARAM_TOO_LOW; - else if (maxTemp < 0) - eParamsOutStatus[0] = PARAM_LOW; - else if (maxTemp == 0) - eParamsOutStatus[0] = PARAM_OK; - else if (maxTemp <= 5000) - eParamsOutStatus[0] = PARAM_HIGH; - else eParamsOutStatus[0] = PARAM_TOO_HIGH; + public void updateParameters_EM(boolean busy) { + double ocRatio=getParameterInSafely(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=getParameterInSafely(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); + + setParameterOutSafely(0,0, maxCurrentTemp); + setParameterOutSafely(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(!busy) + setStatusOfParameterOut(0,1,STATUS_WRONG); + else if(eAvailableData<=0) + setStatusOfParameterOut(0,1,STATUS_TOO_LOW); + else setStatusOfParameterOut(0,1,STATUS_OK); } @Override @@ -280,7 +300,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB public String[] getDescription() { return new String[]{ CommonValues.TEC_MARK_EM, - Util.intToString(TecTech.Rnd.nextInt(), 8), + Util.intToString(TecTech.Rnd.nextInt()), EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "You need it to process the number above" }; } 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 477d573de8..66ba0d8433 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 @@ -110,7 +110,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { cElementalInstanceStackMap map= getInputsClone_EM(); if(map!=null && map.hasStacks() && map.getFirst().getLifeTime()< STABLE_RAW_LIFE_TIME){ return startRecipe(map.getFirst()); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java index 1b6d7b49a6..0b3fdb5523 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java @@ -82,7 +82,7 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) { cElementalInstanceStackMap map = in.getContainerHandler(); for (cElementalInstanceStack stack : map.values()) { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java index 276e536fb6..573cf8a5be 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java @@ -91,7 +91,7 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { if (itemStack != null && itemStack.stackSize == 1) { Item ofThis = itemStack.getItem(); if (ofThis instanceof IElectricItem) { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java index 3b6c3be66a..3d6b11bd79 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java @@ -77,27 +77,33 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB } @Override - public void updateParameters_EM() { + public void updateParameters_EM(boolean busy) { + double src,dest; for (int i = 0; i < 10; i++) { - if ((int) eParamsIn[i] < 0) eParamsInStatus[i] = PARAM_TOO_LOW; - else if ((int) eParamsIn[i] == 0) eParamsInStatus[i] = PARAM_UNUSED; - else if ((int) eParamsIn[i] > eInputHatches.size()) eParamsInStatus[i] = PARAM_TOO_HIGH; - else eParamsInStatus[i] = PARAM_OK; - } - for (int i = 10; i < 20; i++) { - if (eParamsInStatus[i - 10] == PARAM_OK) { - if ((int) eParamsIn[i] < 0) eParamsInStatus[i] = PARAM_TOO_LOW; - else if ((int) eParamsIn[i] == 0) eParamsInStatus[i] = PARAM_LOW; - else if ((int) eParamsIn[i] > eOutputHatches.size()) eParamsInStatus[i] = PARAM_TOO_HIGH; - else eParamsInStatus[i] = PARAM_OK; + src=getParameterInSafely(i,0); + if (src <= 0){ + setStatusOfParameterIn(i,0,STATUS_TOO_LOW); + setStatusOfParameterIn(i,1,STATUS_UNUSED); + } else if (src > eInputHatches.size()){ + setStatusOfParameterIn(i,0,STATUS_TOO_HIGH); + setStatusOfParameterIn(i,1,STATUS_UNUSED); + } else if(Double.isNaN(src)){ + setStatusOfParameterIn(i,0,STATUS_WRONG); + setStatusOfParameterIn(i,1,STATUS_UNUSED); } else { - eParamsInStatus[i] = PARAM_UNUSED; + setStatusOfParameterIn(i,0,STATUS_OK); + dest=getParameterInSafely(i,1); + if(dest<0) setStatusOfParameterIn(i,1,STATUS_TOO_LOW); + else if(dest==0) setStatusOfParameterIn(i,1,STATUS_LOW); + else if(dest>eOutputHatches.size()) setStatusOfParameterIn(i,1,STATUS_TOO_HIGH); + else if(Double.isNaN(dest)) setStatusOfParameterIn(i,1,STATUS_WRONG); + else setStatusOfParameterIn(i,1,STATUS_OK); } } } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { for (GT_MetaTileEntity_Hatch_InputElemental in : eInputHatches) if (in.getContainerHandler().hasStacks()) { mEUt = -(int) V[8]; @@ -113,15 +119,18 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB @Override public void outputAfterRecipe_EM() { + double src,dest; for (int i = 0; i < 10; i++) { - final int inIndex = (int) (eParamsIn[i]) - 1; - if (inIndex < 0 || inIndex > eInputHatches.size()) continue; - final int outIndex = (int) (eParamsIn[i + 10]) - 1; + src=getParameterInSafely(i,0); + dest=getParameterInSafely(i,1); + final int inIndex = (int)src - 1; + if (inIndex < 0 || inIndex >= eInputHatches.size() || Double.isNaN(src) || Double.isNaN(dest)) continue; + final int outIndex = (int)dest - 1; GT_MetaTileEntity_Hatch_InputElemental in = eInputHatches.get(inIndex); if (outIndex == -1) {//param==0 -> null the content cleanHatchContentEM_EM(in); } else { - if (outIndex < 0 || outIndex > eOutputHatches.size()) continue; + if (outIndex < 0 || outIndex >= eOutputHatches.size()) continue; GT_MetaTileEntity_Hatch_OutputElemental out = eOutputHatches.get(outIndex); out.getContainerHandler().putUnifyAll(in.getContainerHandler()); in.getContainerHandler().clear(); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java index ac3ff9030b..fac96beee7 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java @@ -91,7 +91,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock } @Override - public boolean checkRecipe_EM(ItemStack itemStack) {//TODO implement by item quantization, implement instance quantization + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) {//TODO implement by item quantization, implement instance quantization if (GregTech_API.sPostloadFinished) { ItemStack[] inI = getStoredInputs().toArray(new ItemStack[0]); if (inI.length > 0) { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java index 6ee2e7f88f..ada50c3094 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java @@ -176,7 +176,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + public boolean checkRecipe_EM(ItemStack itemStack, boolean noParametrizers) { tRecipe=null; aRecipe=null; if(eHolders.size()>0 && eHolders.get(0).mInventory[0]!=null) { diff --git a/