From f912866fcbedc4a8225734fc947bb545e2007352 Mon Sep 17 00:00:00 2001 From: PepeElToro41 Date: Tue, 29 Jul 2025 14:18:15 -0600 Subject: [PATCH] add way to check preregistered id creations after world creation --- jecs.luau | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/jecs.luau b/jecs.luau index 37c550a..9221e35 100755 --- a/jecs.luau +++ b/jecs.luau @@ -110,6 +110,8 @@ type world = { max_component_id: number, max_archetype_id: number, + start_component_id: number, + start_tag_id: number, observable: Map>, @@ -147,6 +149,8 @@ export type World = { max_component_id: number, max_archetype_id: number, + start_component_id: number, + start_tag_id: number, observable: Map>, @@ -744,6 +748,12 @@ local function ECS_ID_IS_WILDCARD(e: i53): boolean return first == EcsWildcard or second == EcsWildcard end +local function get_max_ids_difference(world: World): (number, number) + local diff_components = world.start_component_id - ecs_max_component_id + local diff_tags = world.start_tag_id - ecs_max_tag_id + return diff_components, diff_tags +end + local function id_record_get(world: World, id: Entity): ComponentRecord? local component_index = world.component_index local idr: ComponentRecord = component_index[id] @@ -2241,6 +2251,9 @@ local function world_new() archetype_index = archetype_index, max_archetype_id = 0, max_component_id = ecs_max_component_id, + + start_component_id = ecs_max_component_id, + start_tag_id = ecs_max_tag_id, observable = observable, signals = signals, @@ -3305,6 +3318,7 @@ return { pair_first = ecs_pair_first :: (world: World, pair: Pair) -> Id

, pair_second = ecs_pair_second :: (world: World, pair: Pair) -> Id, entity_index_get_alive = entity_index_get_alive, + get_max_ids_difference = get_max_ids_difference, archetype_append_to_records = archetype_append_to_records, id_record_ensure = id_record_ensure :: (World, Id) -> ComponentRecord,