simple not impl api

This commit is contained in:
BlackMATov
2024-11-20 05:17:28 +07:00
parent d8491ca161
commit e72c5e73e3
3 changed files with 147 additions and 0 deletions

View File

@@ -1,4 +1,75 @@
---@class evolved.registry
---
---@class evolved.entity
---
---@class evolved.query
---
---@class evolved.chunk
---@field entities evolved.entity[]
---@field components table<evolved.entity, any[]>
---@class evolved
local evolved = {}
---@return evolved.registry
---@nodiscard
function evolved.create_registry() end
---@param registry evolved.registry
---@return evolved.entity
---@nodiscard
function evolved.create_entity(registry) 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 registry evolved.registry
---@param ... evolved.entity
---@return evolved.query
---@nodiscard
function evolved.create_query(registry, ...) end
---@param query evolved.query
---@return fun(): evolved.chunk?
---@nodiscard
function evolved.execute_query(query) end
return evolved

36
evolved/singles.lua Normal file
View File

@@ -0,0 +1,36 @@
local evolved = require 'evolved.evolved'
---@class evolved.singles
local singles = {}
---@param registry evolved.registry
---@param component any
---@return evolved.entity
---@nodiscard
function singles.create(registry, component)
local single = evolved.create_entity(registry)
evolved.insert_component(single, single, component)
return single
end
---@param single evolved.entity
---@return any
---@nodiscard
function singles.get(single)
return evolved.get_component(single, single)
end
---@param single evolved.entity
---@return boolean
---@nodiscard
function singles.has(single)
return evolved.has_component(single, single)
end
---@param single evolved.entity
---@param component any
function singles.assign(single, component)
evolved.assign_component(single, single, component)
end
return singles