perf improvements
parent
30da3e9a1b
commit
cbb3d37141
|
@ -19,6 +19,7 @@ typedef struct {
|
||||||
uint64_t tracker_update[3];
|
uint64_t tracker_update[3];
|
||||||
uint8_t active_layer_id;
|
uint8_t active_layer_id;
|
||||||
ecs_world_t *ecs;
|
ecs_world_t *ecs;
|
||||||
|
ecs_query_t *ecs_update;
|
||||||
librg_world *tracker;
|
librg_world *tracker;
|
||||||
world_pkt_reader_proc *reader_proc;
|
world_pkt_reader_proc *reader_proc;
|
||||||
world_pkt_writer_proc *writer_proc;
|
world_pkt_writer_proc *writer_proc;
|
||||||
|
@ -136,10 +137,13 @@ int32_t world_init(int32_t seed, uint16_t block_size, uint16_t chunk_size, uint1
|
||||||
|
|
||||||
world.ecs = ecs_init();
|
world.ecs = ecs_init();
|
||||||
ecs_set_entity_range(world.ecs, 0, UINT32_MAX);
|
ecs_set_entity_range(world.ecs, 0, UINT32_MAX);
|
||||||
int32_t world_build_status = world_gen();
|
|
||||||
ZPL_ASSERT(world_build_status >= 0);
|
|
||||||
|
|
||||||
ECS_IMPORT(world.ecs, General);
|
ECS_IMPORT(world.ecs, General);
|
||||||
|
ECS_IMPORT(world.ecs, Net);
|
||||||
|
world.ecs_update = ecs_query_new(world.ecs, "Net.ClientInfo, general.Position");
|
||||||
|
|
||||||
|
int32_t world_build_status = world_gen();
|
||||||
|
ZPL_ASSERT(world_build_status >= 0);
|
||||||
|
|
||||||
for (int i = 0; i < world.chunk_amount * world.chunk_amount; ++i) {
|
for (int i = 0; i < world.chunk_amount * world.chunk_amount; ++i) {
|
||||||
ecs_entity_t e = ecs_new(world.ecs, 0);
|
ecs_entity_t e = ecs_new(world.ecs, 0);
|
||||||
|
@ -169,10 +173,10 @@ static void world_tracker_update(uint8_t ticker, uint32_t freq, uint8_t radius)
|
||||||
if (world.tracker_update[ticker] > zpl_time_rel_ms()) return;
|
if (world.tracker_update[ticker] > zpl_time_rel_ms()) return;
|
||||||
world.tracker_update[ticker] = zpl_time_rel_ms() + freq;
|
world.tracker_update[ticker] = zpl_time_rel_ms() + freq;
|
||||||
|
|
||||||
|
ECS_IMPORT(world.ecs, General);
|
||||||
ECS_IMPORT(world.ecs, Net);
|
ECS_IMPORT(world.ecs, Net);
|
||||||
ecs_query_t *query = ecs_query_new(world.ecs, "Net.ClientInfo, general.Position");
|
|
||||||
|
|
||||||
ecs_iter_t it = ecs_query_iter(query);
|
ecs_iter_t it = ecs_query_iter(world.ecs_update);
|
||||||
static char buffer[WORLD_LIBRG_BUFSIZ] = {0};
|
static char buffer[WORLD_LIBRG_BUFSIZ] = {0};
|
||||||
world.active_layer_id = ticker;
|
world.active_layer_id = ticker;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue