TangentFox icon

Item counter (for minetest luacontroller)

TangentFox | PRO | 05/27/19 04:53:58 AM UTC | 0 ⭐ | 571 👁️ | Never ⏰ | []
Lua |

1.24 KB

|

None

|

0 👍

/

0 👎

-- mem.count: count per item type
-- mem.list: list of item types
-- mem.total: total number of items counted
local ControlPanel = "panel"
 
local send = function()
  local line = ""
  for i = 1, 5 do
    local name = mem.list[mem.pointer + i]
    if not name then break end
    line = line .. tostring(mem.count[name]) .. " " .. name .. "\n"
  end
  digiline_send(ControlPanel, line .. "Page: " .. tostring(math.floor(mem.pointer / 5)) .. "/" .. tostring(math.floor(#mem.list / 5)) .. "   Heat: " .. tostring(heat))
end
 
if event.type == "digiline" then
  local msg = event.msg
 
  if event.channel == "incoming" then
    if mem.count[msg] then
      mem.count[msg] = mem.count[msg] + 1
    else
      mem.count[msg] = 1
      table.insert(mem.list, msg)
    end
    mem.total = mem.total + 1
    send()
 
  elseif event.channel == ControlPanel then
    if msg == "up" then
      mem.pointer = math.max(mem.pointer - 1, 0)
      send()
    elseif msg == "down" then
      mem.pointer = math.min(mem.pointer + 1, #mem.list)
      send()
    end
 
  end
 
elseif event.type == "program" then
  mem.count = mem.count or {}
  mem.list = mem.list or {}
  mem.pointer = mem.pointer or 0
  mem.total = mem.total or 0
  send()
 
end

Comments