non-global clipboard, ad hoc crafting

This commit is contained in:
kepler155c
2017-10-14 03:39:47 -04:00
parent 3734afed92
commit 1f31f7ef40
3 changed files with 208 additions and 183 deletions

View File

@@ -675,7 +675,7 @@ function listingPage:eventHandler(event)
UI:setPage('learn')
elseif event.type == 'craft' then
UI:setPage('craft')
UI:setPage('craft', self.grid:getSelected())
elseif event.type == 'forget' then
local item = self.grid:getSelected()
@@ -850,7 +850,7 @@ end
local craftPage = UI.Dialog {
height = 6, width = UI.term.width - 10,
title = 'Enter amount to craft',
idField = UI.TextEntry {
count = UI.TextEntry {
x = 15,
y = 3,
width = 10,
@@ -874,7 +874,8 @@ function craftPage:draw()
self:write(6, 3, 'Quantity')
end
function craftPage:enable()
function craftPage:enable(item)
self.item = item
craftingPaused = true
self:focusFirst()
UI.Dialog.enable(self)
@@ -888,7 +889,15 @@ end
function craftPage:eventHandler(event)
if event.type == 'cancel' then
UI:setPreviousPage()
--elseif event.type == 'accept' then
elseif event.type == 'accept' then
local key = uniqueKey(self.item)
local craftList = { }
craftList[key] = Util.shallowCopy(self.item)
craftList[key].count = tonumber(self.count.value)
craftingPaused = false
craftItems(craftList, inventoryAdapter:listItems())
UI:setPreviousPage()
else
return UI.Dialog.eventHandler(self, event)
end