diff --git a/core/apis/itemDB.lua b/core/apis/itemDB.lua index 2b6d67b..d486499 100644 --- a/core/apis/itemDB.lua +++ b/core/apis/itemDB.lua @@ -1,3 +1,4 @@ +local Map = require('map') local nameDB = require('core.nameDB') local TableDB = require('core.tableDB') local Util = require('util') @@ -158,17 +159,22 @@ function itemDB:add(baseItem) nItem.displayName = nItem.displayName .. v.fullName end - -- disks + -- turtles / computers / etc + elseif baseItem.computer then + -- a turtle's NBT is updated constantly + -- update the cache with the new NBT + if baseItem.computer.id then + Map.removeMatches(self.data, { name = nItem.name, displayName = nItem.displayName }) + end + nItem.displayName = baseItem.computer.label or baseItem.displayName + + -- disks elseif baseItem.media then -- don't ignore nbt... as disks can be labeled if baseItem.media.recordTitle then nItem.displayName = nItem.displayName .. ': ' .. baseItem.media.recordTitle end - -- turtles / computers / etc - elseif baseItem.computer then - nItem.displayName = baseItem.computer.label or baseItem.displayName - -- potions elseif nItem.name == 'minecraft:potion' or nItem.name == 'minecraft:lingering_potion' then if baseItem.effects then diff --git a/milo/core/machines.lua b/milo/core/machines.lua index 6bdc396..17c0fc6 100644 --- a/milo/core/machines.lua +++ b/milo/core/machines.lua @@ -1,5 +1,6 @@ local Event = require('event') local itemDB = require('core.itemDB') +local Map = require('map') local Milo = require('milo') local UI = require('ui') local Util = require('util') @@ -201,7 +202,7 @@ nodeWizard = UI.Page { [1] = UI.TextEntry { formLabel = 'Name', formKey = 'displayName', help = 'Set a friendly name', - limit = 64, pruneEmpty = true, + limit = 64, }, [2] = UI.Chooser { width = 25, @@ -474,7 +475,7 @@ function nodeWizard:eventHandler(event) local adapter = self.node.adapter self.node.adapter = nil - Util.prune(self.node, function(v) + Map.prune(self.node, function(v) if type(v) == 'boolean' then return v elseif type(v) == 'string' then diff --git a/milo/plugins/item/manageTab.lua b/milo/plugins/item/manageTab.lua index 999c0b3..097c998 100644 --- a/milo/plugins/item/manageTab.lua +++ b/milo/plugins/item/manageTab.lua @@ -1,4 +1,5 @@ local itemDB = require('core.itemDB') +local Map = require('map') local Milo = require('milo') local UI = require('ui') local Util = require('util') @@ -64,7 +65,7 @@ function manageTab:eventHandler(event) end self.res.displayName = nil - Util.prune(self.res, function(v) + Map.prune(self.res, function(v) if type(v) == 'boolean' then return v elseif type(v) == 'string' then