milo: storefront wip
This commit is contained in:
@@ -7,17 +7,19 @@ local config = Config.load('store')
|
||||
|
||||
local storeTab = UI.Window {
|
||||
tabTitle = 'Store',
|
||||
index = 1,
|
||||
index = 6,
|
||||
form = UI.Form {
|
||||
x = 1, ex = -1, ey = -1,
|
||||
x = 2, ex = -2, y = 2, ey = -2,
|
||||
manualControls = true,
|
||||
[1] = UI.TextEntry {
|
||||
formLabel = 'Name', formKey = 'name',
|
||||
help = 'Unique name used when paying for an item',
|
||||
required = true,
|
||||
width = 16,
|
||||
limit = 64,
|
||||
},
|
||||
[2] = UI.TextEntry {
|
||||
width = 6,
|
||||
formLabel = 'Price', formKey = 'price',
|
||||
help = 'Per item cost',
|
||||
required = true,
|
||||
|
||||
@@ -6,7 +6,6 @@ local UI = require('ui')
|
||||
local Util = require('util')
|
||||
|
||||
local colors = _G.colors
|
||||
local context = Milo:getContext()
|
||||
local os = _G.os
|
||||
|
||||
local config = Config.load('store')
|
||||
@@ -127,16 +126,26 @@ Event.on('store_refresh', function()
|
||||
config = Config.load('store')
|
||||
end)
|
||||
|
||||
Event.on('store_provide', function(_, item, quantity)
|
||||
local count = 0
|
||||
local key = Util.find(config, 'name', item)
|
||||
if key then
|
||||
count = Milo:eject(itemDB:splitKey(item), quantity)
|
||||
end
|
||||
os.queueEvent('store_provided', item, count)
|
||||
end)
|
||||
|
||||
--[[ Task ]]--
|
||||
local StoreTask = {
|
||||
name = 'store',
|
||||
priority = 30,
|
||||
}
|
||||
|
||||
function StoreTask:cycle()
|
||||
function StoreTask:cycle(context)
|
||||
for node in context.storage:filterActive('store') do
|
||||
if not pages[node.name] then
|
||||
pages[node.name] = createPage(node)
|
||||
os.queueEvent('open_store', node.domain, node.password)
|
||||
end
|
||||
-- update the display
|
||||
pages[node.name]:update()
|
||||
|
||||
Reference in New Issue
Block a user