eco2d/code/game/src/gen/texgen.c

51 lines
1.5 KiB
C
Raw Normal View History

2021-05-12 17:38:11 +00:00
#include "gen/texgen.h"
#include "world/world.h"
2021-05-14 05:39:36 +00:00
#include "texgen_data.c"
2021-07-18 18:30:27 +00:00
#define ZPL_NANO
#include "zpl.h"
static inline
Texture2D LoadImageEco(const char *name) {
2021-07-18 18:30:27 +00:00
static char filename[128];
zpl_snprintf(filename, 128, "art/gen/%s.png", name);
return LoadTexture(filename);
2021-07-18 18:30:27 +00:00
}
Texture2D texgen_build_block(uint32_t biome, uint32_t kind) {
2021-07-18 18:30:27 +00:00
switch (biome) {
case BLOCK_BIOME_DEV: {
switch (kind) {
2021-08-25 21:36:20 +00:00
case BLOCK_KIND_GROUND: return LoadImageEco("grass");
case BLOCK_KIND_DIRT: return LoadImageEco("dirt");
case BLOCK_KIND_WALL: return LoadImageEco("asphalt");
2021-07-18 18:30:27 +00:00
case BLOCK_KIND_HILL_SNOW:
2021-08-25 21:36:20 +00:00
case BLOCK_KIND_HILL: return LoadImageEco("rock");
case BLOCK_KIND_WATER: return LoadImageEco("water");
case BLOCK_KIND_LAVA: return LoadImageEco("lava");
2021-07-18 18:30:27 +00:00
}
}
}
Image img = GenImageColor(WORLD_BLOCK_SIZE,WORLD_BLOCK_SIZE,ColorFromHSV(biome+kind*30, 0.13f, 0.89f));
Texture2D tex = LoadTextureFromImage(img);
UnloadImage(img);
return tex;
2021-05-12 17:38:11 +00:00
}
Texture2D texgen_build_sprite(asset_id id) {
2021-08-25 21:36:20 +00:00
switch (id) {
case ASSET_DEMO_ICEMAKER: return LoadImageEco("demo_icemaker");
2021-11-02 10:48:32 +00:00
case ASSET_FENCE: return LoadImageEco("fence");
2021-08-25 21:36:20 +00:00
default: {
Image img = GenImageColor(1, 1, RAYWHITE);
Texture2D tex = LoadTextureFromImage(img);
UnloadImage(img);
return tex;
}break;
}
2021-05-12 17:38:11 +00:00
2021-08-25 21:36:20 +00:00
ZPL_PANIC("unreachable code");
2021-05-12 17:38:11 +00:00
}