Standardise and make ECS more robust

This commit is contained in:
Hugo Mårdbrink 2025-08-28 14:31:55 +02:00
parent b9aaeb62c9
commit 2ba1022f79
13 changed files with 245 additions and 232 deletions

View file

@ -1,3 +1,4 @@
#+private
package ecs
import "core:log"
@ -9,15 +10,12 @@ EntityManager :: struct {
living_entity_count: u32,
}
entity_manager_create :: proc() -> EntityManager {
entity_manager := EntityManager{living_entity_count = 0}
entity_manager_init :: proc(entity_manager: ^EntityManager) {
queue.init(&entity_manager.available_entities)
for entity_id in 0..<ENTITY_MAX {
queue.push_back(&entity_manager.available_entities, cast(EntityID)entity_id)
queue.push_back(&entity_manager.available_entities, cast(EntityID) entity_id)
}
return entity_manager
}
entity_manager_create_entity :: proc(entity_manager: ^EntityManager) -> EntityID {
@ -49,6 +47,6 @@ entity_manager_get_signature :: proc(entity_manager: ^EntityManager, entity_id:
return entity_manager.signatures[entity_id]
}
entity_manager_destroy :: proc(entity_manager: ^EntityManager) {
entity_manager_delete :: proc(entity_manager: ^EntityManager) {
queue.destroy(&entity_manager.available_entities)
}