library M initializer SetUpStrings
globals
private string COLOURED_STRING_1 = "|c0000ff00"
private string COLOURED_STRING_2 = "|cffffcc00"
private integer MAX_COUNT_COLOUR_2 = 2
private string COLOURED_STRING_3 = "|cFF2AB8FF"
private string COLOUR_CAP = "|r"
private integer STRING_LENGTH = 10
private string STRING_INDICATOR = "I"
endglobals
public function DISPLAY_MB_ITEM takes multiboard mb, integer WHICH_ROW, integer WHICH_COLUMN, integer VALUE, integer MAX_VALUE returns nothing
local multiboarditem boardItem = MultiboardGetItem( mb, WHICH_ROW, WHICH_COLUMN)
local integer VALUE_PER_INST = MAX_VALUE / STRING_LENGTH
local integer index = 1
local integer CURRENT_VALUE_INDEX = VALUE / VALUE_PER_INST
local integer CURRENT_VALUE_FULL = CURRENT_VALUE_INDEX - MAX_COUNT_COLOUR_2
local string RETURN_STRING = ""
/* ADJUST THE AMOUNT OF SEMI FULL VALUES TO MAKE IT MORE DYNAMIC
// debug adjusted values, if very low value, but not 0
if CURRENT_VALUE_FULL <= 0 and VALUE > 0 then
// set at least one instance to display full
set CURRENT_VALUE_FULL = 1
endif
*/
// find out, how much the value actually is, and adjust the output string to that
loop
exitwhen index > STRING_LENGTH // loop through every position in our string indicator
// if value is 0, then only display empty indicator
call BJDebugMsg("loop " + I2S(index))
if VALUE <= 0 then
set RETURN_STRING = RETURN_STRING + COLOURED_STRING_3
else
// if value is not max, assemble the string indicator
if VALUE < MAX_VALUE then
if index <= CURRENT_VALUE_FULL then
// display full value
set RETURN_STRING = RETURN_STRING + COLOURED_STRING_1
call BJDebugMsg("value full")
elseif index > CURRENT_VALUE_FULL and index <= CURRENT_VALUE_INDEX then
// display semi value
set RETURN_STRING = RETURN_STRING + COLOURED_STRING_2
call BJDebugMsg("value semi")
elseif index > CURRENT_VALUE_INDEX then
// display empty value
set RETURN_STRING = RETURN_STRING + COLOURED_STRING_3
call BJDebugMsg("value empty")
endif
else
// if value is max, display full string only
set RETURN_STRING = RETURN_STRING + COLOURED_STRING_1
call BJDebugMsg("value max")
endif
endif
call BJDebugMsg("String returned for: " + I2S(index) + " " + RETURN_STRING)
set index = index + 1
endloop
// display value at target item in mb
call MultiboardSetItemValue( boardItem, RETURN_STRING)
set RETURN_STRING = null
set boardItem = null
endfunction
function SetUpStrings takes nothing returns nothing
// assemble the indicator
set COLOURED_STRING_1 = COLOURED_STRING_1 + STRING_INDICATOR + COLOUR_CAP // full
set COLOURED_STRING_2 = COLOURED_STRING_2 + STRING_INDICATOR + COLOUR_CAP // semi
set COLOURED_STRING_3 = COLOURED_STRING_3 + STRING_INDICATOR + COLOUR_CAP // empty
endfunction
endlibrary