56 lines
1.8 KiB
Lua
56 lines
1.8 KiB
Lua
-- user options
|
|
local options = {
|
|
port = 'inductionPort',
|
|
name = 'Induction Matrix',
|
|
compact = true,
|
|
channels = 10,
|
|
timeout = 15,
|
|
unit = 'FE'
|
|
}
|
|
|
|
-- initialize client library
|
|
dofile('inputClient.lua')
|
|
|
|
-- mekanismEnergyHelper conversion function
|
|
-- this gets a pre-made function to convert joules (input values) to provided options.unit
|
|
local convert_joules = set_converter(options)
|
|
|
|
-- generate induction matrix values
|
|
function generate_message(width, component, buffer)
|
|
-- read induction matrix values
|
|
local p_raw = component.getEnergyFilledPercentage()
|
|
local c_raw = component.getEnergy()
|
|
local m_raw = component.getMaxEnergy()
|
|
local i_raw = component.getLastInput()
|
|
local o_raw = component.getLastOutput()
|
|
local t_raw = component.getTransferCap()
|
|
|
|
-- convert raw values from joules to specified options.unit
|
|
local c_conv = convert_joules(c_raw)
|
|
local m_conv = convert_joules(m_raw)
|
|
local i_conv = convert_joules(i_raw)
|
|
local o_conv = convert_joules(o_raw)
|
|
local t_conv = convert_joules(t_raw)
|
|
|
|
-- format and align fill values
|
|
message_aligned(buffer, 'Fill....:', format_percent(options, p_raw), width)
|
|
message_aligned(buffer, 'Fill....:', format_energy(options, c_conv), width)
|
|
|
|
-- format and align capacity
|
|
message(buffer, '\n')
|
|
message_aligned(buffer, 'Capacity:', format_energy(options, m_conv), width)
|
|
|
|
-- format and align i/o values
|
|
message(buffer, '\n') message(buffer, '\n')
|
|
message_aligned(buffer, 'Input...:', format_energy(options, i_conv, true), width)
|
|
message_aligned(buffer, 'Output..:', format_energy(options, o_conv, true), width)
|
|
|
|
-- format and align transfer
|
|
message(buffer, '\n')
|
|
message_aligned(buffer, 'Transfer:', format_energy(options, t_conv, true), width)
|
|
end
|
|
|
|
-- run main program
|
|
run_client(options, {
|
|
print = generate_message
|
|
}) |