Update inspector
mod to current.
This commit is contained in:
parent
f957f1cab9
commit
b5eca5eb52
@ -18,30 +18,51 @@ local function dehash_vector(s)
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local indent_string = " "
|
||||||
|
|
||||||
|
local function indent(level, text, emphasize)
|
||||||
|
local result = text
|
||||||
|
for i = 1, level do
|
||||||
|
if emphasize then
|
||||||
|
result = "-> " .. string.gsub(result, "\n", "\n" .. indent_string)
|
||||||
|
else
|
||||||
|
result = indent_string .. string.gsub(result, "\n", "\n" .. indent_string)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
local function adjusted_dump(o)
|
||||||
|
local result = dump(o, indent_string)
|
||||||
|
if result == "{\n" .. indent_string .. "\n}" then result = "{}" end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
local function inspect_pos(pos)
|
local function inspect_pos(pos)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local desc = "===== node data =====\n"
|
local desc = "===== node data =====\n"
|
||||||
desc = desc .. "name = " .. node.name .. "\n"
|
desc = desc .. indent(1, "name = " .. node.name) .. "\n"
|
||||||
desc = desc .. "param1 = " .. node.param1 .. "\n"
|
desc = desc .. indent(1, "param1 = " .. node.param1) .. "\n"
|
||||||
desc = desc .. "param2 = " .. node.param2 .. "\n"
|
desc = desc .. indent(1, "param2 = " .. node.param2) .. "\n"
|
||||||
local light = minetest.get_node_light({x = pos.x, y = pos.y + 1, z = pos.x}, nil)
|
local light = minetest.get_node_light({x = pos.x, y = pos.y + 1, z = pos.z}, nil)
|
||||||
if light then
|
if light then
|
||||||
desc = desc .. "light = " .. light .. "\n"
|
desc = desc .. indent(1, "light = " .. light) .. "\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = minetest.get_node_timer(pos)
|
||||||
if timer:get_timeout() ~= 0 then
|
if timer:get_timeout() ~= 0 then
|
||||||
desc = desc .. "==== node timer ====\n"
|
desc = desc .. "==== node timer ====\n"
|
||||||
desc = desc .. "timeout = " .. timer:get_timeout() .. "\n"
|
desc = desc .. indent(1, "timeout = " .. timer:get_timeout()) .. "\n"
|
||||||
desc = desc .. "elapsed = " .. timer:get_elapsed() .. "\n"
|
desc = desc .. indent(1, "elapsed = " .. timer:get_elapsed()) .. "\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
local nodedef = minetest.registered_items[node.name]
|
local nodedef = minetest.registered_items[node.name]
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local table = meta:to_table()
|
local metatable = meta:to_table()
|
||||||
if table.fields.offsets then
|
|
||||||
local offsets = minetest.deserialize(table.fields.offsets)
|
if metatable.fields.offsets then
|
||||||
table.fields.offsets = nil
|
local offsets = minetest.deserialize(metatable.fields.offsets)
|
||||||
|
metatable.fields.offsets = nil
|
||||||
desc = desc .. "==== triggers ====\n"
|
desc = desc .. "==== triggers ====\n"
|
||||||
for so, _ in pairs(offsets) do
|
for so, _ in pairs(offsets) do
|
||||||
local off = dehash_vector(so)
|
local off = dehash_vector(so)
|
||||||
@ -52,9 +73,9 @@ local function inspect_pos(pos)
|
|||||||
end
|
end
|
||||||
desc = desc .. "\n"
|
desc = desc .. "\n"
|
||||||
end
|
end
|
||||||
if table.fields.roffsets then
|
if metatable.fields.roffsets then
|
||||||
local roffsets = minetest.deserialize(table.fields.roffsets)
|
local roffsets = minetest.deserialize(metatable.fields.roffsets)
|
||||||
table.fields.roffsets = nil
|
metatable.fields.roffsets = nil
|
||||||
desc = desc .. "==== triggered by ====\n"
|
desc = desc .. "==== triggered by ====\n"
|
||||||
for so, _ in pairs(roffsets) do
|
for so, _ in pairs(roffsets) do
|
||||||
local off = dehash_vector(so)
|
local off = dehash_vector(so)
|
||||||
@ -66,26 +87,42 @@ local function inspect_pos(pos)
|
|||||||
desc = desc .. "\n"
|
desc = desc .. "\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
local fields = minetest.serialize(table.fields)
|
|
||||||
desc = desc .. "==== meta ====\n"
|
desc = desc .. "==== meta ====\n"
|
||||||
desc = desc .. "meta.fields = " .. fields .. "\n"
|
desc = desc .. indent(1, "meta.fields = " .. adjusted_dump(metatable.fields)) .. "\n"
|
||||||
desc = desc .. "\n"
|
|
||||||
local inventory = meta:get_inventory()
|
local inventory = meta:get_inventory()
|
||||||
desc = desc .. "meta.inventory = \n"
|
desc = desc .. indent(1, "meta.inventory = ") .. "\n"
|
||||||
for key, list in pairs(inventory:get_lists()) do
|
for key, list in pairs(inventory:get_lists()) do
|
||||||
desc = desc .. key .. " : \n"
|
desc = desc .. indent(2, key .. " : ") .. "\n"
|
||||||
local size = #list
|
local size = #list
|
||||||
for i = 1, size do
|
for i = 1, size do
|
||||||
local stack = list[i]
|
local stack = list[i]
|
||||||
if not stack:is_empty() then
|
if not stack:is_empty() then
|
||||||
desc = desc .. "\"" .. stack:get_name() .. "\" - " .. stack:get_count() .. "\n"
|
desc = desc .. indent(3, "\"" .. stack:get_name() .. "\" - " .. stack:get_count()) .. "\n"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if nodedef then -- Some built in nodes have no nodedef
|
if nodedef then -- Some built in nodes have no nodedef
|
||||||
|
|
||||||
|
-- combine nodedef table with its "superclass" table
|
||||||
|
local combined_fields = {}
|
||||||
|
local nodedef_fields = {}
|
||||||
|
for key, value in pairs(getmetatable(nodedef).__index) do combined_fields[key] = value end
|
||||||
|
for key, value in pairs(nodedef) do
|
||||||
|
nodedef_fields[key] = true
|
||||||
|
if combined_fields[key] == nil then combined_fields[key] = value end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- sort
|
||||||
|
local key_list = {}
|
||||||
|
for key, _ in pairs(combined_fields) do table.insert(key_list, key) end
|
||||||
|
table.sort(key_list)
|
||||||
|
|
||||||
desc = desc .. "==== nodedef ====\n"
|
desc = desc .. "==== nodedef ====\n"
|
||||||
desc = desc .. dump(nodedef) .. "\n"
|
for _, key in ipairs(key_list) do
|
||||||
|
desc = desc .. indent(1, key .. " = " .. adjusted_dump(nodedef[key]), nodedef_fields[key]) .. "\n"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return desc
|
return desc
|
||||||
|
@ -1 +1,3 @@
|
|||||||
name = inspector
|
name = inspector
|
||||||
|
description = An in-game tool to inspect node parameters and metadata.
|
||||||
|
depends = fsc,boxes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user