From 5897c1045dac6e74a092505efc6de47133124cdd Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Tue, 20 Apr 2021 18:44:41 +1000 Subject: [PATCH] bruh(2) --- assets/{testworld => world}/chunks/0_0_0.txt | 0 assets/world/tileset.png | Bin 0 -> 152627 bytes assets/{testworld => world}/world.txt | 0 src/display/primitive.c | 7 + src/display/primitive.h | 7 + src/game/game.c | 6 +- src/game/game.h | 5 +- src/world/chunk.c | 62 ++++---- src/world/chunk.h | 31 +++- src/world/entity/entity.c | 21 +++ src/world/entity/player.c | 42 +++--- src/world/entity/player.h | 16 +- src/world/tile.c | 42 ++++-- src/world/tile.h | 73 +++++++-- src/world/world.c | 72 ++++----- src/world/world.h | 34 ++++- src/world/worldtypes.h | 150 ------------------- 17 files changed, 278 insertions(+), 290 deletions(-) rename assets/{testworld => world}/chunks/0_0_0.txt (100%) create mode 100644 assets/world/tileset.png rename assets/{testworld => world}/world.txt (100%) create mode 100644 src/world/entity/entity.c delete mode 100644 src/world/worldtypes.h diff --git a/assets/testworld/chunks/0_0_0.txt b/assets/world/chunks/0_0_0.txt similarity index 100% rename from assets/testworld/chunks/0_0_0.txt rename to assets/world/chunks/0_0_0.txt diff --git a/assets/world/tileset.png b/assets/world/tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f17fe4e07dd970547e379f109236263815dc20 GIT binary patch literal 152627 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

GOfq8nv-Ze{ziQkSCiXna`eiJA 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�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 Dj{q3} literal 0 HcmV?d00001 diff --git a/assets/testworld/world.txt b/assets/world/world.txt similarity index 100% rename from assets/testworld/world.txt rename to assets/world/world.txt diff --git a/src/display/primitive.c b/src/display/primitive.c index 9dabefc9..af98ef77 100644 --- a/src/display/primitive.c +++ b/src/display/primitive.c @@ -1,3 +1,10 @@ +/** + * Copyright (c) 2021 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + #include "primitive.h" primitive_t * primitiveCreate(int32_t verticeCount, int32_t indiceCount) { diff --git a/src/display/primitive.h b/src/display/primitive.h index 9cca0ed5..b326368f 100644 --- a/src/display/primitive.h +++ b/src/display/primitive.h @@ -1,3 +1,10 @@ +/** + * Copyright (c) 2021 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + #pragma once #include #include diff --git a/src/game/game.c b/src/game/game.c index 8235e56d..63938910 100644 --- a/src/game/game.c +++ b/src/game/game.c @@ -30,6 +30,7 @@ game_t * gameInit(platform_t *platform) { // Load the world game->world = worldLoad("testworld/"); + playerCreate(&game->world->entities, 0); // Pass to the main game to handle return game; @@ -45,7 +46,10 @@ uint32_t gameUpdate(game_t *game) { // Prepare for rendering shaderUse(game->shader); shaderUseCamera(game->shader, game->camera); - worldRender(game->world, game->shader, game->camera); + worldRender(game->world, + game->shader, game->camera, + game->engine->input + ); return 0; } diff --git a/src/game/game.h b/src/game/game.h index cbffc36c..0495d75f 100644 --- a/src/game/game.h +++ b/src/game/game.h @@ -13,6 +13,8 @@ #include "../display/shader.h" #include "../world/world.h" +#include "../world/entity/player.h" + /////////////////////////////////// CONSTANTS ////////////////////////////////// /** Name of the Game */ #define GAME_NAME "Dawn Game" @@ -27,13 +29,14 @@ /////////////////////////////// TYPE DEFINITIONS /////////////////////////////// /** Information about the current game context. */ -typedef struct { +typedef struct game_t { /** The engine context for the game */ engine_t *engine; /** Rendering items */ camera_t *camera; shader_t *shader; + world_t *world; } game_t; diff --git a/src/world/chunk.c b/src/world/chunk.c index 149c6cb0..ca0c881b 100644 --- a/src/world/chunk.c +++ b/src/world/chunk.c @@ -7,9 +7,11 @@ #include "chunk.h" -void chunkLoad(world_t *world, chunk_t *chunk, int32_t x, int32_t y, int32_t z){ +void chunkLoad(chunk_t *chunk, tilemap_t *tilemap, + int32_t x, int32_t y, int32_t z +){ int32_t tx, ty, tz, i; - tile_t *tile; + tileid_t tileId; tiledef_t *tileDef; tilesetdiv_t *div; char *buffer, *seek, *current; @@ -17,9 +19,7 @@ void chunkLoad(world_t *world, chunk_t *chunk, int32_t x, int32_t y, int32_t z){ // Determine file name of the chunk. fileName[0] = '\0'; - strcat(fileName, world->assetWorldDirectory); - strcat(fileName, "chunks/"); - strcat(fileName, "%d_%d_%d.txt"); + strcat(fileName, "world/chunks/%d_%d_%d.txt"); sprintf(fileName, fileName, x, y, z); // Load contents of chunk @@ -30,55 +30,57 @@ void chunkLoad(world_t *world, chunk_t *chunk, int32_t x, int32_t y, int32_t z){ // Determine the size of our primitive. int32_t indiceCount = 0, verticeCount = 0; for(i = 0; i < CHUNK_TILE_COUNT; i++) { - // Get the tile - tile = chunk->tiles + i; - // Now load from the buffer. current = strtok_r(seek, ";", &seek); - tile->id = current[0] - CHUNK_TILE_LOAD_ASCII; - - if(tile->id == TILE_NULL) continue; - tileDef = world->tilemap->tileDefinitions + tile->id; - if(tileDef->verticeCount == 0 || tileDef->indiceCount == 0) continue; - - tile->verticeStart = verticeCount; - tile->indiceStart = indiceCount; + *(chunk->tiles + i) = current[0] - CHUNK_TILE_LOAD_ASCII; + tileId = *(chunk->tiles + i); + if(tileId == TILE_NULL) continue; + // Increment tile definition. + tileDef = tilemap->tileDefinitions+tileId; verticeCount += tileDef->verticeCount; indiceCount += tileDef->indiceCount; } // Now we know how big the primitive needs to be! free(buffer); - if(indiceCount > 0) { - chunk->primitive = primitiveCreate(verticeCount, indiceCount); - } + if(indiceCount == 0) return; + chunk->primitive = primitiveCreate(verticeCount, indiceCount); // For each tile i = 0; + verticeCount = 0, indiceCount = 0; for(tx = 0; tx < CHUNK_WIDTH; tx++) { for(ty = 0; ty < CHUNK_HEIGHT; ty++) { for(tz = 0; tz < CHUNK_DEPTH; tz++) { // Get tile for position... - tile = chunk->tiles + (i++); + tileId = *(chunk->tiles + (i++)); + if(tileId == TILE_NULL) continue; - // Should Chunk bother rendering? - if(tile->id == TILE_NULL) continue; - tileDef = world->tilemap->tileDefinitions + tile->id; - if(tileDef->verticeCount == 0 || tileDef->indiceCount == 0) continue; + // Get the definition. + tileDef = tilemap->tileDefinitions+tileId; + if(tileDef->tileRender == NULL) continue; // Render the tile's primitive - tileRender(world, chunk, tile, tileDef, tx, ty, tz); + tileDef->tileRender(tileId, tilemap, tileDef, + chunk->primitive, verticeCount, indiceCount, + tx, ty, tz + ); + + // Prepare for the next render. + verticeCount += tileDef->verticeCount; + indiceCount += tileDef->indiceCount; } } } } -void chunkUnload(world_t *world, chunk_t *chunk) { - // Unload the primitive - primitiveDispose(chunk->primitive); - chunk->primitive = NULL; - +void chunkUnload(chunk_t *chunk) { // Load chunks to zero. TODO: Necessary? memset(chunk->tiles, TILE_NULL, CHUNK_TILE_COUNT); + + // Unload the primitive + if(chunk->primitive == NULL) return; + primitiveDispose(chunk->primitive); + chunk->primitive = NULL; } \ No newline at end of file diff --git a/src/world/chunk.h b/src/world/chunk.h index a0a767ff..32e9f2ff 100644 --- a/src/world/chunk.h +++ b/src/world/chunk.h @@ -1,28 +1,49 @@ #pragma once #include -#include "worldtypes.h" #include "tile.h" #include "../file/asset.h" +#include "../input/input.h" #include "../util/string.h" /** When loading a chunk, how many chars to offset (ASCII char to byte) */ #define CHUNK_TILE_LOAD_ASCII 48 +/** Width (in tiles) of chunks. */ +#define CHUNK_WIDTH 16 +/** Heihgt (in tiles) of chunks. */ +#define CHUNK_HEIGHT 16 +/** Depth (in tiles) of chunks. */ +#define CHUNK_DEPTH 8 +/** Count of tiles in the chunk. */ +#define CHUNK_TILE_COUNT CHUNK_WIDTH*CHUNK_HEIGHT*CHUNK_DEPTH + +/** Representation of a chunk, a group of tiles that can be buffered around. */ +typedef struct { + /** Position (in absolute chunk coordinates) of this chunk */ + int32_t x, y, z; + + /** Array of tiles within the chunk */ + tileid_t tiles[CHUNK_TILE_COUNT]; + + /** Ready to be rendered chunk 3d primitive */ + primitive_t *primitive; +} chunk_t; + /** * Loads a given chunk. * - * @param list World to load the chunk for. * @param chunk The chunk to load. * @param x X of the chunk. * @param y Y of the chunk. * @param z Z of the chunk. */ -void chunkLoad(world_t *world, chunk_t *chunk, int32_t x, int32_t y, int32_t z); +void chunkLoad(chunk_t *chunk, tilemap_t *tilemap, + int32_t x, int32_t y, int32_t z +); /** * Unload a given chunk. * - * @param world World that the chunk belongs to. * @param chunk Chunk to unload. */ -void chunkUnload(world_t *world, chunk_t *chunk); \ No newline at end of file +void chunkUnload(chunk_t *chunk); \ No newline at end of file diff --git a/src/world/entity/entity.c b/src/world/entity/entity.c new file mode 100644 index 00000000..40c0c499 --- /dev/null +++ b/src/world/entity/entity.c @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2021 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +#include "entity.h" + +void entitySystemInit(entitysystem_t *entitySystem) { + memset(&entitySystem->entities, ENTITY_TYPE_NULL, + sizeof(entityid_t) * ENTITY_COUNT_MAX + ); +} + +void entitySystemUpdate(entitysystem_t *entitySystem, + shader_t *shader, camera_t *camera, + input_t *input +) { + entitySystem->callbacks[0].render(entitySystem, 0, shader, camera, input); +} \ No newline at end of file diff --git a/src/world/entity/player.c b/src/world/entity/player.c index 54fe8710..6f962c12 100644 --- a/src/world/entity/player.c +++ b/src/world/entity/player.c @@ -7,29 +7,33 @@ #include "player.h" -void playerCreate(world_t *world, entity_t *entity) { - // Setup the update state. - entity->entityUpdate = &playerUpdate; - entity->entityDispose = &playerDispose; - - world->entityPrimitives[entity->id] = quadCreate(0, +void playerCreate(entitysystem_t *system, int32_t index) { + system->entities[index] = ENTITY_TYPE_PLAYER; + system->callbacks[index].dispose = &playerDispose; + system->callbacks[index].render = &playerRender; + system->positions[index].x = 0; + system->positions[index].y = 0; + system->positions[index].z = 0; + system->primitives[index] = quadCreate(0, 0, 0, 0, 0, 1, 1, 1, 1 ); } -void playerUpdate(world_t *world, entity_t *entity, shader_t *shader, - camera_t *camera -) { - shaderUsePosition(shader, 0, 0, 0, 0, 0, 0); - primitiveDraw(world->entityPrimitives[entity->id], - 0, world->entityPrimitives[entity->id]->indiceCount - ); +void playerDispose(entitysystem_t *system, int32_t index) { } -void playerDispose(world_t *world, entity_t *entity) { - primitiveDispose(world->entityPrimitives[entity->id]); - - entity->entityDispose = NULL; - entity->entityUpdate = NULL; -} \ No newline at end of file +void playerRender(entitysystem_t *system, int32_t index, + shader_t *shader, camera_t *camera, + input_t *input +) { + shaderUsePosition(shader, + system->positions[index].x, + system->positions[index].y, + system->positions[index].z, + 0, 0, 0 + ); + primitiveDraw(system->primitives[index], + 0, system->primitives[index]->indiceCount + ); +} diff --git a/src/world/entity/player.h b/src/world/entity/player.h index d30ae4e2..a0e0cc8a 100644 --- a/src/world/entity/player.h +++ b/src/world/entity/player.h @@ -6,13 +6,13 @@ */ #pragma once -#include "../worldtypes.h" +#include "entity.h" +#include "../../display/primitive.h" #include "../../display/primitives/quad.h" -#include "../../input/input.h" -void playerCreate(world_t *world, entity_t *entity); -void playerUpdate(world_t *world, entity_t *entity, shader_t *shader, - camera_t *camera -); - -void playerDispose(world_t *world, entity_t *entity); \ No newline at end of file +void playerCreate(entitysystem_t *system, int32_t index); +void playerDispose(entitysystem_t *system, int32_t index); +void playerRender(entitysystem_t *system, int32_t index, + shader_t *shader, camera_t *camera, + input_t *input +); \ No newline at end of file diff --git a/src/world/tile.c b/src/world/tile.c index 5fafaef6..16369809 100644 --- a/src/world/tile.c +++ b/src/world/tile.c @@ -7,32 +7,48 @@ #include "tile.h" -tilemap_t * tileMapCreate(int32_t columns, int32_t rows) { +tilemap_t * tileMapCreate(texture_t *texture) { tilemap_t *tilemap = malloc(sizeof(tilemap_t)); if(tilemap == NULL) return NULL; + + tilemap->texture = texture; - tilemap->tileDefinitions = calloc(columns * rows, sizeof(tiledef_t)); - if(!tilemap->tileDefinitions) { + // Create the tileset for the texture. + tilemap->tileset = tilesetCreate( + texture->width/TILE_WIDTH, texture->height/TILE_HEIGHT, + texture->width, texture->height, + 0, 0, 0, 0 + ); + if(tilemap->tileset == NULL) { free(tilemap); return NULL; } + + // Setup the tile definitions for each tile within the tileset. + tilemap->tileDefinitions = calloc(tilemap->tileset->count, sizeof(tiledef_t)); + if(!tilemap->tileDefinitions) { + tilesetDispose(tilemap->tileset); + free(tilemap); + return NULL; + } + return tilemap; } void tileMapDispose(tilemap_t *tilemap) { free(tilemap->tileDefinitions); + tilesetDispose(tilemap->tileset); free(tilemap); } -void tileRender(world_t *world, chunk_t *chunk, - tile_t *tile, tiledef_t *tileDef, int32_t x, int32_t y, int32_t z +void tileQuadRender(tileid_t id, tilemap_t *tilemap, tiledef_t *tileDef, + primitive_t *primitive, int32_t verticeStart, int32_t indiceStart, + int32_t x, int32_t y, int32_t z ) { - if(tileDef->indiceCount == 6) { - tilesetdiv_t *div = world->tileset->divisions + tile->id; - quadBuffer(chunk->primitive, z, - x, y, div->x0, div->y0, - x+1, y+1, div->x1, div->y1, - tile->verticeStart, tile->indiceStart - ); - } + tilesetdiv_t *div = tilemap->tileset->divisions + id; + quadBuffer(primitive, z, + x, y, div->x0, div->y0, + x+1, y+1, div->x1, div->y1, + verticeStart, indiceStart + ); } \ No newline at end of file diff --git a/src/world/tile.h b/src/world/tile.h index 24392022..58771dd6 100644 --- a/src/world/tile.h +++ b/src/world/tile.h @@ -6,22 +6,62 @@ #pragma once #include #include -#include "worldtypes.h" #include "../display/tileset.h" +#include "../display/texture.h" #include "../display/primitives/quad.h" #include "../display/primitives/cube.h" /** The tile id that represents a NULL tile */ #define TILE_NULL (tileid_t)0 +/** Width of a tile (in pixels) */ +#define TILE_WIDTH 16 +/** Height of a tile (in pixels) */ +#define TILE_HEIGHT 16 + +/** Bitwise Flags from tiles. */ +typedef uint8_t tileflag_t; + +/** Tile ID */ +typedef uint8_t tileid_t; + +// Forwarders +typedef struct tiledef_t tiledef_t; +typedef struct tilemap_t tilemap_t; + +/** Representation of the information of a tile within a tilemap. */ +typedef struct tiledef_t { + /** Flags of the tile */ + tileflag_t flags; + + /** How many indices and vertices a tile with this definition has. */ + int32_t indiceCount, verticeCount; + + /** Callback for the tile definition for rendering the tile */ + void (*tileRender)(tileid_t id, tilemap_t *tilemap, tiledef_t *tileDef, + primitive_t *primitive, int32_t verticeStart, int32_t indiceStart, + int32_t x, int32_t y, int32_t z + ); +} tiledef_t; + +/** Representation of the tile definitions within a tilemap. */ +typedef struct tilemap_t { + /** Tile definitions within the tilemap */ + tiledef_t *tileDefinitions; + + /** Tileset predivided */ + tileset_t *tileset; + + /** Texture of the tileset */ + texture_t *texture; +} tilemap_t; + /** * Creates a tilemap from a tileset. - * - * @param columns Count of columns in the tilemap. - * @param rows Count of rows in the tilemap. + * @param The texture to base the tilemap on. * @returns The tilemap. */ -tilemap_t * tileMapCreate(int32_t columns, int32_t rows); +tilemap_t * tileMapCreate(texture_t *texture); /** * Destroys a previously created tilemap. @@ -31,16 +71,19 @@ tilemap_t * tileMapCreate(int32_t columns, int32_t rows); void tileMapDispose(tilemap_t *tilemap); /** - * Rendedrs a given chunk tile. + * Renders a tile as a standard quad. * - * @param world The world that the chunk belongs to. - * @param chunk The chunk to render against. - * @param tile The tile to render. - * @param tileDef The tile's definition information. - * @param x The X Coordinate of the tile (chunk space). - * @param y The Y Coordinate of the tile (chunk space). - * @param z The Z Coordinate of the tile (chunk space). + * @param id ID of the Tile. + * @param tilemap The tilemap that the tile belongs to. + * @param tileDef The tiledef of the tile. + * @param primitive The primitive to render to. + * @param verticeStart The start index of the vertice. + * @param indiceStart The start index of the indice. + * @param x Tile (local) X position coordinate. + * @param y Tile (local) Y position coordinate. + * @param z Tile (local) Z position coordinate. */ -void tileRender(world_t *world, chunk_t *chunk, - tile_t *tile, tiledef_t *tileDef, int32_t x, int32_t y, int32_t z +void tileQuadRender(tileid_t id, tilemap_t *tilemap, tiledef_t *tileDef, + primitive_t *primitive, int32_t verticeStart, int32_t indiceStart, + int32_t x, int32_t y, int32_t z ); \ No newline at end of file diff --git a/src/world/world.c b/src/world/world.c index f41624f3..bb7b2949 100644 --- a/src/world/world.c +++ b/src/world/world.c @@ -7,36 +7,26 @@ #include "world.h" -world_t * worldLoad(char *assetWorldDirectory) { +world_t * worldLoad() { // Define our local variables char file [128]; char *reading, *version, *textureFilename, *temp; world_t *world; chunk_t *chunk; - entity_t *entity; tiledef_t *tileDef; + texture_t *texture; int32_t i, x, y, z; // Load the world file. file[0] = '\0'; - strcat(file, assetWorldDirectory); - strcat(file, "world.txt"); + strcat(file, "world/world.txt"); char *worldData = assetStringLoad(file); if(worldData == NULL) return NULL; // Create the world world = malloc(sizeof(world_t)); - world->assetWorldDirectory = assetWorldDirectory; world->x = 0, world->y = 0, world->z = 0; - // Init the entities - for(i = 0; i < WORLD_ENTITY_COUNT; i++) { - entity = world->entities + i; - entity->id = (entityid_t)i; - entity->entityUpdate = NULL; - entity->entityDispose = NULL; - } - // Now begin parsing, first we need to know which version of the file format // we are using. reading = worldData; @@ -47,22 +37,15 @@ world_t * worldLoad(char *assetWorldDirectory) { // Load tileset texture. file[0] = '\0'; - strcat(file, assetWorldDirectory); + strcat(file, "world/"); strcat(file, textureFilename); - world->texture = assetTextureLoad(file); - - // Create the tileset - world->tileset = tilesetCreate( - world->texture->width/TILE_WIDTH, world->texture->height/TILE_HEIGHT, - world->texture->width, world->texture->height, - 0, 0, 0, 0 - ); - + texture = assetTextureLoad(file); + // Create the Tilemap - world->tilemap = tileMapCreate(world->tileset->columns, world->tileset->rows); + world->tilemap = tileMapCreate(texture); // Load Tilemap Definitions. Skip - for(i = 0; i < world->tileset->count; i++) { + for(i = 0; i < world->tilemap->tileset->count; i++) { tileDef = world->tilemap->tileDefinitions + i; temp = strtok_r(reading, WORLD_LOAD_TOKEN, &reading); @@ -72,7 +55,9 @@ world_t * worldLoad(char *assetWorldDirectory) { tileDef->indiceCount = atoi(temp); temp = strtok_r(reading, WORLD_LOAD_TOKEN, &reading); + tileDef->flags = 0x00; + tileDef->tileRender = &tileQuadRender; } // Finished actual loading. @@ -93,46 +78,44 @@ world_t * worldLoad(char *assetWorldDirectory) { chunk->primitive = NULL; // Init the chunk. - chunkLoad(world, chunk, x, y, z); + chunkLoad(chunk, world->tilemap, x, y, z); i++; } } } + // Prepare the entity system + entitySystemInit(&world->entities); + return world; } -void worldRender(world_t *world, shader_t *shader, camera_t *camera) { +void worldRender(world_t *world, + shader_t *shader, camera_t *camera, + input_t *input +) { int32_t i, j, tx, ty, tz; float x, y, z; chunk_t *chunk; - tile_t *tile; - tiledef_t *tileDef; - entity_t *entity; - // Bind world texture - shaderUseTexture(shader, world->texture); + // Bind tilemap texture + shaderUseTexture(shader, world->tilemap->texture); // Render each chunk. for(i = 0; i < WORLD_CHUNK_COUNT; i++) { chunk = world->chunks + i; if(chunk->primitive == NULL) continue; + // Offset the primitive (into world space) x = (chunk->x * CHUNK_WIDTH); y = (chunk->y * CHUNK_HEIGHT); z = (chunk->z * CHUNK_DEPTH); - shaderUsePosition(shader, x, y, z, 0, 0, 0); primitiveDraw(chunk->primitive, 0, chunk->primitive->indiceCount); } - // Tick entities - for(i = 0; i < WORLD_ENTITY_COUNT; i++) { - entity = world->entities + i; - if(entity->entityUpdate == NULL) break; - - entity->entityUpdate(world, entity, shader, camera); - } + // Entity System tick + entitySystemUpdate(&world->entities, shader, camera, input); } void worldDispose(world_t *world) { @@ -142,11 +125,10 @@ void worldDispose(world_t *world) { // Unload the chunks for(i = 0; i < WORLD_CHUNK_COUNT; i++) { chunk = world->chunks + i; - chunkUnload(world, chunk); + chunkUnload(chunk); } - textureDispose(world->texture); - tilesetDispose(world->tileset); + textureDispose(world->tilemap->texture); tileMapDispose(world->tilemap); free(world); } @@ -194,8 +176,8 @@ void worldShift(world_t *world, int32_t x, int32_t y, int32_t z) { az = lz + nz; // Load new chunk. - chunkUnload(world, chunk); - chunkLoad(world, chunk, ax, ay, az); + chunkUnload(chunk); + chunkLoad(chunk, world->tilemap, ax, ay, az); // Update the absolute coordinates. chunk->x = ax; diff --git a/src/world/world.h b/src/world/world.h index 6ce3abdc..109c2c34 100644 --- a/src/world/world.h +++ b/src/world/world.h @@ -6,27 +6,52 @@ #pragma once #include #include -#include "worldtypes.h" #include "tile.h" #include "chunk.h" +#include "entity/entity.h" #include "../display/shader.h" #include "../display/camera.h" #include "../display/primitive.h" #include "../display/tileset.h" #include "../display/texture.h" #include "../file/asset.h" +#include "../input/input.h" #include "../util/string.h" #include "../util/math.h" /** Token in the world data file to split on. */ #define WORLD_LOAD_TOKEN ";" +/** Width of world (in chunks) */ +#define WORLD_WIDTH 5 +/** Height of world (in chunks) */ +#define WORLD_HEIGHT WORLD_WIDTH +/** Depth of world (in chunks) */ +#define WORLD_DEPTH 2 +/** Count of chunks in the world */ +#define WORLD_CHUNK_COUNT WORLD_WIDTH*WORLD_HEIGHT*WORLD_DEPTH + + +/** Representation of the world. */ +typedef struct world_t { + // Chunks + /** Tilemap of the world */ + tilemap_t *tilemap; + /** Current (chunk) coordinates of the first chunk in the chunk list */ + int32_t x, y, z; + /** Current chunk list, ordered */ + chunk_t *chunkList[WORLD_CHUNK_COUNT]; + /** Chunk array (unordered) */ + chunk_t chunks[WORLD_CHUNK_COUNT]; + + entitysystem_t entities; +} world_t; /** * Create a world object. * * @returns The newly created world. */ -world_t * worldLoad(char *fileName); +world_t * worldLoad(); /** * Render a world object to the graphics device. @@ -34,7 +59,10 @@ world_t * worldLoad(char *fileName); * @param world The world to render. * @param shader The shader to render to. */ -void worldRender(world_t *world, shader_t *shader, camera_t *camera); +void worldRender(world_t *world, + shader_t *shader, camera_t *camera, + input_t *input +); /** * Cleans up a previously created world. diff --git a/src/world/worldtypes.h b/src/world/worldtypes.h deleted file mode 100644 index cca9ad56..00000000 --- a/src/world/worldtypes.h +++ /dev/null @@ -1,150 +0,0 @@ -/** - * Copyright (c) 2021 Dominic Masters - * - * This software is released under the MIT License. - * https://opensource.org/licenses/MIT - */ - -#pragma once -#include -#include -#include "../display/shader.h" -#include "../display/primitive.h" -#include "../display/camera.h" -#include "../display/texture.h" -#include "../display/tileset.h" - -// Forwarders -typedef struct entity_t entity_t; -typedef struct world_t world_t; - -//////////////////////////////////////////////////////////////////////////////// -// Entities -//////////////////////////////////////////////////////////////////////////////// - -typedef uint8_t entityid_t; - -/** Entity ID */ -typedef struct entity_t { - entityid_t id; - - /** Callback for frame events, or NULL */ - void (*entityUpdate)(world_t *world, entity_t *entity, shader_t *shader, - camera_t *camera - ); - - /** Callback for cleanup events, or NULL */ - void (*entityDispose)(world_t *world, entity_t *entity); -} entity_t; - -typedef struct { - float x, y, z; -} entitypos_t; - - -//////////////////////////////////////////////////////////////////////////////// -// Tiles -//////////////////////////////////////////////////////////////////////////////// - -/** Width of a tile (in pixels) */ -#define TILE_WIDTH 16 -/** Height of a tile (in pixels) */ -#define TILE_HEIGHT 16 - -/** Bitwise Flags from tiles. */ -typedef uint8_t tileflag_t; - -/** Tile ID */ -typedef uint8_t tileid_t; - -/** Representation of a unique tile within a chunk. */ -typedef struct { - /** ID of the tile */ - tileid_t id; - /** Rendering indice and vertice offsets for the tile. */ - int32_t indiceStart, verticeStart; -} tile_t; - -/** Representation of the information of a tile within a tilemap. */ -typedef struct { - /** Flags of the tile */ - tileflag_t flags; - - /** How many indices and vertices a tile with this definition has. */ - int32_t indiceCount, verticeCount; -} tiledef_t; - -/** Representation of the tile definitions within a tilemap. */ -typedef struct { - /** Tile definitions within the tilemap */ - tiledef_t *tileDefinitions; -} tilemap_t; - - -//////////////////////////////////////////////////////////////////////////////// -// Chunks -//////////////////////////////////////////////////////////////////////////////// - -/** Width (in tiles) of chunks. */ -#define CHUNK_WIDTH 16 -/** Heihgt (in tiles) of chunks. */ -#define CHUNK_HEIGHT 16 -/** Depth (in tiles) of chunks. */ -#define CHUNK_DEPTH 8 -/** Count of tiles in the chunk. */ -#define CHUNK_TILE_COUNT CHUNK_WIDTH*CHUNK_HEIGHT*CHUNK_DEPTH - - - -/** Representation of a chunk, a group of tiles that can be buffered around. */ -typedef struct { - /** Position (in absolute chunk coordinates) of this chunk */ - int32_t x, y, z; - /** Array of tiles within the chunk */ - tile_t tiles[CHUNK_TILE_COUNT]; - /** Ready to be rendered chunk 3d primitive */ - primitive_t *primitive; -} chunk_t; - - -//////////////////////////////////////////////////////////////////////////////// -// Worlds -//////////////////////////////////////////////////////////////////////////////// -/** Width of world (in chunks) */ -#define WORLD_WIDTH 5 -/** Height of world (in chunks) */ -#define WORLD_HEIGHT WORLD_WIDTH -/** Depth of world (in chunks) */ -#define WORLD_DEPTH 2 - -/** Count of chunks in the world */ -#define WORLD_CHUNK_COUNT WORLD_WIDTH*WORLD_HEIGHT*WORLD_DEPTH - -#define WORLD_ENTITY_COUNT 32 - -/** Representation of the world. */ -typedef struct world_t { - /** Asset subdir name */ - char *assetWorldDirectory; - - // Tiles - /** Tileset texture */ - texture_t *texture; - /** Tileset predivided */ - tileset_t *tileset; - /** Tilemap of the world */ - tilemap_t *tilemap; - - // Chunks - /** Current (chunk) coordinates of the first chunk in the chunk list */ - int32_t x, y, z; - /** Current chunk list, ordered */ - chunk_t *chunkList[WORLD_CHUNK_COUNT]; - /** Chunk array (unordered) */ - chunk_t chunks[WORLD_CHUNK_COUNT]; - - /** Entity Definitions */ - entity_t entities[WORLD_ENTITY_COUNT]; - entitypos_t entityPositions[WORLD_ENTITY_COUNT]; - primitive_t *entityPrimitives[WORLD_ENTITY_COUNT]; -} world_t; \ No newline at end of file