From dd619531cadda28411c658a6f4f43515ad01ecd1 Mon Sep 17 00:00:00 2001 From: wooshings Date: Thu, 8 Oct 2026 18:33:02 -0700 Subject: [PATCH] storage queries --- entities.odin | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/entities.odin b/entities.odin index 597f59a..c5ee4f5 100644 --- a/entities.odin +++ b/entities.odin @@ -15,6 +15,17 @@ spawn_entity :: proc(app: ^App) -> Entity { return entity } -add_component :: proc(app: ^App, entity: Entity, storage: ^Storage($T)) { +add_component :: proc(entity: Entity, storage: ^Storage($T)) { storage.data[entity] = T{} } + +slice :: proc(storage: ^Storage($T)) -> map[Entity]T { + return storage.data +} + +get_component :: proc(entity: Entity, storage: ^Storage($T)) -> ^T { + if c, exists := &storage.data[entity]; exists { + return c + } + return new(T) +}