diff --git a/README.md b/README.md index 2551797..adc1ef9 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ registry.get_or -> entity -> entity -> any -> (any) registry.has -> entity -> entity -> (boolean) registry.has_all -> entity -> entity... -> (boolean) registry.has_any -> entity -> entity... -> (boolean) -registry.assign -> entity -> entity -> any -> () +registry.assign -> entity -> entity -> any -> (boolean) registry.insert -> entity -> entity -> any -> (boolean) registry.remove -> entity -> entity... -> (boolean) registry.query -> entity -> entity... -> (query) @@ -54,7 +54,7 @@ entity:get_or -> entity -> any -> (any) entity:has -> entity -> (boolean) entity:has_all -> entity... -> (boolean) entity:has_any -> entity... -> (boolean) -entity:assign -> entity -> any -> () +entity:assign -> entity -> any -> (boolean) entity:insert -> entity -> any -> (boolean) entity:remove -> entity... -> (boolean) ``` diff --git a/develop/untests/registry_untests.lua b/develop/untests/registry_untests.lua index 000363d..a0d9753 100644 --- a/develop/untests/registry_untests.lua +++ b/develop/untests/registry_untests.lua @@ -57,9 +57,10 @@ do if not os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") then assert(not pcall(e.get, e, f)) - assert(not pcall(e.assign, e, f, 42)) end + assert(not e:assign(f, 42)) + assert(e:get_or(f) == nil) assert(e:get_or(f, 42) == 42) @@ -72,7 +73,7 @@ do assert(not e:insert(f, 42)) assert(e:get(f) == 42) - e:assign(f) + assert(e:assign(f)) assert(e:get(f) == true) e:assign(f, 21) diff --git a/evolved/registry.lua b/evolved/registry.lua index 2c648f9..8e94fe7 100644 --- a/evolved/registry.lua +++ b/evolved/registry.lua @@ -359,16 +359,15 @@ end ---@param entity evolved.entity ---@param fragment evolved.entity ---@param component any +---@return boolean is_assigned function registry.assign(entity, fragment, component) component = component == nil and true or component local chunk_components = entity.__chunk and entity.__chunk.__components[fragment] - - if chunk_components == nil then - error(string.format('entity %s does not have fragment %s', entity, fragment), 2) - end + if chunk_components == nil then return false end chunk_components[entity.__index_in_chunk] = component + return true end ---@param entity evolved.entity