diff --git a/apps/Turtles.lua b/apps/Turtles.lua index f6212b9..d9c7d4d 100644 --- a/apps/Turtles.lua +++ b/apps/Turtles.lua @@ -3,6 +3,7 @@ local Event = require('event') local UI = require('ui') local Socket = require('socket') local Terminal = require('terminal') +local TableDB = require('tableDB') multishell.setTitle(multishell.getCurrent(), 'Turtles') UI.Button.defaults.focusIndicator = ' ' @@ -30,6 +31,12 @@ local policies = { { label = 'turtleSafe' }, } +local itemInfoDB = TableDB({ + fileName = 'items.db' +}) + +itemInfoDB:load() + local page = UI.Page { moveUp = UI.Button { x = 5, y = 2, @@ -179,7 +186,13 @@ function page.tabs.inventory:draw() v.selected = true end if v.id then - v.id = v.id:gsub('.*:(.*)', '%1') + local item = itemInfoDB:get({ v.id, v.dmg }) +debug(v) + if item then + v.id = item.displayName + else + v.id = v.id:gsub('.*:(.*)', '%1') + end end end end diff --git a/apps/itemsDB.lua b/apps/itemsDB.lua new file mode 100644 index 0000000..f35cafe --- /dev/null +++ b/apps/itemsDB.lua @@ -0,0 +1,41 @@ +local injector = requireInjector or load(http.get('http://pastebin.com/raw/c0TWsScv').readAll())() +require = injector(getfenv(1)) + +local RefinedProvider = require('refinedProvider') +local TableDB = require('tableDB') + +local controller = RefinedProvider() +if not controller:isValid() then + error('Refined storage controller not found') +end + +local itemInfoDB = TableDB({ + fileName = 'items.db' +}) + +itemInfoDB:load() + +local items = controller:listItems() + +local keys = { + 'fields', + 'damage', + 'displayName', + 'maxCount', + 'maxDamage', + 'name', + 'nbtHash', + 'rawName', +} + +for _, item in pairs(items) do + + local t = { } + for _,key in pairs(keys) do + t[key] = item[key] + end + + itemInfoDB:add({ item.name, item.damage, item.nbtHash }, t) +end + +itemInfoDB:flush()