add component alias

This commit is contained in:
BlackMATov
2024-12-10 04:46:26 +07:00
parent 2270c55de4
commit 0dd1b71e69
5 changed files with 59 additions and 60 deletions

View File

@@ -4,9 +4,9 @@
```
defers.defer -> (defer)
defers.set -> defer -> entity -> entity -> any -> (defer)
defers.assign -> defer -> entity -> entity -> any -> (defer)
defers.insert -> defer -> entity -> entity -> any -> (defer)
defers.set -> defer -> entity -> entity -> component -> (defer)
defers.assign -> defer -> entity -> entity -> component -> (defer)
defers.insert -> defer -> entity -> entity -> component -> (defer)
defers.remove -> defer -> entity -> entity... -> (defer)
defers.detach -> defer -> entity -> (defer)
defers.destroy -> defer -> entity -> (defer)
@@ -16,9 +16,9 @@ defers.playback -> defer -> (defer)
### Instance `defer`
```
defer:set -> entity -> entity -> any -> (defer)
defer:assign -> entity -> entity -> any -> (defer)
defer:insert -> entity -> entity -> any -> (defer)
defer:set -> entity -> entity -> component -> (defer)
defer:assign -> entity -> entity -> component -> (defer)
defer:insert -> entity -> entity -> component -> (defer)
defer:remove -> entity -> entity... -> (defer)
defer:detach -> entity -> (defer)
defer:destroy -> entity -> (defer)
@@ -52,19 +52,19 @@ idpool:release -> id -> ()
registry.entity -> (entity)
registry.guid -> entity -> (id)
registry.alive -> entity -> (boolean)
registry.get -> entity -> entity... -> (any...)
registry.get -> entity -> entity... -> (component...)
registry.has -> entity -> entity -> (boolean)
registry.has_all -> entity -> entity... -> (boolean)
registry.has_any -> entity -> entity... -> (boolean)
registry.set -> entity -> entity -> any -> (entity)
registry.chunk_set -> chunk -> entity -> any -> (integer, integer)
registry.query_set -> query -> entity -> any -> (integer, integer)
registry.assign -> entity -> entity -> any -> (boolean)
registry.chunk_assign -> chunk -> entity -> any -> (integer)
registry.query_assign -> query -> entity -> any -> (integer)
registry.insert -> entity -> entity -> any -> (boolean)
registry.chunk_insert -> chunk -> entity -> any -> (integer)
registry.query_insert -> query -> entity -> any -> (integer)
registry.set -> entity -> entity -> component -> (entity)
registry.chunk_set -> chunk -> entity -> component -> (integer, integer)
registry.query_set -> query -> entity -> component -> (integer, integer)
registry.assign -> entity -> entity -> component -> (boolean)
registry.chunk_assign -> chunk -> entity -> component -> (integer)
registry.query_assign -> query -> entity -> component -> (integer)
registry.insert -> entity -> entity -> component -> (boolean)
registry.chunk_insert -> chunk -> entity -> component -> (integer)
registry.query_insert -> query -> entity -> component -> (integer)
registry.remove -> entity -> entity... -> (boolean)
registry.chunk_remove -> chunk -> entity... -> (integer)
registry.query_remove -> query -> entity... -> (integer)
@@ -80,7 +80,7 @@ registry.query_exclude -> query -> entity... -> query
registry.query_execute -> query -> ({execution_state? -> chunk?}, execution_state?)
registry.chunk -> entity -> entity... -> (chunk)
registry.chunk_entities -> chunk -> (entity[])
registry.chunk_components -> chunk -> entity... -> (any[]...)
registry.chunk_components -> chunk -> entity... -> (component[]...)
```
### Instance `entity`
@@ -88,14 +88,13 @@ registry.chunk_components -> chunk -> entity... -> (any[]...)
```
entity:guid -> (id)
entity:alive -> (boolean)
entity:get -> entity... -> (any...)
entity:get -> entity... -> (component...)
entity:has -> entity -> (boolean)
entity:has_all -> entity... -> (boolean)
entity:has_any -> entity... -> (boolean)
entity:set -> entity -> any -> (entity)
entity:assign -> entity -> any -> (boolean)
entity:insert -> entity -> any -> (boolean)
entity:set -> entity -> component -> (entity)
entity:assign -> entity -> component -> (boolean)
entity:insert -> entity -> component -> (boolean)
entity:remove -> entity... -> (boolean)
entity:detach -> (entity)
entity:destroy -> (entity)
@@ -104,13 +103,12 @@ entity:destroy -> (entity)
### Instance `query`
```
query:set -> entity -> any -> (integer, integer)
query:assign -> entity -> any -> (integer)
query:insert -> entity -> any -> (integer)
query:set -> entity -> component -> (integer, integer)
query:assign -> entity -> component -> (integer)
query:insert -> entity -> component -> (integer)
query:remove -> entity... -> (integer)
query:detach -> (integer)
query:destroy -> (integer)
query:include -> entity... -> query
query:exclude -> entity... -> query
query:execute -> ({execution_state? -> chunk?}, execution_state?)
@@ -119,24 +117,23 @@ query:execute -> ({execution_state? -> chunk?}, execution_state?)
### Instance `chunk`
```
chunk:set -> entity -> any -> (integer, integer)
chunk:assign -> entity -> any -> (integer)
chunk:insert -> entity -> any -> (integer)
chunk:set -> entity -> component -> (integer, integer)
chunk:assign -> entity -> component -> (integer)
chunk:insert -> entity -> component -> (integer)
chunk:remove -> entity... -> (integer)
chunk:detach -> (integer)
chunk:destroy -> (integer)
chunk:entities -> (entity[])
chunk:components -> entity... -> (any[]...)
chunk:components -> entity... -> (component[]...)
```
## Module `singles`
```
singles.single -> any -> (entity)
singles.set -> entity -> any -> (entity)
singles.get -> entity -> (any)
singles.single -> component -> (entity)
singles.get -> entity -> (component)
singles.has -> entity -> (boolean)
singles.set -> entity -> component -> (entity)
```
## Module `vectors`

View File

@@ -132,7 +132,7 @@ end)
---@param A evolved.query
---@param B evolved.query
common.describe('Entity Cycle (Simple)', function(a, b, A, B)
---@type any[]
---@type evolved.component[]
local to_create = {}
for chunk in A:execute() do
@@ -178,7 +178,7 @@ end)
---@param A evolved.query
---@param B evolved.query
common.describe('Entity Cycle (Batched)', function(a, b, A, B)
---@type any[]
---@type evolved.component[]
local to_create = {}
for chunk in A:execute() do

View File

@@ -96,7 +96,7 @@ end
---@param defer evolved.defer
---@param entity evolved.entity
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return evolved.defer
function defers.set(defer, entity, fragment, component)
local operations = defer.operations
@@ -114,7 +114,7 @@ end
---@param defer evolved.defer
---@param entity evolved.entity
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return evolved.defer
function defers.assign(defer, entity, fragment, component)
local operations = defer.operations
@@ -132,7 +132,7 @@ end
---@param defer evolved.defer
---@param entity evolved.entity
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return evolved.defer
function defers.insert(defer, entity, fragment, component)
local operations = defer.operations

View File

@@ -10,6 +10,8 @@ local registry = {}
---
---
---@alias evolved.component any
---@alias evolved.execution_stack evolved.chunk[]
---@alias evolved.execution_state [table<evolved.entity, boolean>, integer, evolved.execution_stack]
---@alias evolved.execution_iterator fun(execute_state: evolved.execution_state?): evolved.chunk?
@@ -53,7 +55,7 @@ evolved_query_mt.__index = evolved_query_mt
---@field package __fragment evolved.entity
---@field package __children evolved.chunk[]
---@field package __entities evolved.entity[]
---@field package __components table<evolved.entity, any[]>
---@field package __components table<evolved.entity, evolved.component[]>
---@field package __with_fragment_cache table<evolved.entity, evolved.chunk>
---@field package __without_fragment_cache table<evolved.entity, evolved.chunk>
@@ -450,7 +452,7 @@ end
---@param entity evolved.entity
---@param ... evolved.entity fragments
---@return any ... components
---@return evolved.component ... components
---@nodiscard
function registry.get(entity, ...)
local chunk = entity.__chunk
@@ -522,7 +524,7 @@ end
---@param entity evolved.entity
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return evolved.entity
function registry.set(entity, fragment, component)
component = component == nil and true or component
@@ -572,7 +574,7 @@ end
---@param chunk evolved.chunk
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return integer assigned_count
---@return integer inserted_count
function registry.chunk_set(chunk, fragment, component)
@@ -587,7 +589,7 @@ end
---@param query evolved.query
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return integer assigned_count
---@return integer inserted_count
function registry.query_set(query, fragment, component)
@@ -624,7 +626,7 @@ end
---@param entity evolved.entity
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return boolean is_assigned
function registry.assign(entity, fragment, component)
component = component == nil and true or component
@@ -648,7 +650,7 @@ end
---@param chunk evolved.chunk
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return integer assigned_count
function registry.chunk_assign(chunk, fragment, component)
component = component == nil and true or component
@@ -670,7 +672,7 @@ end
---@param query evolved.query
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return integer assigned_count
function registry.query_assign(query, fragment, component)
local chunks = __execution_stack_acquire()
@@ -692,7 +694,7 @@ end
---@param entity evolved.entity
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return boolean is_inserted
function registry.insert(entity, fragment, component)
component = component == nil and true or component
@@ -740,7 +742,7 @@ end
---@param chunk evolved.chunk
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return integer inserted_count
function registry.chunk_insert(chunk, fragment, component)
component = component == nil and true or component
@@ -818,7 +820,7 @@ end
---@param query evolved.query
---@param fragment evolved.entity
---@param component any
---@param component evolved.component
---@return integer inserted_count
function registry.query_insert(query, fragment, component)
local chunks = __execution_stack_acquire()
@@ -1282,7 +1284,7 @@ end
---@param chunk evolved.chunk
---@param ... evolved.entity fragments
---@return any[] ... components
---@return evolved.component[] ... components
---@nodiscard
function registry.chunk_components(chunk, ...)
local components = chunk.__components

View File

@@ -3,7 +3,7 @@ local registry = require 'evolved.registry'
---@class evolved.singles
local singles = {}
---@param component any
---@param component evolved.component
---@return evolved.entity
---@nodiscard
function singles.single(component)
@@ -12,14 +12,7 @@ function singles.single(component)
end
---@param single evolved.entity
---@param component any
---@return evolved.entity
function singles.set(single, component)
return single:set(single, component)
end
---@param single evolved.entity
---@return any
---@return evolved.component
---@nodiscard
function singles.get(single)
return single:get(single)
@@ -32,4 +25,11 @@ function singles.has(single)
return single:has(single)
end
---@param single evolved.entity
---@param component evolved.component
---@return evolved.entity
function singles.set(single, component)
return single:set(single, component)
end
return singles