cleanup itemdb for ever changing nbt hashes for turtles

This commit is contained in:
kepler155c@gmail.com
2019-02-25 09:02:01 -05:00
parent d62d9fe729
commit 4303aeb1f8
3 changed files with 16 additions and 8 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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