From 417c43489bfc42a0c4a2ac1e0d6edd5fc5db13d1 Mon Sep 17 00:00:00 2001 From: LemADEC Date: Tue, 30 May 2017 14:34:13 +0200 Subject: [PATCH] Fixed reactor ratings not showing Added more fault tolerance to common library format_xxx() methods --- .../energy/TileEntityEnanReactorCore.java | 10 ++--- .../lua.ComputerCraft/common/warpdriveCommons | 39 +++++++++++++------ .../warpdriveEnanReactorCore/startup | 6 +-- .../common/usr/lib/warpdriveCommons.lua | 39 +++++++++++++------ .../warpdriveEnanReactorCore/startup | 6 +-- 5 files changed, 67 insertions(+), 33 deletions(-) diff --git a/src/main/java/cr0s/warpdrive/block/energy/TileEntityEnanReactorCore.java b/src/main/java/cr0s/warpdrive/block/energy/TileEntityEnanReactorCore.java index 7c31f135..4c268946 100644 --- a/src/main/java/cr0s/warpdrive/block/energy/TileEntityEnanReactorCore.java +++ b/src/main/java/cr0s/warpdrive/block/energy/TileEntityEnanReactorCore.java @@ -48,8 +48,8 @@ public class TileEntityEnanReactorCore extends TileEntityAbstractEnergy implemen private float lasersReceived = 0; private int lastGenerationRate = 0; private int releasedThisTick = 0; // amount of energy released during current tick update - private int releasedThisCycle = 0; // amount of energy released during current cycle - private int releasedLastCycle = 0; + private long releasedThisCycle = 0; // amount of energy released during current cycle + private long releasedLastCycle = 0; private boolean hold = true; // hold updates and power output until reactor is controlled (i.e. don't explode on chunk-loading while computer is booting) private boolean isEnabled = false; @@ -89,7 +89,7 @@ public class TileEntityEnanReactorCore extends TileEntityAbstractEnergy implemen double amountToIncrease = WarpDriveConfig.ENAN_REACTOR_UPDATE_INTERVAL_TICKS * Math.max(PR_MIN_INSTABILITY, PR_MAX_INSTABILITY * Math.pow((worldObj.rand.nextDouble() * containedEnergy) / WarpDriveConfig.ENAN_REACTOR_MAX_ENERGY_STORED, 0.1)); if (WarpDriveConfig.LOGGING_ENERGY) { - WarpDrive.logger.info("InsInc" + amountToIncrease); + WarpDrive.logger.info(String.format("increaseInstability %.5f", amountToIncrease)); } instabilityValues[side] += amountToIncrease * (isNatural ? 1.0D : 0.25D); } else { @@ -179,8 +179,8 @@ public class TileEntityEnanReactorCore extends TileEntityAbstractEnergy implemen } if (WarpDriveConfig.LOGGING_ENERGY) { - WarpDrive.logger.info("tickCount " + tickCount + " releasedThisTick " + releasedThisTick + " lasersReceived " + lasersReceived - + " releasedThisCycle " + releasedThisCycle + " containedEnergy " + containedEnergy); + WarpDrive.logger.info(String.format("tickCount %d releasedThisTick %6d lasersReceived %.5f releasedThisCycle %6d containedEnergy %8d", + tickCount, releasedThisTick, lasersReceived, releasedThisCycle, containedEnergy)); } releasedThisTick = 0; diff --git a/src/main/resources/assets/warpdrive/lua.ComputerCraft/common/warpdriveCommons b/src/main/resources/assets/warpdrive/lua.ComputerCraft/common/warpdriveCommons index 1a59e173..f16c93c0 100644 --- a/src/main/resources/assets/warpdrive/lua.ComputerCraft/common/warpdriveCommons +++ b/src/main/resources/assets/warpdrive/lua.ComputerCraft/common/warpdriveCommons @@ -350,7 +350,11 @@ end local function format_float(value, nbchar) local str = "?" if value ~= nil then - str = string.format("%g", value) + if type(value) == "number" then + str = string.format("%g", value) + else + str = type(value) + end end if nbchar ~= nil then str = string.sub(" " .. str, -nbchar) @@ -361,7 +365,11 @@ end local function format_integer(value, nbchar) local str = "?" if value ~= nil then - str = string.format("%d", value) + if type(value) == "number" then + str = string.format("%d", value) + else + str = type(value) + end end if nbchar ~= nil then str = string.sub(" " .. str, -nbchar) @@ -371,10 +379,14 @@ end local function format_boolean(value, strTrue, strFalse) if value ~= nil then - if value then - return strTrue + if type(value) == "boolean" then + if value then + return strTrue + else + return strFalse + end else - return strFalse + return type(value) end end return "?" @@ -421,6 +433,7 @@ local function input_readNumber(currentValue) if firstParam == nil then firstParam = "none" end if eventName == "key" then local keycode = params[2] + if keycode >= 2 and keycode <= 10 then -- 1 to 9 input = input .. string.format(keycode - 1) ignoreNextChar = true @@ -487,7 +500,7 @@ local function input_readNumber(currentValue) inputAbort = true else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end @@ -523,6 +536,7 @@ local function input_readText(currentValue) if firstParam == nil then firstParam = "none" end if eventName == "key" then local keycode = params[2] + if keycode == 14 then -- Backspace input = string.sub(input, 1, string.len(input) - 1) ignoreNextChar = true @@ -552,7 +566,7 @@ local function input_readText(currentValue) inputAbort = true else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end @@ -579,6 +593,7 @@ local function input_readConfirmation(message) if firstParam == nil then firstParam = "none" end if eventName == "key" then local keycode = params[2] + if keycode == 28 then -- Return or Enter w.status_clear() return true @@ -597,9 +612,9 @@ local function input_readConfirmation(message) return false else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then - w.status_showWarning("Event '" .. eventName .. "', " .. params[2] .. " is unsupported") + w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end end if not w.status_isActive() then @@ -661,6 +676,7 @@ local function input_readEnum(currentValue, list, toValue, toDescription, noValu if firstParam == nil then firstParam = "none" end if eventName == "key" then local keycode = params[2] + if keycode == 14 or keycode == 211 then -- Backspace or Delete inputKey = nil ignoreNextChar = true @@ -710,7 +726,7 @@ local function input_readEnum(currentValue, list, toValue, toDescription, noValu elseif eventName == "terminate" then inputAbort = true - elseif not w.event_handler(eventName, params[2]) then + elseif not w.event_handler(eventName, firstParam) then w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end until inputAbort @@ -1068,6 +1084,7 @@ local function run() if eventName == "key" then local keycode = params[2] + ignoreNextChar = false if keycode == 11 or keycode == 82 then -- 0 if selectPage('0') then @@ -1130,7 +1147,7 @@ local function run() abort = true else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end diff --git a/src/main/resources/assets/warpdrive/lua.ComputerCraft/warpdriveEnanReactorCore/startup b/src/main/resources/assets/warpdrive/lua.ComputerCraft/warpdriveEnanReactorCore/startup index 80ab5d9e..3261bef3 100644 --- a/src/main/resources/assets/warpdrive/lua.ComputerCraft/warpdriveEnanReactorCore/startup +++ b/src/main/resources/assets/warpdrive/lua.ComputerCraft/warpdriveEnanReactorCore/startup @@ -355,9 +355,9 @@ function reactor_register() w.device_register("warpdriveEnanReactorLaser", function(deviceType, address, wrap) table.insert(reactorlasers, { side = wrap.side(), wrap = wrap }) end, function() end) - w.event_register("reactorPulse" , function() reactor_pulse(param) return false end ) - w.event_register("reactorDeactivation", function() w.status_showWarning("Reactor deactivated") return false end ) - w.event_register("reactorActivation" , function() w.status_showWarning("Reactor activated") return false end ) + w.event_register("reactorPulse" , function(eventName, param) reactor_pulse(param) return false end ) + w.event_register("reactorDeactivation", function( ) w.status_showWarning("Reactor deactivated") return false end ) + w.event_register("reactorActivation" , function( ) w.status_showWarning("Reactor activated") return false end ) w.data_register("reactor", reactor_read, nil) end diff --git a/src/main/resources/assets/warpdrive/lua.OpenComputers/common/usr/lib/warpdriveCommons.lua b/src/main/resources/assets/warpdrive/lua.OpenComputers/common/usr/lib/warpdriveCommons.lua index 21df7755..f017a07c 100644 --- a/src/main/resources/assets/warpdrive/lua.OpenComputers/common/usr/lib/warpdriveCommons.lua +++ b/src/main/resources/assets/warpdrive/lua.OpenComputers/common/usr/lib/warpdriveCommons.lua @@ -358,7 +358,11 @@ end local function format_float(value, nbchar) local str = "?" if value ~= nil then - str = string.format("%g", value) + if type(value) == "number" then + str = string.format("%g", value) + else + str = type(value) + end end if nbchar ~= nil then str = string.sub(" " .. str, -nbchar) @@ -369,7 +373,11 @@ end local function format_integer(value, nbchar) local str = "?" if value ~= nil then - str = string.format("%d", value) + if type(value) == "number" then + str = string.format("%d", value) + else + str = type(value) + end end if nbchar ~= nil then str = string.sub(" " .. str, -nbchar) @@ -379,10 +387,14 @@ end local function format_boolean(value, strTrue, strFalse) if value ~= nil then - if value then - return strTrue + if type(value) == "boolean" then + if value then + return strTrue + else + return strFalse + end else - return strFalse + return type(value) end end return "?" @@ -497,7 +509,7 @@ local function input_readNumber(currentValue) inputAbort = true else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then w.status_showWarning("Event '" .. eventName .. "', " .. address .. " , " .. firstParam .. " is unsupported") end @@ -536,6 +548,7 @@ local function input_readText(currentValue) if eventName == "key_down" then local character = string.char(params[3]) local keycode = params[4] + if keycode == 14 then -- Backspace input = string.sub(input, 1, string.len(input) - 1) ignoreNextChar = true @@ -563,7 +576,7 @@ local function input_readText(currentValue) inputAbort = true else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then w.status_showWarning("Event '" .. eventName .. "', " .. address .. ", " .. firstParam .. " is unsupported") end @@ -593,6 +606,7 @@ local function input_readConfirmation(message) if eventName == "key_down" then local character = string.char(params[3]) local keycode = params[4] + if keycode == 28 then -- Return or Enter w.status_clear() return true @@ -609,9 +623,9 @@ local function input_readConfirmation(message) return false else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then - w.status_showWarning("Event '" .. eventName .. "', " .. params[2] .. " is unsupported") + w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end end if not w.status_isActive() then @@ -676,6 +690,7 @@ local function input_readEnum(currentValue, list, toValue, toDescription, noValu if eventName == "key_down" then local character = string.char(params[3]) local keycode = params[4] + if keycode == 14 or keycode == 211 then -- Backspace or Delete inputKey = nil ignoreNextChar = true @@ -723,7 +738,7 @@ local function input_readEnum(currentValue, list, toValue, toDescription, noValu elseif eventName == "interrupted" then inputAbort = true - elseif not w.event_handler(eventName, params[2]) then + elseif not w.event_handler(eventName, firstParam) then w.status_showWarning("Event '" .. eventName .. "', " .. address .. ", " .. firstParam .. " is unsupported") end until inputAbort @@ -793,6 +808,7 @@ local function event_handler(eventName, param) elseif eventName == "component_unavailable" then -- not supported: task_complete, rednet_message, modem_message elseif event_handlers[eventName] ~= nil then + w.status_showSuccess("param '" .. param .. "' of type " .. type(param)) needRedraw = event_handlers[eventName](eventName, param) else return false, needRedraw @@ -1044,6 +1060,7 @@ local function run() if eventName == "key_down" then local character = string.char(params[3]) local keycode = params[4] + ignoreNextChar = false if keycode == 11 or keycode == 82 then -- 0 if selectPage('0') then @@ -1102,7 +1119,7 @@ local function run() abort = true else - local isSupported, needRedraw = w.event_handler(eventName, params[2]) + local isSupported, needRedraw = w.event_handler(eventName, firstParam) if not isSupported then w.status_showWarning("Event '" .. eventName .. "', " .. firstParam .. " is unsupported") end diff --git a/src/main/resources/assets/warpdrive/lua.OpenComputers/warpdriveEnanReactorCore/startup b/src/main/resources/assets/warpdrive/lua.OpenComputers/warpdriveEnanReactorCore/startup index 824431d3..1f041c7b 100644 --- a/src/main/resources/assets/warpdrive/lua.OpenComputers/warpdriveEnanReactorCore/startup +++ b/src/main/resources/assets/warpdrive/lua.OpenComputers/warpdriveEnanReactorCore/startup @@ -360,9 +360,9 @@ function reactor_register() w.device_register("warpdriveEnanReactorLaser", function(deviceType, address, wrap) table.insert(reactorlasers, { side = wrap.side(), wrap = wrap }) end, function() end) - w.event_register("reactorPulse" , function() reactor_pulse(param) return false end ) - w.event_register("reactorDeactivation", function() w.status_showWarning("Reactor deactivated") return false end ) - w.event_register("reactorActivation" , function() w.status_showWarning("Reactor activated") return false end ) + w.event_register("reactorPulse" , function(eventName, param) reactor_pulse(param) return false end ) + w.event_register("reactorDeactivation", function( ) w.status_showWarning("Reactor deactivated") return false end ) + w.event_register("reactorActivation" , function( ) w.status_showWarning("Reactor activated") return false end ) w.data_register("reactor", reactor_read, nil) end