CCCPaste

app_energy_storage

-- Draconic Core Energy Reader app

-- IDs for buttons
local testBtnId = "test_energy_storage"

-- padding for top-left placement
local PADDING_X, PADDING_Y = 3, 4

-- state variables

-- views
local function rootView(ctx)
    return {
        draw = function(ctx, mon)
            local btnW, btnH = 12, 3
            local x, y = PADDING_X, PADDING_Y

            ctx.libs().button.addButton(x, y, btnW, btnH, testBtnId, colors.lime, colors.gray, true, "test", "", x + 2,
                y + 1,
                "")
            ctx.libs().button.drawButton(testBtnId, mon)
        end,
        touch = function(ctx, x, y)
            if ctx.libs().button.isWithinBoundingBox(x, y, testBtnId) then

            end
        end
    }
end

local views = {
    root = rootView
}

return {
    id = "energy_storage",
    name = "Core",
    protocol = "energy_storage",
    receive = function(ctx, sender, message) end,
    create = function(ctx) end,
    destroy = function(ctx) end,
    resume = function(ctx) end,
    suspend = function(ctx) end,
    update = function(ctx, dt) end,
    draw = function(ctx, mon, viewId)
        local v = views[viewId]
        if v and v(ctx).draw then v(ctx).draw(ctx, mon) end
    end,
    touch = function(ctx, x, y, viewId)
        local v = views[viewId]
        if v and v(ctx).touch then v(ctx).touch(ctx, x, y) end
    end
}