From 21b7c7c3af13fd4bcea27c00a69b13d9bb89bb9f Mon Sep 17 00:00:00 2001 From: "kepler155c@gmail.com" Date: Fri, 11 Jan 2019 02:25:31 -0500 Subject: [PATCH] milo: storefront wip --- milo/plugins/item/storeTab.lua | 6 +++-- milo/plugins/storeView.lua | 13 ++++++++-- miners/blockMiner.lua | 45 ---------------------------------- 3 files changed, 15 insertions(+), 49 deletions(-) delete mode 100644 miners/blockMiner.lua diff --git a/milo/plugins/item/storeTab.lua b/milo/plugins/item/storeTab.lua index e11f225..03e193b 100644 --- a/milo/plugins/item/storeTab.lua +++ b/milo/plugins/item/storeTab.lua @@ -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, diff --git a/milo/plugins/storeView.lua b/milo/plugins/storeView.lua index 35a6b76..3ad411f 100644 --- a/milo/plugins/storeView.lua +++ b/milo/plugins/storeView.lua @@ -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() diff --git a/miners/blockMiner.lua b/miners/blockMiner.lua deleted file mode 100644 index b9ecaf3..0000000 --- a/miners/blockMiner.lua +++ /dev/null @@ -1,45 +0,0 @@ -local GPS = require("gps") -local Point = require("point") -local Util = require("util") - -local peripheral = _G.peripheral -local turtle = _G.turtle - -local args = {...} -local block = args[1] or error("Syntax: blockMiner [item name]") - -local function equip(side, item, rawName) - local equipped = Peripheral.lookup('side/' .. side) - - if equipped and equipped.type == item then - return true - end - - if not turtle.equip(side, rawName or item) then - if not turtle.selectSlotWithQuantity(0) then - error('No slots available') - end - turtle.equip(side) - if not turtle.equip(side, item) then - error('Unable to equip ' .. item) - end - end - - turtle.select(1) -end - -local function scan() - equip("left", "plethora:module:2") - return peripheral.call("left", "scan") -end - -if turtle.isEquipped("modem") ~= "right" then - equip("right", "computercraft:advanced_modem") -end - -local pt = GPS.getPoint(2) or error("GPS not found") -equip("left", "plethora:module") -local facing = peripheral.call("left", "getBlockMeta", 0, 0, 0).state.facing -pt.heading = Point.facings[facing].heading -turtle.setPoint(pt, true) -equip("left", "minecraft:diamond_pickaxe")