basic entity api

This commit is contained in:
BlackMATov
2024-12-12 13:23:59 +07:00
parent a872c64bd6
commit 6bd2dc727f
2 changed files with 80 additions and 0 deletions

View File

@@ -1,3 +1,18 @@
# evolved.lua
```
id :: id
alive :: id -> boolean
destroy :: id -> ()
get :: entity, fragment... -> component...
has :: entity, fragment -> boolean
has_all :: entity, fragment... -> boolean
has_any :: entity, fragment... -> boolean
set :: entity, fragment, component -> ()
assign :: entity, fragment, component -> boolean
insert :: entity, fragment, component -> boolean
remove :: entity, fragment... -> ()
clear :: entity -> ()
```
## [License (MIT)](./LICENSE.md)

View File

@@ -1,4 +1,69 @@
---@class evolved
local evolved = {}
---@alias evolved.id integer
---@alias evolved.entity evolved.id
---@alias evolved.fragment evolved.id
---@alias evolved.component any
---@return evolved.id
---@nodiscard
function evolved.id() end
---@param id evolved.id
---@return boolean
---@nodiscard
function evolved.alive(id) end
---@param id evolved.id
function evolved.destroy(id) end
---@param entity evolved.entity
---@param ... evolved.fragment fragments
---@return evolved.component ... components
---@nodiscard
function evolved.get(entity, ...) end
---@param entity evolved.entity
---@param fragment evolved.fragment
---@return boolean
---@nodiscard
function evolved.has(entity, fragment) end
---@param entity evolved.entity
---@param ... evolved.fragment fragments
---@return boolean
---@nodiscard
function evolved.has_all(entity, ...) end
---@param entity evolved.entity
---@param ... evolved.fragment fragments
---@return boolean
---@nodiscard
function evolved.has_any(entity, ...) end
---@param entity evolved.entity
---@param fragment evolved.fragment
---@param component evolved.component
function evolved.set(entity, fragment, component) end
---@param entity evolved.entity
---@param fragment evolved.fragment
---@param component evolved.component
---@return boolean is_assigned
function evolved.assign(entity, fragment, component) end
---@param entity evolved.entity
---@param fragment evolved.fragment
---@param component evolved.component
---@return boolean is_inserted
function evolved.insert(entity, fragment, component) end
---@param entity evolved.entity
---@param ... evolved.fragment fragments
function evolved.remove(entity, ...) end
---@param entity evolved.entity
function evolved.clear(entity) end
return evolved