mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 12:19:47 +07:00
remove singles api
This commit is contained in:
@@ -99,9 +99,6 @@ process :: system... -> ()
|
|||||||
spawn :: <fragment, component>? -> entity
|
spawn :: <fragment, component>? -> entity
|
||||||
clone :: entity -> <fragment, component>? -> entity
|
clone :: entity -> <fragment, component>? -> entity
|
||||||
|
|
||||||
spawn_single :: component, <fragment, component>? -> entity
|
|
||||||
clone_single :: entity -> component -> <fragment, component>? -> entity
|
|
||||||
|
|
||||||
debug_mode :: boolean -> ()
|
debug_mode :: boolean -> ()
|
||||||
collect_garbage :: ()
|
collect_garbage :: ()
|
||||||
```
|
```
|
||||||
@@ -166,9 +163,6 @@ builder:destroy_policy :: id -> builder
|
|||||||
|
|
||||||
builder:spawn :: entity
|
builder:spawn :: entity
|
||||||
builder:clone :: entity -> entity
|
builder:clone :: entity -> entity
|
||||||
|
|
||||||
builder:spawn_single :: component -> entity
|
|
||||||
builder:clone_single :: entity -> component -> entity
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## [License (MIT)](./LICENSE.md)
|
## [License (MIT)](./LICENSE.md)
|
||||||
|
|||||||
@@ -17,6 +17,11 @@ local function vector2(x, y)
|
|||||||
return { x = x, y = y }
|
return { x = x, y = y }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local consts = {
|
||||||
|
delta_time = 0.016,
|
||||||
|
physics_gravity = vector2(0, 9.81),
|
||||||
|
}
|
||||||
|
|
||||||
local groups = {
|
local groups = {
|
||||||
awake = evo.spawn(),
|
awake = evo.spawn(),
|
||||||
physics = evo.spawn(),
|
physics = evo.spawn(),
|
||||||
@@ -24,11 +29,6 @@ local groups = {
|
|||||||
shutdown = evo.spawn(),
|
shutdown = evo.spawn(),
|
||||||
}
|
}
|
||||||
|
|
||||||
local singles = {
|
|
||||||
delta_time = evo.spawn_single(0.016),
|
|
||||||
physics_gravity = evo.spawn_single(vector2(0, 9.81)),
|
|
||||||
}
|
|
||||||
|
|
||||||
local fragments = {
|
local fragments = {
|
||||||
force = evo.spawn(),
|
force = evo.spawn(),
|
||||||
position = evo.spawn(),
|
position = evo.spawn(),
|
||||||
@@ -56,10 +56,8 @@ local integrate_forces_system = evo.builder()
|
|||||||
:group(groups.physics)
|
:group(groups.physics)
|
||||||
:query(queries.physics_bodies)
|
:query(queries.physics_bodies)
|
||||||
:execute(function(chunk, entities, entity_count)
|
:execute(function(chunk, entities, entity_count)
|
||||||
---@type number, evolved.vector2
|
|
||||||
local delta_time, physics_gravity =
|
local delta_time, physics_gravity =
|
||||||
evo.get(singles.delta_time, singles.delta_time),
|
consts.delta_time, consts.physics_gravity
|
||||||
evo.get(singles.physics_gravity, singles.physics_gravity)
|
|
||||||
|
|
||||||
---@type evolved.vector2[], evolved.vector2[]
|
---@type evolved.vector2[], evolved.vector2[]
|
||||||
local forces, velocities = chunk:components(
|
local forces, velocities = chunk:components(
|
||||||
@@ -77,9 +75,8 @@ local integrate_velocities_system = evo.builder()
|
|||||||
:group(groups.physics)
|
:group(groups.physics)
|
||||||
:query(queries.physics_bodies)
|
:query(queries.physics_bodies)
|
||||||
:execute(function(chunk, entities, entity_count)
|
:execute(function(chunk, entities, entity_count)
|
||||||
---@type number
|
|
||||||
local delta_time =
|
local delta_time =
|
||||||
evo.get(singles.delta_time, singles.delta_time)
|
consts.delta_time
|
||||||
|
|
||||||
---@type evolved.vector2[], evolved.vector2[], evolved.vector2[]
|
---@type evolved.vector2[], evolved.vector2[], evolved.vector2[]
|
||||||
local forces, positions, velocities = chunk:components(
|
local forces, positions, velocities = chunk:components(
|
||||||
|
|||||||
@@ -3816,23 +3816,6 @@ do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
|
||||||
do
|
|
||||||
local f = evo.builder():default():spawn()
|
|
||||||
assert(evo.has(f, evo.DEFAULT))
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
local f = evo.builder():spawn_single()
|
|
||||||
assert(evo.has(f, f))
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
local f = evo.builder():spawn_single(42)
|
|
||||||
assert(evo.has(f, f) and evo.get(f, f) == 42)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
do
|
||||||
local f1, f2 = evo.id(2)
|
local f1, f2 = evo.id(2)
|
||||||
|
|
||||||
@@ -3893,34 +3876,6 @@ do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
|
||||||
local fb = evo.builder()
|
|
||||||
local qb = evo.builder()
|
|
||||||
local sb = evo.builder()
|
|
||||||
|
|
||||||
do
|
|
||||||
local f = fb:spawn_single(false)
|
|
||||||
assert(evo.get(f, f) == false)
|
|
||||||
|
|
||||||
local q = qb:spawn_single(false)
|
|
||||||
assert(evo.get(q, q) == false)
|
|
||||||
|
|
||||||
local s = sb:spawn_single(false)
|
|
||||||
assert(evo.get(s, s) == false)
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
local f = fb:spawn()
|
|
||||||
assert(evo.get(f, f) == nil)
|
|
||||||
|
|
||||||
local q = qb:spawn()
|
|
||||||
assert(evo.get(q, q) == nil)
|
|
||||||
|
|
||||||
local s = sb:spawn()
|
|
||||||
assert(evo.get(s, s) == nil)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
do
|
||||||
local f1, f2 = evo.id(2)
|
local f1, f2 = evo.id(2)
|
||||||
|
|
||||||
@@ -5083,13 +5038,9 @@ do
|
|||||||
|
|
||||||
local g1 = gb:clear():spawn()
|
local g1 = gb:clear():spawn()
|
||||||
local g2 = gb:clear():name('g2'):spawn()
|
local g2 = gb:clear():name('g2'):spawn()
|
||||||
local g3 = gb:clear():spawn_single(42)
|
|
||||||
local g4 = gb:clear():name('g4'):spawn_single(43)
|
|
||||||
|
|
||||||
assert(not evo.has(g1, evo.NAME) and not evo.has(g1, g1))
|
assert(not evo.has(g1, evo.NAME) and not evo.has(g1, g1))
|
||||||
assert(evo.get(g2, evo.NAME) == 'g2' and not evo.has(g2, g2))
|
assert(evo.get(g2, evo.NAME) == 'g2' and not evo.has(g2, g2))
|
||||||
assert(not evo.has(g3, evo.NAME) and evo.get(g3, g3) == 42)
|
|
||||||
assert(evo.get(g4, evo.NAME) == 'g4' and evo.get(g4, g4) == 43)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
@@ -5927,34 +5878,6 @@ do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
|
||||||
local f1 = evo.id(1)
|
|
||||||
|
|
||||||
do
|
|
||||||
local b = evo.builder():set(f1, 11)
|
|
||||||
|
|
||||||
local e1 = b:spawn_single(1)
|
|
||||||
assert(evo.has(e1, e1) and evo.get(e1, e1) == 1)
|
|
||||||
assert(evo.has(e1, f1) and evo.get(e1, f1) == 11)
|
|
||||||
|
|
||||||
assert(not b:has(e1) and b:get(e1) == nil)
|
|
||||||
|
|
||||||
local e2 = b:spawn_single(1)
|
|
||||||
|
|
||||||
assert(not evo.has(e2, e1) and evo.get(e2, e1) == nil)
|
|
||||||
|
|
||||||
assert(evo.has(e2, e2) and evo.get(e2, e2) == 1)
|
|
||||||
assert(evo.has(e2, f1) and evo.get(e2, f1) == 11)
|
|
||||||
|
|
||||||
local e3 = b:clear():spawn()
|
|
||||||
|
|
||||||
assert(not evo.has(e3, e1) and evo.get(e3, e1) == nil)
|
|
||||||
assert(not evo.has(e3, e2) and evo.get(e3, e2) == nil)
|
|
||||||
assert(not evo.has(e3, e3) and evo.get(e3, e3) == nil)
|
|
||||||
assert(not evo.has(e3, f1) and evo.get(e3, f1) == nil)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
do
|
||||||
local f1, f2 = evo.id(2)
|
local f1, f2 = evo.id(2)
|
||||||
|
|
||||||
|
|||||||
200
evolved.lua
200
evolved.lua
@@ -726,9 +726,6 @@ local __evolved_process
|
|||||||
local __evolved_spawn
|
local __evolved_spawn
|
||||||
local __evolved_clone
|
local __evolved_clone
|
||||||
|
|
||||||
local __evolved_spawn_single
|
|
||||||
local __evolved_clone_single
|
|
||||||
|
|
||||||
local __evolved_debug_mode
|
local __evolved_debug_mode
|
||||||
local __evolved_collect_garbage
|
local __evolved_collect_garbage
|
||||||
|
|
||||||
@@ -4404,106 +4401,6 @@ function __evolved_clone(prefab, components)
|
|||||||
return entity
|
return entity
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param single evolved.component
|
|
||||||
---@param components? table<evolved.fragment, evolved.component>
|
|
||||||
---@return evolved.entity
|
|
||||||
function __evolved_spawn_single(single, components)
|
|
||||||
if not components then
|
|
||||||
components = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
if __debug_mode then
|
|
||||||
__debug_fns.validate_component_map(components)
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
---@type evolved.default?, evolved.duplicate?
|
|
||||||
local single_default, single_duplicate =
|
|
||||||
components[__DEFAULT], components[__DUPLICATE]
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = single_default
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil and single_duplicate then
|
|
||||||
single = single_duplicate(single)
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local entity = __acquire_id()
|
|
||||||
|
|
||||||
if __defer_depth > 0 then
|
|
||||||
components[entity] = single
|
|
||||||
__defer_spawn_entity(entity, components)
|
|
||||||
components[entity] = nil
|
|
||||||
else
|
|
||||||
__evolved_defer()
|
|
||||||
do
|
|
||||||
components[entity] = single
|
|
||||||
__spawn_entity(entity, components)
|
|
||||||
components[entity] = nil
|
|
||||||
end
|
|
||||||
__evolved_commit()
|
|
||||||
end
|
|
||||||
|
|
||||||
return entity
|
|
||||||
end
|
|
||||||
|
|
||||||
---@param prefab evolved.entity
|
|
||||||
---@param single evolved.component
|
|
||||||
---@param components? table<evolved.fragment, evolved.component>
|
|
||||||
---@return evolved.entity
|
|
||||||
function __evolved_clone_single(prefab, single, components)
|
|
||||||
if not components then
|
|
||||||
components = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
if __debug_mode then
|
|
||||||
__debug_fns.validate_prefab(prefab)
|
|
||||||
__debug_fns.validate_component_map(components)
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
---@type evolved.default?, evolved.duplicate?
|
|
||||||
local single_default, single_duplicate =
|
|
||||||
components[__DEFAULT], components[__DUPLICATE]
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = single_default
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil and single_duplicate then
|
|
||||||
single = single_duplicate(single)
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local entity = __acquire_id()
|
|
||||||
|
|
||||||
if __defer_depth > 0 then
|
|
||||||
components[entity] = single
|
|
||||||
__defer_clone_entity(entity, prefab, components)
|
|
||||||
components[entity] = nil
|
|
||||||
else
|
|
||||||
__evolved_defer()
|
|
||||||
do
|
|
||||||
components[entity] = single
|
|
||||||
__clone_entity(entity, prefab, components)
|
|
||||||
components[entity] = nil
|
|
||||||
end
|
|
||||||
__evolved_commit()
|
|
||||||
end
|
|
||||||
|
|
||||||
return entity
|
|
||||||
end
|
|
||||||
|
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
@@ -5109,100 +5006,6 @@ function __debug_fns.builder_mt:clone(prefab)
|
|||||||
return entity
|
return entity
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param single evolved.component
|
|
||||||
---@return evolved.entity
|
|
||||||
function __debug_fns.builder_mt:spawn_single(single)
|
|
||||||
local components = self.__components
|
|
||||||
|
|
||||||
if __debug_mode then
|
|
||||||
__debug_fns.validate_component_map(components)
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
---@type evolved.default?, evolved.duplicate?
|
|
||||||
local single_default, single_duplicate =
|
|
||||||
components[__DEFAULT], components[__DUPLICATE]
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = single_default
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil and single_duplicate then
|
|
||||||
single = single_duplicate(single)
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local entity = __acquire_id()
|
|
||||||
|
|
||||||
if __defer_depth > 0 then
|
|
||||||
components[entity] = single
|
|
||||||
__defer_spawn_entity(entity, components)
|
|
||||||
components[entity] = nil
|
|
||||||
else
|
|
||||||
__evolved_defer()
|
|
||||||
do
|
|
||||||
components[entity] = single
|
|
||||||
__spawn_entity(entity, components)
|
|
||||||
components[entity] = nil
|
|
||||||
end
|
|
||||||
__evolved_commit()
|
|
||||||
end
|
|
||||||
|
|
||||||
return entity
|
|
||||||
end
|
|
||||||
|
|
||||||
---@param prefab evolved.entity
|
|
||||||
---@param single evolved.component
|
|
||||||
---@return evolved.entity
|
|
||||||
function __debug_fns.builder_mt:clone_single(prefab, single)
|
|
||||||
local components = self.__components
|
|
||||||
|
|
||||||
if __debug_mode then
|
|
||||||
__debug_fns.validate_prefab(prefab)
|
|
||||||
__debug_fns.validate_component_map(components)
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
|
||||||
---@type evolved.default?, evolved.duplicate?
|
|
||||||
local single_default, single_duplicate =
|
|
||||||
components[__DEFAULT], components[__DUPLICATE]
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = single_default
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil and single_duplicate then
|
|
||||||
single = single_duplicate(single)
|
|
||||||
end
|
|
||||||
|
|
||||||
if single == nil then
|
|
||||||
single = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local entity = __acquire_id()
|
|
||||||
|
|
||||||
if __defer_depth > 0 then
|
|
||||||
components[entity] = single
|
|
||||||
__defer_clone_entity(entity, prefab, components)
|
|
||||||
components[entity] = nil
|
|
||||||
else
|
|
||||||
__evolved_defer()
|
|
||||||
do
|
|
||||||
components[entity] = single
|
|
||||||
__clone_entity(entity, prefab, components)
|
|
||||||
components[entity] = nil
|
|
||||||
end
|
|
||||||
__evolved_commit()
|
|
||||||
end
|
|
||||||
|
|
||||||
return entity
|
|
||||||
end
|
|
||||||
|
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
@@ -5575,9 +5378,6 @@ evolved.process = __evolved_process
|
|||||||
evolved.spawn = __evolved_spawn
|
evolved.spawn = __evolved_spawn
|
||||||
evolved.clone = __evolved_clone
|
evolved.clone = __evolved_clone
|
||||||
|
|
||||||
evolved.spawn_single = __evolved_spawn_single
|
|
||||||
evolved.clone_single = __evolved_clone_single
|
|
||||||
|
|
||||||
evolved.debug_mode = __evolved_debug_mode
|
evolved.debug_mode = __evolved_debug_mode
|
||||||
evolved.collect_garbage = __evolved_collect_garbage
|
evolved.collect_garbage = __evolved_collect_garbage
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user