mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 04:15:28 +07:00
simplify singles
This commit is contained in:
@@ -86,9 +86,9 @@ chunk:components -> entity -> (any[])
|
||||
|
||||
```
|
||||
singles.single -> any -> (entity)
|
||||
singles.set -> entity -> any -> (entity)
|
||||
singles.get -> entity -> (any)
|
||||
singles.has -> entity -> (boolean)
|
||||
singles.assign -> entity -> any -> ()
|
||||
```
|
||||
|
||||
## Module `vectors`
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
require 'develop.untests.idpools_untests'
|
||||
require 'develop.untests.registry_untests'
|
||||
require 'develop.untests.singles_untests'
|
||||
|
||||
33
develop/untests/singles_untests.lua
Normal file
33
develop/untests/singles_untests.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
---@diagnostic disable: invisible
|
||||
local evo = require 'evolved.evolved'
|
||||
|
||||
do
|
||||
local e = evo.registry.entity()
|
||||
assert(not evo.singles.has(e))
|
||||
assert(evo.singles.get(e) == nil)
|
||||
|
||||
assert(evo.singles.set(e, 42))
|
||||
assert(evo.singles.has(e))
|
||||
assert(evo.singles.get(e) == 42)
|
||||
end
|
||||
|
||||
do
|
||||
local s = evo.singles.single()
|
||||
assert(evo.singles.has(s))
|
||||
assert(evo.singles.get(s) == true)
|
||||
|
||||
assert(s == evo.singles.set(s, 42))
|
||||
assert(evo.singles.get(s) == 42)
|
||||
end
|
||||
|
||||
do
|
||||
local s = evo.singles.single(42)
|
||||
assert(evo.singles.has(s))
|
||||
assert(evo.singles.get(s) == 42)
|
||||
|
||||
assert(s == evo.singles.set(s, true))
|
||||
assert(evo.singles.get(s) == true)
|
||||
|
||||
assert(s == evo.singles.set(s, false))
|
||||
assert(evo.singles.get(s) == false)
|
||||
end
|
||||
@@ -8,28 +8,28 @@ local singles = {}
|
||||
---@nodiscard
|
||||
function singles.single(component)
|
||||
local single = registry.entity()
|
||||
registry.insert(single, single, component)
|
||||
return single
|
||||
return single:set(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
|
||||
---@nodiscard
|
||||
function singles.get(single)
|
||||
return registry.get(single, single)
|
||||
return single:get(single)
|
||||
end
|
||||
|
||||
---@param single evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
function singles.has(single)
|
||||
return registry.has(single, single)
|
||||
end
|
||||
|
||||
---@param single evolved.entity
|
||||
---@param component any
|
||||
function singles.assign(single, component)
|
||||
registry.assign(single, single, component)
|
||||
return single:has(single)
|
||||
end
|
||||
|
||||
return singles
|
||||
|
||||
Reference in New Issue
Block a user