From 9a0d99ffd15ef9332f206293b5f0a56f2c8c13d4 Mon Sep 17 00:00:00 2001 From: Bass Date: Tue, 12 Feb 2019 11:26:39 +0000 Subject: Float counting is bad? --- .../single/GT_MetaTileEntity_TeslaCoil.java | 39 ++++++++++------------ 1 file changed, 17 insertions(+), 22 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java index 83d1e4e7df..162204de01 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java @@ -26,11 +26,15 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB private ArrayList eTeslaTowerList = new ArrayList<>(); //Makes a list for BIGG Teslas - private float histStep = 0.05F; //Hysteresis Resolution - private float histLow = 0.25F; //Power pass is disabled if power is under this fraction - private float histHigh = 0.75F; //Power pass is enabled if power is over this fraction - private float histLowLimit = 0.05F; //How low can you configure it? - private float histHighLimit = 0.95F; //How high can you configure it? + private int histSteps = 20; //Hysteresis Resolution + private int histSettingLow = 3; + private int histSettingHigh = 15; + private int histLowLimit = 1; //How low can you configure it? + private int histHighLimit = histSteps-1; //How high can you configure it? + + private float histLow = (float)histSettingLow/histSteps; //Power pass is disabled if power is under this fraction + private float histHigh = (float)histSettingHigh/histSteps; //Power pass is enabled if power is over this fraction + private int scanRadiusTower = 64; //Radius for tower to tower transfers @@ -38,15 +42,6 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB private long outputCurrent = 1; //Tesla Current Output private long outputEuT = outputVoltage * outputCurrent; //Tesla Power Output - //All credit to ivan-stin who gave a solution at https://stackoverflow.com/questions/8911356/whats-the-best-practice-to-round-a-float-to-2-decimals - public static float round2(float number, int scale) { - int pow = 10; - for (int i = 1; i < scale; i++) - pow *= 10; - float tmp = number * pow; - return ( (float) ( (int) ((tmp - (int) tmp) >= 0.5f ? tmp + 1 : tmp) ) ) / pow; - } - public GT_MetaTileEntity_TeslaCoil(int aID, String aName, String aNameRegional, int aTier, int aSlotCount) { super(aID, aName, aNameRegional, aTier, "Tesla Coil Transceiver", aSlotCount); Util.setTier(aTier, this); @@ -58,20 +53,20 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (aPlayer.isSneaking()) { - if (histHigh < histHighLimit) { - histHigh += histStep; + if (histSettingHigh histLowLimit) { - histLow -= histStep; + if (histSettingLow>histLowLimit) { + histSettingLow--; } else { - histLow = histHigh - histStep; + histSettingLow=histSettingHigh-1; } - histLow = round2(histLow,2); + histLow = (float)histSettingLow/histSteps; PlayerChatHelper.SendInfo(aPlayer, "Hysteresis Low Changed to " + round(histLow * 100F) + "%"); } } -- cgit