2025-10-07 10:32:48 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
2026-01-25 09:26:30 -06:00
|
|
|
#include "pxl8_chunk.h"
|
|
|
|
|
#include "pxl8_chunk_cache.h"
|
|
|
|
|
#include "pxl8_entity.h"
|
2025-10-07 10:32:48 -05:00
|
|
|
#include "pxl8_gfx.h"
|
|
|
|
|
#include "pxl8_math.h"
|
2026-01-25 09:26:30 -06:00
|
|
|
#include "pxl8_net.h"
|
2025-10-07 10:32:48 -05:00
|
|
|
#include "pxl8_types.h"
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
2026-01-25 09:26:30 -06:00
|
|
|
typedef struct pxl8_world pxl8_world;
|
|
|
|
|
|
2025-10-07 10:32:48 -05:00
|
|
|
pxl8_world* pxl8_world_create(void);
|
|
|
|
|
void pxl8_world_destroy(pxl8_world* world);
|
|
|
|
|
|
2026-01-25 09:26:30 -06:00
|
|
|
pxl8_chunk_cache* pxl8_world_chunk_cache(pxl8_world* world);
|
|
|
|
|
pxl8_chunk* pxl8_world_active_chunk(pxl8_world* world);
|
|
|
|
|
void pxl8_world_set_active_chunk(pxl8_world* world, pxl8_chunk* chunk);
|
|
|
|
|
|
|
|
|
|
pxl8_block_registry* pxl8_world_block_registry(pxl8_world* world);
|
|
|
|
|
pxl8_entity_pool* pxl8_world_entities(pxl8_world* world);
|
|
|
|
|
pxl8_entity pxl8_world_spawn(pxl8_world* world);
|
2025-11-21 16:44:42 -06:00
|
|
|
|
|
|
|
|
bool pxl8_world_check_collision(const pxl8_world* world, pxl8_vec3 pos, f32 radius);
|
|
|
|
|
pxl8_vec3 pxl8_world_resolve_collision(const pxl8_world* world, pxl8_vec3 from, pxl8_vec3 to, f32 radius);
|
2026-01-25 09:26:30 -06:00
|
|
|
|
|
|
|
|
void pxl8_world_update(pxl8_world* world, f32 dt);
|
|
|
|
|
void pxl8_world_render(pxl8_world* world, pxl8_gfx* gfx, pxl8_vec3 camera_pos);
|
|
|
|
|
void pxl8_world_sync(pxl8_world* world, pxl8_net* net);
|
2025-10-07 10:32:48 -05:00
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|