summaryrefslogtreecommitdiff
path: root/src/engine/M_chunk.c
blob: 2227ee9eeae2076b2fe24be4fb8911987b78d62a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "M_chunk.h"

void M_generateChunk(M_Chunk *chunk)
{
	for (int x=0;x<M_CHUNK_SIZE;x++)
	for (int y=0;y<M_CHUNK_SIZE;y++)
	for (int z=0;z<M_CHUNK_SIZE;z++) {
		if (x==M_CHUNK_SIZE) {
			M_Block block;
			M_createBlock(&block, 1);
			chunk->blocks[x][y][z] = block;
		} else {
			M_Block block;
			M_createBlock(&block, M_BLOCK_AIR);
			chunk->blocks[x][y][z] = block;
		}
	}
}

void M_renderChunk(M_Game *game, M_Chunk *chunk)
{
	for (int x=0;x<M_CHUNK_SIZE;x++)
	for (int y=0;y<M_CHUNK_SIZE;y++)
	for (int z=0;z<M_CHUNK_SIZE;z++) {
		M_Block block = chunk->blocks[x][y][z];
		if (block.type != M_BLOCK_AIR) {
			M_Object *block_object = &game->block_atlas.blocks[block.type].obj;
			M_moveObject(block_object, (vec3){(float)x, (float)y-32, (float)z});
			M_drawObject(&game->render_info, &game->player.camera, block_object);
		}
	}
}