54 lines
1.1 KiB
Lua
54 lines
1.1 KiB
Lua
local class = require('opus.class')
|
|
local itemDB = require('core.itemDB')
|
|
local Mini = require('milo.miniAdapter')
|
|
|
|
local os = _G.os
|
|
|
|
local Adapter = class(Mini)
|
|
|
|
function Adapter:init(args)
|
|
Mini.init(self, args)
|
|
|
|
self._rawList = self.list
|
|
|
|
function self.list()
|
|
-- wait for up to 1 sec until any items that have been inserted
|
|
-- into interface are added to the system
|
|
for _ = 0, 20 do
|
|
if #self._rawList() == 0 then
|
|
break
|
|
end
|
|
os.sleep(0)
|
|
end
|
|
|
|
local list = { }
|
|
for _, v in pairs(self.listAvailableItems()) do
|
|
list[itemDB:makeKey(v)] = v
|
|
end
|
|
return list
|
|
end
|
|
|
|
function self.getItemMeta(key)
|
|
local item = self.findItem(itemDB:splitKey(key))
|
|
if item and item.getMetadata then
|
|
return item.getMetadata()
|
|
end
|
|
end
|
|
|
|
function self.pushItems(target, key, amount, slot)
|
|
local item = self.findItem(itemDB:splitKey(key))
|
|
if item and item.export then
|
|
return item.export(target, amount, slot)
|
|
end
|
|
return 0
|
|
end
|
|
|
|
function self.pullItems(target, key, amount, slot)
|
|
_G._syslog({target, key, amount, slot })
|
|
return 0
|
|
end
|
|
|
|
end
|
|
|
|
return Adapter
|