mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2026-03-22 12:55:31 +07:00
add component alias
This commit is contained in:
65
README.md
65
README.md
@@ -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`
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user