From 16bcb941582f4c5cde29f3d2832ede4cd99366c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Wed, 12 May 2021 19:38:11 +0200 Subject: [PATCH] add texgen code wip --- code/game/CMakeLists.txt | 2 ++ code/game/header/gen/texgen.h | 8 ++++++++ code/game/source/assets.c | 6 ++---- code/game/source/gen/texgen.c | 19 +++++++++++++++++++ code/game/source/world/blocks.c | 5 ++--- 5 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 code/game/header/gen/texgen.h create mode 100644 code/game/source/gen/texgen.c diff --git a/code/game/CMakeLists.txt b/code/game/CMakeLists.txt index 18fbd10..ad1658b 100644 --- a/code/game/CMakeLists.txt +++ b/code/game/CMakeLists.txt @@ -26,6 +26,8 @@ add_executable(eco2d source/world/perlin.c source/world/world.c + source/gen/texgen.c + source/world/worldgen/worldgen_test.c ${PKT_SRCS} diff --git a/code/game/header/gen/texgen.h b/code/game/header/gen/texgen.h new file mode 100644 index 0000000..a568396 --- /dev/null +++ b/code/game/header/gen/texgen.h @@ -0,0 +1,8 @@ +#pragma once +#include "system.h" +#include "raylib.h" +#include "world/blocks.h" +#include "assets.h" + +Image texgen_build_block(uint32_t biome, uint32_t kind); +Texture2D texgen_build_sprite(asset_id id); diff --git a/code/game/source/assets.c b/code/game/source/assets.c index 5092d3f..16d915e 100644 --- a/code/game/source/assets.c +++ b/code/game/source/assets.c @@ -1,5 +1,6 @@ #include "assets.h" #include "raylib.h" +#include "gen/texgen.h" #define ASSETS_COUNT (sizeof(assets)/sizeof(asset)) @@ -23,10 +24,7 @@ int32_t assets_setup(void) { switch (b->kind) { case AKIND_TEXTURE: { - // TODO(zaklaus): introduce texgen - Image img = GenImageColor(1, 1, RAYWHITE); - b->tex = LoadTextureFromImage(img); - UnloadImage(img); + b->tex = texgen_build_sprite(b->id); }break; case AKIND_SOUND: { diff --git a/code/game/source/gen/texgen.c b/code/game/source/gen/texgen.c new file mode 100644 index 0000000..66ad359 --- /dev/null +++ b/code/game/source/gen/texgen.c @@ -0,0 +1,19 @@ +#include "gen/texgen.h" +#include "world/world.h" + +Image texgen_build_block(uint32_t biome, uint32_t kind) { + // TODO(zaklaus): + (void)biome; + (void)kind; + return GenImageColor(WORLD_BLOCK_SIZE, WORLD_BLOCK_SIZE, RAYWHITE); +} + +Texture2D texgen_build_sprite(asset_id id) { + // TODO(zaklaus): + (void)id; + Image img = GenImageColor(1, 1, RAYWHITE); + Texture2D tex = LoadTextureFromImage(img); + UnloadImage(img); + + return tex; +} diff --git a/code/game/source/world/blocks.c b/code/game/source/world/blocks.c index 5976b04..94b5540 100644 --- a/code/game/source/world/blocks.c +++ b/code/game/source/world/blocks.c @@ -3,6 +3,7 @@ #include "world/world.h" #include "world/blocks.h" #include "raylib.h" +#include "gen/texgen.h" #define BLOCKS_COUNT (sizeof(blocks)/sizeof(block)) @@ -22,9 +23,7 @@ typedef struct { int32_t blocks_setup(void) { for (uint32_t i=0; iimg = GenImageColor(WORLD_BLOCK_SIZE, WORLD_BLOCK_SIZE, RAYWHITE); + b->img = texgen_build_block(b->biome, b->kind); } return 0; }