mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-13 11:38:15 +07:00
modules refactoring
This commit is contained in:
@@ -1,34 +1,32 @@
|
|||||||
local evolved = require 'evolved.evolved'
|
local evo = require 'evolved.evolved'
|
||||||
local evolved_singles = require 'evolved.singles'
|
|
||||||
local evolved_vectors = require 'evolved.vectors'
|
|
||||||
|
|
||||||
local singles = {
|
local singles = {
|
||||||
delta_time = evolved_singles.create(0.016),
|
delta_time = evo.singles.create(0.016),
|
||||||
}
|
}
|
||||||
|
|
||||||
local fragments = {
|
local fragments = {
|
||||||
position = evolved.create_entity(),
|
position = evo.registry.create_entity(),
|
||||||
velocity = evolved.create_entity(),
|
velocity = evo.registry.create_entity(),
|
||||||
}
|
}
|
||||||
|
|
||||||
local queries = {
|
local queries = {
|
||||||
bodies = evolved.create_query(
|
bodies = evo.registry.create_query(
|
||||||
fragments.position,
|
fragments.position,
|
||||||
fragments.velocity),
|
fragments.velocity),
|
||||||
}
|
}
|
||||||
|
|
||||||
do
|
do
|
||||||
local entity = evolved.create_entity()
|
local entity = evo.registry.create_entity()
|
||||||
local position = evolved_vectors.vector2(512, 50)
|
local position = evo.vectors.vector2(512, 50)
|
||||||
local velocity = evolved_vectors.vector2(math.random(-20, 20), 20)
|
local velocity = evo.vectors.vector2(math.random(-20, 20), 20)
|
||||||
evolved.insert_component(entity, fragments.position, position)
|
evo.registry.insert_component(entity, fragments.position, position)
|
||||||
evolved.insert_component(entity, fragments.velocity, velocity)
|
evo.registry.insert_component(entity, fragments.velocity, velocity)
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
local dt = evolved_singles.get(singles.delta_time)
|
local dt = evo.singles.get(singles.delta_time)
|
||||||
|
|
||||||
for chunk in evolved.execute_query(queries.bodies) do
|
for chunk in evo.registry.execute_query(queries.bodies) do
|
||||||
local ps = chunk.components[fragments.position]
|
local ps = chunk.components[fragments.position]
|
||||||
local vs = chunk.components[fragments.velocity]
|
local vs = chunk.components[fragments.velocity]
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
local evolved = require 'evolved.evolved'
|
local evo = require 'evolved.evolved'
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
local evolved = require 'evolved.evolved'
|
local evo = require 'evolved.evolved'
|
||||||
|
|||||||
@@ -1,73 +1,5 @@
|
|||||||
---@class evolved
|
return {
|
||||||
local evolved = {}
|
registry = require 'evolved.registry',
|
||||||
|
singles = require 'evolved.singles',
|
||||||
---@class evolved.entity
|
vectors = require 'evolved.vectors',
|
||||||
local evolved_entity_mt = {}
|
}
|
||||||
evolved_entity_mt.__index = evolved_entity_mt
|
|
||||||
|
|
||||||
---@class evolved.query
|
|
||||||
local evolved_query_mt = {}
|
|
||||||
evolved_query_mt.__index = evolved_query_mt
|
|
||||||
|
|
||||||
---@class evolved.chunk
|
|
||||||
---@field entities evolved.entity[]
|
|
||||||
---@field components table<evolved.entity, any[]>
|
|
||||||
local evolved_chunk_mt = {}
|
|
||||||
evolved_chunk_mt.__index = evolved_chunk_mt
|
|
||||||
|
|
||||||
---@return evolved.entity
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.create_entity() end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
function evolved.destroy_entity(entity) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param fragment evolved.entity
|
|
||||||
---@return any
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.get_component(entity, fragment) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param fragment evolved.entity
|
|
||||||
---@return boolean
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.has_component(entity, fragment) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return boolean
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.has_all_components(entity, ...) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return boolean
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.has_any_components(entity, ...) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param fragment evolved.entity
|
|
||||||
---@param component any
|
|
||||||
function evolved.assign_component(entity, fragment, component) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param fragment evolved.entity
|
|
||||||
---@param component any
|
|
||||||
function evolved.insert_component(entity, fragment, component) end
|
|
||||||
|
|
||||||
---@param entity evolved.entity
|
|
||||||
---@param fragment evolved.entity
|
|
||||||
function evolved.remove_component(entity, fragment) end
|
|
||||||
|
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return evolved.query
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.create_query(...) end
|
|
||||||
|
|
||||||
---@param query evolved.query
|
|
||||||
---@return fun(): evolved.chunk?
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.execute_query(query) end
|
|
||||||
|
|
||||||
return evolved
|
|
||||||
|
|||||||
73
evolved/registry.lua
Normal file
73
evolved/registry.lua
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
---@class evolved.registry
|
||||||
|
local registry = {}
|
||||||
|
|
||||||
|
---@class evolved.entity
|
||||||
|
local evolved_entity_mt = {}
|
||||||
|
evolved_entity_mt.__index = evolved_entity_mt
|
||||||
|
|
||||||
|
---@class evolved.query
|
||||||
|
local evolved_query_mt = {}
|
||||||
|
evolved_query_mt.__index = evolved_query_mt
|
||||||
|
|
||||||
|
---@class evolved.chunk
|
||||||
|
---@field entities evolved.entity[]
|
||||||
|
---@field components table<evolved.entity, any[]>
|
||||||
|
local evolved_chunk_mt = {}
|
||||||
|
evolved_chunk_mt.__index = evolved_chunk_mt
|
||||||
|
|
||||||
|
---@return evolved.entity
|
||||||
|
---@nodiscard
|
||||||
|
function registry.create_entity() end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
function registry.destroy_entity(entity) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param fragment evolved.entity
|
||||||
|
---@return any
|
||||||
|
---@nodiscard
|
||||||
|
function registry.get_component(entity, fragment) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param fragment evolved.entity
|
||||||
|
---@return boolean
|
||||||
|
---@nodiscard
|
||||||
|
function registry.has_component(entity, fragment) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param ... evolved.entity
|
||||||
|
---@return boolean
|
||||||
|
---@nodiscard
|
||||||
|
function registry.has_all_components(entity, ...) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param ... evolved.entity
|
||||||
|
---@return boolean
|
||||||
|
---@nodiscard
|
||||||
|
function registry.has_any_components(entity, ...) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param fragment evolved.entity
|
||||||
|
---@param component any
|
||||||
|
function registry.assign_component(entity, fragment, component) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param fragment evolved.entity
|
||||||
|
---@param component any
|
||||||
|
function registry.insert_component(entity, fragment, component) end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@param fragment evolved.entity
|
||||||
|
function registry.remove_component(entity, fragment) end
|
||||||
|
|
||||||
|
---@param ... evolved.entity
|
||||||
|
---@return evolved.query
|
||||||
|
---@nodiscard
|
||||||
|
function registry.create_query(...) end
|
||||||
|
|
||||||
|
---@param query evolved.query
|
||||||
|
---@return fun(): evolved.chunk?
|
||||||
|
---@nodiscard
|
||||||
|
function registry.execute_query(query) end
|
||||||
|
|
||||||
|
return registry
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
local evolved = require 'evolved.evolved'
|
local registry = require 'evolved.registry'
|
||||||
|
|
||||||
---@class evolved.singles
|
---@class evolved.singles
|
||||||
local singles = {}
|
local singles = {}
|
||||||
@@ -7,8 +7,8 @@ local singles = {}
|
|||||||
---@return evolved.entity
|
---@return evolved.entity
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function singles.create(component)
|
function singles.create(component)
|
||||||
local single = evolved.create_entity()
|
local single = registry.create_entity()
|
||||||
evolved.insert_component(single, single, component)
|
registry.insert_component(single, single, component)
|
||||||
return single
|
return single
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -16,20 +16,20 @@ end
|
|||||||
---@return any
|
---@return any
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function singles.get(single)
|
function singles.get(single)
|
||||||
return evolved.get_component(single, single)
|
return registry.get_component(single, single)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param single evolved.entity
|
---@param single evolved.entity
|
||||||
---@return boolean
|
---@return boolean
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function singles.has(single)
|
function singles.has(single)
|
||||||
return evolved.has_component(single, single)
|
return registry.has_component(single, single)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param single evolved.entity
|
---@param single evolved.entity
|
||||||
---@param component any
|
---@param component any
|
||||||
function singles.assign(single, component)
|
function singles.assign(single, component)
|
||||||
evolved.assign_component(single, single, component)
|
registry.assign_component(single, single, component)
|
||||||
end
|
end
|
||||||
|
|
||||||
return singles
|
return singles
|
||||||
|
|||||||
Reference in New Issue
Block a user