diff --git a/jecs.luau b/jecs.luau index 3bb79b0..fb5fa6d 100755 --- a/jecs.luau +++ b/jecs.luau @@ -2574,19 +2574,16 @@ local function world_new() if not dense or r.dense == 0 then r.dense = index dense = index - local any = eindex_dense_array[dense] - if any == entity then - local e_swap = eindex_dense_array[dense] - local r_swap = inner_entity_index_try_get_any(e_swap :: number) :: Record + local e_swap = eindex_dense_array[dense] + local r_swap = inner_entity_index_try_get_any(e_swap :: number) :: Record - r_swap.dense = dense - alive_count += 1 - entity_index.alive_count = alive_count - r.dense = alive_count + r_swap.dense = dense + alive_count += 1 + entity_index.alive_count = alive_count + r.dense = alive_count - eindex_dense_array[dense] = e_swap - eindex_dense_array[alive_count] = entity - end + eindex_dense_array[dense] = e_swap + eindex_dense_array[alive_count] = entity return entity end @@ -3093,6 +3090,13 @@ return { pair = (ECS_PAIR :: any) ::
(first: Id
, second: Id ,
+ IS_PAIR = (ECS_IS_PAIR :: any) :: (pair: Pair ) -> boolean,
+ ECS_PAIR_FIRST = ECS_PAIR_FIRST :: (pair: Pair ) -> Id ,
+ ECS_PAIR_SECOND = ECS_PAIR_SECOND :: (pair: Pair ) -> Id (world: World, pair: Pair ) -> Id ,
+ pair_second = (ecs_pair_second :: any) :: (world: World, pair: Pair ) -> Id (pair: Pair ) -> boolean,
- ECS_PAIR_FIRST = ECS_PAIR_FIRST :: (pair: Pair ) -> Id ,
- ECS_PAIR_SECOND = ECS_PAIR_SECOND :: (pair: Pair ) -> Id (world: World, pair: Pair ) -> Id ,
- pair_second = (ecs_pair_second :: any) :: (world: World, pair: Pair ) -> Id