diff --git a/res/content/base/config/user-props.toml b/res/content/base/config/user-props.toml new file mode 100644 index 00000000..b7306ba1 --- /dev/null +++ b/res/content/base/config/user-props.toml @@ -0,0 +1 @@ +"base:durability" = {} diff --git a/res/scripts/post_content.lua b/res/scripts/post_content.lua index 3d1ffa33..56d66a5c 100644 --- a/res/scripts/post_content.lua +++ b/res/scripts/post_content.lua @@ -1,4 +1,19 @@ -function make_read_only(t) +local user_props = file.read_combined_object("config/user-props.toml") +local names = {} +for name, _ in pairs(user_props) do + table.insert(names, name) +end +-- remove undefined properties +for id, blockprops in pairs(block.properties) do + for propname, value in pairs(blockprops) do + if propname:find(':') and not table.has(names, propname) then + print("erase property", propname) + blockprops[propname] = nil + end + end +end + +local function make_read_only(t) setmetatable(t, { __newindex = function() error("table is read-only")