Skip to content

Commit

Permalink
Fix itemdef defaults not being applied in async env
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed Aug 14, 2023
1 parent f6bddc4 commit 43c9c38
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
5 changes: 5 additions & 0 deletions builtin/async/game.lua
Expand Up @@ -36,11 +36,16 @@ do
setmetatable(v, {__newindex = {}})
-- Reassemble the other tables
if v.type == "node" then
getmetatable(v).__index = all.nodedef_default
all.registered_nodes[k] = v
elseif v.type == "craft" then
getmetatable(v).__index = all.craftitemdef_default
all.registered_craftitems[k] = v
elseif v.type == "tool" then
getmetatable(v).__index = all.tooldef_default
all.registered_tools[k] = v
else
getmetatable(v).__index = all.noneitemdef_default
end
end

Expand Down
5 changes: 5 additions & 0 deletions builtin/game/misc.lua
Expand Up @@ -261,6 +261,11 @@ function core.get_globals_to_transfer()
local all = {
registered_items = copy_filtering(core.registered_items),
registered_aliases = core.registered_aliases,

nodedef_default = copy_filtering(core.nodedef_default),
craftitemdef_default = copy_filtering(core.craftitemdef_default),
tooldef_default = copy_filtering(core.tooldef_default),
noneitemdef_default = copy_filtering(core.noneitemdef_default),
}
return all
end
2 changes: 2 additions & 0 deletions games/devtest/mods/unittests/inside_async_env.lua
Expand Up @@ -19,6 +19,8 @@ local function do_tests()
-- alias handling
assert(core.registered_items["unittests:steel_ingot_alias"].name ==
"unittests:steel_ingot")
-- fallback to item defaults
assert(core.registered_items["unittests:description_test"].on_place == true)
end

function unittests.async_test()
Expand Down

0 comments on commit 43c9c38

Please sign in to comment.