Files
2026-03-26 14:46:39 -05:00

42 lines
1.2 KiB
C

#include "chunk.h"
#include "_internal/private_chunk.h"
#include "chunk_mesh_builder.h"
#include <stdlib.h>
chunk_struct* initialize_chunk(struct chunk_position_struct position_in_world) {
chunk_struct *chunk = malloc(sizeof(chunk_struct));
if ( chunk == NULL )
{
return NULL;
}
_initialize_chunk(chunk, position_in_world);
return chunk;
}
void destroy_chunk(struct chunk_struct* chunk)
{
destroy_chunk_mesh(chunk);
_free_chunk_data(chunk);
}
uint32_t index_chunk(int32_t x, int32_t y, int32_t z) {
return (uint32_t)(x + y * chunk_size + z * chunk_size * chunk_size);
}
chunk_position_struct offset_chunk_position(struct chunk_position_struct origin_to_offset,
int32_t x_offset,
int32_t y_offset,
int32_t z_offset)
{
chunk_position_struct new_chunk_coordinate;
new_chunk_coordinate.x = origin_to_offset.x + x_offset;
new_chunk_coordinate.y = origin_to_offset.y + y_offset;
new_chunk_coordinate.z = origin_to_offset.z + z_offset;
return new_chunk_coordinate;
}