From f28f00339343a03e458ff60aea2d3c0e8c5a6ab2 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Wed, 13 Nov 2024 18:19:21 +0700 Subject: [PATCH] fake components for chunks --- evolved.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/evolved.lua b/evolved.lua index 20e3e2e..74712b3 100644 --- a/evolved.lua +++ b/evolved.lua @@ -12,6 +12,7 @@ local evolved = {} ---@field parent? evolved.chunk ---@field fragment? evolved.entity ---@field entities evolved.entity[] +---@field components table ---@field with_cache table ---@field without_cache table local evolved_chunk_mt = {} @@ -48,9 +49,19 @@ local function create_chunk(owner, parent, fragment) parent = parent, fragment = fragment, entities = {}, + components = {}, with_cache = {}, without_cache = {}, } + + do + local iter = chunk + while iter and iter.fragment do + chunk.components[iter.fragment] = {} + iter = iter.parent + end + end + return setmetatable(chunk, evolved_chunk_mt) end @@ -63,6 +74,9 @@ local function create_entity(owner, id) owner = owner, id = id, } + + owner.chunks[1]:insert(entity) + return setmetatable(entity, evolved_entity_mt) end @@ -255,7 +269,6 @@ function evolved_registry_mt:entity() local id = self.nextid self.nextid = self.nextid + 1 local entity = create_entity(self, id) - self.chunks[1]:insert(entity) return entity end