From 18821938dc231e20172c59c19375d866c87e03b4 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 17 Jan 2022 12:55:27 +0100 Subject: [PATCH] Add trees --- deps/dragontype | 2 +- shaders/3d/fragment.glsl | 12 +- src/CMakeLists.txt | 26 ++- src/client/blockmesh.c | 12 +- src/client/client_commands.c | 11 +- src/client/client_node.c | 120 ++++++++++++-- src/client/client_node.h | 8 +- src/client/client_player.c | 2 +- src/client/cube.c | 72 ++++---- src/client/font.c | 2 +- src/client/game.c | 4 +- src/client/object.c | 2 +- src/client/object.h | 2 +- src/client/scene.c | 8 +- src/client/scene.h | 2 +- src/client/sky.c | 2 +- src/client/texture.c | 21 +-- src/client/texture.h | 4 +- src/debug.sh | 6 +- src/map.c | 114 +++++++++---- src/map.h | 11 +- src/node.c | 94 ++++++++++- src/node.h | 23 ++- src/perlin.h | 10 ++ src/server/biomes.c | 15 +- src/server/biomes.h | 7 +- src/server/database.c | 20 ++- src/server/mapgen.c | 25 ++- src/server/server_commands.c | 6 +- src/server/server_commands.h | 2 +- src/server/server_map.c | 27 +-- src/server/server_map.h | 1 + src/server/trees.c | 246 +++++++++++++++++++++++++++ src/server/trees.h | 23 +++ src/server/voxelctx.c | 311 +++++++++++++++++++++++++++++++++++ src/server/voxelctx.h | 58 +++++++ src/util.c | 29 ++++ src/util.h | 2 + textures/crosshair.png | Bin 144 -> 331 bytes textures/dirt.png | Bin 676 -> 834 bytes textures/grass.png | Bin 6555 -> 2126 bytes textures/lava.png | Bin 2092 -> 1910 bytes textures/lava_nt.png | Bin 2090 -> 1907 bytes textures/needles.png | Bin 0 -> 2102 bytes textures/oak_leaves.png | Bin 0 -> 527 bytes textures/oak_wood.png | Bin 0 -> 2338 bytes textures/oak_wood_top.png | Bin 0 -> 2422 bytes textures/palm_leaves.png | Bin 0 -> 2567 bytes textures/palm_wood.png | Bin 0 -> 2054 bytes textures/palm_wood_top.png | Bin 0 -> 2153 bytes textures/pine_leaves.png | Bin 0 -> 2102 bytes textures/pine_wood.png | Bin 0 -> 674 bytes textures/pine_wood_top.png | Bin 0 -> 2153 bytes textures/player.png | Bin 6085 -> 1883 bytes textures/sand.png | Bin 3056 -> 2329 bytes textures/snow.png | Bin 1818 -> 1824 bytes textures/stone.png | Bin 528 -> 686 bytes textures/sun.png | Bin 116826 -> 129914 bytes textures/unknown.png | Bin 6085 -> 1883 bytes textures/vulcano_stone.png | Bin 2150 -> 1994 bytes textures/water.png | Bin 2011 -> 1909 bytes textures/water_nt.png | Bin 2008 -> 1908 bytes textures/wood.png | Bin 2318 -> 0 bytes textures/wood_top.png | Bin 2412 -> 0 bytes 64 files changed, 1147 insertions(+), 195 deletions(-) create mode 100644 src/server/trees.c create mode 100644 src/server/trees.h create mode 100644 src/server/voxelctx.c create mode 100644 src/server/voxelctx.h create mode 100644 textures/needles.png create mode 100644 textures/oak_leaves.png create mode 100644 textures/oak_wood.png create mode 100644 textures/oak_wood_top.png create mode 100644 textures/palm_leaves.png create mode 100644 textures/palm_wood.png create mode 100644 textures/palm_wood_top.png create mode 100644 textures/pine_leaves.png create mode 100644 textures/pine_wood.png create mode 100644 textures/pine_wood_top.png delete mode 100644 textures/wood.png delete mode 100644 textures/wood_top.png diff --git a/deps/dragontype b/deps/dragontype index e2b7d38..5cb6a09 160000 --- a/deps/dragontype +++ b/deps/dragontype @@ -1 +1 @@ -Subproject commit e2b7d38971a714300ae0edfc0af7e2ef89e433cc +Subproject commit 5cb6a0956cd87981071f7e3dd5669f9698ac6682 diff --git a/shaders/3d/fragment.glsl b/shaders/3d/fragment.glsl index b419eaa..dcfb212 100755 --- a/shaders/3d/fragment.glsl +++ b/shaders/3d/fragment.glsl @@ -11,13 +11,6 @@ uniform vec3 lightDir; uniform vec3 cameraPos; uniform sampler2D textures[MAX_TEXTURE_UNITS]; -vec3 hsv2rgb(vec3 c) -{ - vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); - vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); - return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); -} - void main() { vec3 lightColor = vec3(1.0); @@ -30,6 +23,9 @@ void main() vec3 light = ambient + diffuse; - outColor = texture(textures[int(fragmentTextureIndex + 0.5)], fragmentTextureCoords) * vec4(hsv2rgb(vec3(fragmentColor)), 1.0) * vec4(light, 1.0); + outColor = texture(textures[int(fragmentTextureIndex + 0.5)], fragmentTextureCoords) * vec4(fragmentColor, 1.0) * vec4(light, 1.0); outColor.rgb = mix(outColor.rgb, ambientStrength * fogColor, clamp(length(fragmentPosition - cameraPos) / 255.0, 0.0, 1.0)); + + if (outColor.a == 0.0) + discard; } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 012b7a2..71daf3e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,8 +19,6 @@ link_libraries( set(DEPS_DIR "${CMAKE_SOURCE_DIR}/../deps/") -add_compile_definitions(DRAGONTYPE_ENDIAN_HEADER="${CMAKE_SOURCE_DIR}/../deps/endian.h/endian.h") - include_directories(SYSTEM ${DEPS_DIR} ) @@ -29,9 +27,20 @@ include_directories(BEFORE ${CMAKE_SOURCE_DIR} ) -add_compile_options(-Wall -Wextra -Wpedantic -Werror) +add_compile_options(-Wall -Wextra -Wpedantic -Werror -fmax-errors=4) -set(SOURCES_COMMON +set(DEPS_SOURCES + "${DEPS_DIR}/dragontype/array.c" + "${DEPS_DIR}/dragontype/bintree.c" + "${DEPS_DIR}/dragontype/list.c" + "${DEPS_DIR}/dragontype/number.c" + "${DEPS_DIR}/dragontype/queue.c" + "${DEPS_DIR}/dragonport/asprintf.c" + "${DEPS_DIR}/perlin/perlin.c" +) + +set(COMMON_SOURCES + ${DEPS_SOURCES} day.c environment.c map.c @@ -39,13 +48,10 @@ set(SOURCES_COMMON perlin.c signal_handlers.c util.c - "${DEPS_DIR}/dragontype/implementation.c" - "${DEPS_DIR}/dragonport/asprintf.c" - "${DEPS_DIR}/perlin/perlin.c" ) add_executable(Dragonblocks - ${SOURCES_COMMON} + ${COMMON_SOURCES} client/blockmesh.c client/camera.c client/client.c @@ -83,13 +89,15 @@ target_include_directories(Dragonblocks PUBLIC ) add_executable(DragonblocksServer - ${SOURCES_COMMON} + ${COMMON_SOURCES} server/biomes.c server/database.c server/mapgen.c server/server.c server/server_commands.c server/server_map.c + server/trees.c + server/voxelctx.c ) target_link_libraries(DragonblocksServer diff --git a/src/client/blockmesh.c b/src/client/blockmesh.c index d98a1e3..59b60c2 100644 --- a/src/client/blockmesh.c +++ b/src/client/blockmesh.c @@ -25,7 +25,7 @@ static void make_vertices(Object *object, MapBlock *block, bool hide_edges) ITERATE_MAPBLOCK { MapNode *node = &block->data[x][y][z]; - ClientNodeDefintion *def = &client_node_definitions[node->type]; + ClientNodeDefinition *def = &client_node_definitions[node->type]; if (def->visibility != NV_NONE) { v3f32 offset = { @@ -49,11 +49,11 @@ static void make_vertices(Object *object, MapBlock *block, bool hide_edges) ? block->data[npos.x][npos.y][npos.z] : map_get_node(client_map.map, (v3s32) {npos.x + node_bp.x, npos.y + node_bp.y, npos.z + node_bp.z}); - bool transparency_edge = def->visibility != NV_TRANSPARENT || neighbor.type != node->type; + bool transparency_edge = def->visibility != NV_BLEND || neighbor.type != node->type; - bool render_node = neighbor.type != NODE_UNLOADED + bool render_node = def->visibility == NV_CLIP || (neighbor.type != NODE_UNLOADED && client_node_definitions[neighbor.type].visibility != NV_SOLID - && transparency_edge; + && transparency_edge); object->visible = object->visible || render_node; @@ -61,7 +61,7 @@ static void make_vertices(Object *object, MapBlock *block, bool hide_edges) render_node = transparency_edge; if (render_node) { - object->transparent = object->transparent || def->visibility == NV_TRANSPARENT; + object->transparent = object->transparent || def->visibility == NV_BLEND; object_set_texture(object, def->tiles.textures[f]); for (int v = 0; v < 6; v++) { @@ -104,7 +104,7 @@ void blockmesh_make(MapBlock *block) obj->pos = (v3f32) {block->pos.x * MAPBLOCK_SIZE + half_block_size + 0.5f, block->pos.y * MAPBLOCK_SIZE + half_block_size + 0.5f, block->pos.z * MAPBLOCK_SIZE + half_block_size + 0.5f}; obj->scale = extra->obj ? extra->obj->scale : (v3f32) {0.1f, 0.1f, 0.1f}; obj->frustum_culling = true; - obj->box = (aabb3f32) {{-half_block_size - 0.5f, -half_block_size - 0.5f, -half_block_size - 0.5f}, {half_block_size + 0.5f, half_block_size + 0.5f, half_block_size + 0.5f}}; + obj->box = (aabb3f32) {{-half_block_size - 1.0f, -half_block_size - 1.0f, -half_block_size - 1.0f}, {half_block_size + 1.0f, half_block_size + 1.0f, half_block_size + 1.0f}}; obj->on_render = (obj->scale.x == 1.0f) ? NULL : &animate_mapblock_mesh; obj->extra = block; diff --git a/src/client/client_commands.c b/src/client/client_commands.c index cf13c0f..63bce0d 100644 --- a/src/client/client_commands.c +++ b/src/client/client_commands.c @@ -42,12 +42,17 @@ static bool block_handler(Client *client, bool good) if (! read_v3s32(client->fd, &pos)) return false; - size_t size; + u64 size; if (! read_u64(client->fd, &size)) return false; - if (size > sizeof(MapBlockData)) // guard to prevent malicious or malfunctioning packets from allocating huge unnecessary amounts of memory + if (size > 1 << 16) + return false; + + u64 rawsize; + + if (! read_u64(client->fd, &rawsize)) return false; char data[size]; @@ -61,7 +66,7 @@ static bool block_handler(Client *client, bool good) else block = map_allocate_block(pos); - bool ret = map_deserialize_block(block, data, size); + bool ret = map_deserialize_block(block, data, size, rawsize); if (good) client_map_block_received(block); diff --git a/src/client/client_node.c b/src/client/client_node.c index 832400d..22b7c65 100644 --- a/src/client/client_node.c +++ b/src/client/client_node.c @@ -7,6 +7,44 @@ #define TILES_SIMPLE(path) {.paths = {path, NULL, NULL, NULL, NULL, NULL}, .indices = {0, 0, 0, 0, 0, 0}, .textures = {NULL}} #define TILES_NONE {.paths = {NULL}, .indices = {0}, .textures = {NULL}} +static f32 hue_to_rgb(f32 p, f32 q, f32 t) +{ + if (t < 0.0f) + t += 1.0f; + + if (t > 1.0f) + t -= 1.0f; + + if (t < 1.0f / 6.0f) + return p + (q - p) * 6.0f * t; + + if (t < 1.0f / 2.0f) + return q; + + if (t < 2.0f / 3.0f) + return p + (q - p) * (2.0f / 3.0f - t) * 6.0f; + + return p; +} + +static Vertex3DColor hsl_to_rgb(v3f32 hsl) +{ + Vertex3DColor rgb; + + if (hsl.y == 0.0f) { + rgb = (Vertex3DColor) {hsl.z, hsl.z, hsl.z}; + } else { + f32 q = hsl.z < 0.5f ? hsl.z * (1.0f + hsl.y) : hsl.z + hsl.y - hsl.z * hsl.y; + f32 p = 2.0f * hsl.z - q; + + rgb.r = hue_to_rgb(p, q, hsl.x + 1.0f / 3.0f); + rgb.g = hue_to_rgb(p, q, hsl.x); + rgb.b = hue_to_rgb(p, q, hsl.x - 1.0f / 3.0f); + } + + return rgb; +} + static void render_grass(v3s32 pos, unused MapNode *node, Vertex3D *vertex, unused int f, unused int v) { f32 hum_min, hum_max, temp_max; @@ -16,9 +54,7 @@ static void render_grass(v3s32 pos, unused MapNode *node, Vertex3D *vertex, unus f32 temp_f = clamp(0.3f - get_temperature(pos), 0.0f, 0.3f) / 0.3f; - vertex->color.h = (get_humidity(pos) * (hum_max - hum_min) + hum_min) * (1.0f - temp_f) + temp_max * temp_f; - vertex->color.s = 1.0f; - vertex->color.v = 1.0f; + vertex->color = hsl_to_rgb((v3f32) {(get_humidity(pos) * (hum_max - hum_min) + hum_min) * (1.0f - temp_f) + temp_max * temp_f, 1.0f, 0.5f}); } static void render_stone(v3s32 pos, unused MapNode *node, Vertex3D *vertex, unused int f, unused int v) @@ -27,82 +63,134 @@ static void render_stone(v3s32 pos, unused MapNode *node, Vertex3D *vertex, unus vertex->textureCoordinates.t += noise2d(pos.x, pos.z, 0, seed + SO_TEXTURE_OFFSET_T); } -static void render_wood(unused v3s32 pos, unused MapNode *node, Vertex3D *vertex, int f, unused int v) +static void render_hsl(unused v3s32 pos, MapNode *node, Vertex3D *vertex, unused int f, unused int v) { - vertex->color.h = f < 4 ? 0.1f : 0.11f; - vertex->color.s = 1.0f; - vertex->color.v = 1.0f; + vertex->color = hsl_to_rgb(((HSLData *) node->data)->color); } -ClientNodeDefintion client_node_definitions[NODE_UNLOADED] = { +ClientNodeDefinition client_node_definitions[NODE_UNLOADED] = { // unknown { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/unknown.png"), .visibility = NV_SOLID, + .mipmap = true, .render = NULL, }, // air { .tiles = TILES_NONE, .visibility = NV_NONE, + .mipmap = true, .render = NULL, }, // grass { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/grass.png"), .visibility = NV_SOLID, + .mipmap = true, .render = &render_grass, }, // dirt { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/dirt.png"), .visibility = NV_SOLID, + .mipmap = true, .render = NULL, }, // stone { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/stone.png"), .visibility = NV_SOLID, + .mipmap = true, .render = &render_stone, }, // snow { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/snow.png"), .visibility = NV_SOLID, + .mipmap = true, .render = NULL, }, - // wood + // oak wood + { + .tiles = { + .paths = {RESSOURCEPATH "textures/oak_wood.png", RESSOURCEPATH "textures/oak_wood_top.png", NULL, NULL, NULL, NULL}, + .indices = {0, 0, 0, 0, 1, 1}, + .textures = {NULL}, + }, + .visibility = NV_SOLID, + .mipmap = true, + .render = &render_hsl, + }, + // oak leaves + { + .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/oak_leaves.png"), + .visibility = NV_SOLID, + .mipmap = true, + .render = &render_hsl, + }, + // pine wood + { + .tiles = { + .paths = {RESSOURCEPATH "textures/pine_wood.png", RESSOURCEPATH "textures/pine_wood_top.png", NULL, NULL, NULL, NULL}, + .indices = {0, 0, 0, 0, 1, 1}, + .textures = {NULL}, + }, + .visibility = NV_SOLID, + .mipmap = true, + .render = &render_hsl, + }, + // pine leaves + { + .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/pine_leaves.png"), + .visibility = NV_CLIP, + .mipmap = true, + .render = &render_hsl, + }, + // palm wood { .tiles = { - .paths = {RESSOURCEPATH "textures/wood.png", RESSOURCEPATH "textures/wood_top.png", NULL, NULL, NULL, NULL}, + .paths = {RESSOURCEPATH "textures/palm_wood.png", RESSOURCEPATH "textures/palm_wood_top.png", NULL, NULL, NULL, NULL}, .indices = {0, 0, 0, 0, 1, 1}, .textures = {NULL}, }, .visibility = NV_SOLID, - .render = &render_wood, + .mipmap = true, + .render = &render_hsl, + }, + // palm leaves + { + .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/palm_leaves.png"), + .visibility = NV_SOLID, + .mipmap = true, + .render = &render_hsl, }, // sand { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/sand.png"), .visibility = NV_SOLID, + .mipmap = true, .render = NULL, }, // water { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/water.png"), - .visibility = NV_TRANSPARENT, + .visibility = NV_BLEND, + .mipmap = true, .render = NULL, }, // lava { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/lava.png"), - .visibility = NV_TRANSPARENT, + .visibility = NV_BLEND, + .mipmap = true, .render = NULL, }, // vulcano_stone { .tiles = TILES_SIMPLE(RESSOURCEPATH "textures/vulcano_stone.png"), .visibility = NV_SOLID, + .mipmap = true, .render = NULL, }, }; @@ -110,16 +198,16 @@ ClientNodeDefintion client_node_definitions[NODE_UNLOADED] = { void client_node_init() { for (Node node = NODE_UNKNOWN; node < NODE_UNLOADED; node++) { - ClientNodeDefintion *def = &client_node_definitions[node]; + ClientNodeDefinition *def = &client_node_definitions[node]; - if (client_node_definitions[node].visibility != NV_NONE) { + if (def->visibility != NV_NONE) { Texture *textures[6]; for (int i = 0; i < 6; i++) { char *path = def->tiles.paths[i]; if (path) - textures[i] = texture_get(path); + textures[i] = texture_load(path, def->mipmap); else break; } diff --git a/src/client/client_node.h b/src/client/client_node.h index e3884f1..91ef338 100644 --- a/src/client/client_node.h +++ b/src/client/client_node.h @@ -8,7 +8,8 @@ typedef enum { NV_NONE, - NV_TRANSPARENT, + NV_CLIP, + NV_BLEND, NV_SOLID, } NodeVisibility; @@ -21,10 +22,11 @@ typedef struct Texture *textures[6]; // output } tiles; NodeVisibility visibility; + bool mipmap; void (*render)(v3s32 pos, MapNode *node, Vertex3D *vertex, int f, int v); -} ClientNodeDefintion; +} ClientNodeDefinition; -extern ClientNodeDefintion client_node_definitions[]; +extern ClientNodeDefinition client_node_definitions[]; void client_node_init(); #endif diff --git a/src/client/client_player.c b/src/client/client_player.c index b964f9e..d0418db 100644 --- a/src/client/client_player.c +++ b/src/client/client_player.c @@ -100,7 +100,7 @@ void client_player_add_to_scene() client_player.obj->scale = (v3f32) {0.6, 1.75, 0.6}; client_player.obj->visible = false; - object_set_texture(client_player.obj, texture_get(RESSOURCEPATH "textures/player.png")); + object_set_texture(client_player.obj, texture_load(RESSOURCEPATH "textures/player.png", true)); for (int f = 0; f < 6; f++) { for (int v = 0; v < 6; v++) { diff --git a/src/client/cube.c b/src/client/cube.c index 4241379..7384076 100644 --- a/src/client/cube.c +++ b/src/client/cube.c @@ -2,52 +2,52 @@ Vertex3D cube_vertices[6][6] = { { - {{-0.5, -0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, +0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, + {{-0.5, -0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, +0.5, -0.5}, {+0.0, +0.0, -1.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, }, { - {{-0.5, -0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, +0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, + {{-0.5, -0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, +0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, +0.5}, {+0.0, +0.0, +1.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, }, { - {{-0.5, +0.5, +0.5}, {-1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, +0.5, -0.5}, {-1.0, +0.0, +0.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, -0.5}, {-1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, -0.5}, {-1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, +0.5}, {-1.0, +0.0, +0.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, +0.5, +0.5}, {-1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, + {{-0.5, +0.5, +0.5}, {-1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, +0.5, -0.5}, {-1.0, +0.0, +0.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, -0.5}, {-1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, -0.5}, {-1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, +0.5}, {-1.0, +0.0, +0.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, +0.5, +0.5}, {-1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, }, { - {{+0.5, +0.5, +0.5}, {+1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, -0.5}, {+1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, -0.5}, {+1.0, +0.0, +0.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, -0.5}, {+1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, +0.5}, {+1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, +0.5}, {+1.0, +0.0, +0.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, + {{+0.5, +0.5, +0.5}, {+1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, -0.5}, {+1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, -0.5}, {+1.0, +0.0, +0.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, -0.5}, {+1.0, +0.0, +0.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, +0.5}, {+1.0, +0.0, +0.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, +0.5}, {+1.0, +0.0, +0.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, }, { - {{-0.5, -0.5, -0.5}, {+0.0, -1.0, +0.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, -0.5}, {+0.0, -1.0, +0.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, +0.5}, {+0.0, -1.0, +0.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, -0.5, +0.5}, {+0.0, -1.0, +0.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, +0.5}, {+0.0, -1.0, +0.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, -0.5, -0.5}, {+0.0, -1.0, +0.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, + {{-0.5, -0.5, -0.5}, {+0.0, -1.0, +0.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, -0.5}, {+0.0, -1.0, +0.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, +0.5}, {+0.0, -1.0, +0.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, -0.5, +0.5}, {+0.0, -1.0, +0.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, +0.5}, {+0.0, -1.0, +0.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, -0.5, -0.5}, {+0.0, -1.0, +0.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, }, { - {{-0.5, +0.5, -0.5}, {+0.0, +1.0, +0.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, +0.5}, {+0.0, +1.0, +0.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, -0.5}, {+0.0, +1.0, +0.0}, +0.0, {+1.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{+0.5, +0.5, +0.5}, {+0.0, +1.0, +0.0}, +0.0, {+1.0, +0.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, +0.5, -0.5}, {+0.0, +1.0, +0.0}, +0.0, {+0.0, +1.0}, {+0.0, +0.0, +1.0}}, - {{-0.5, +0.5, +0.5}, {+0.0, +1.0, +0.0}, +0.0, {+0.0, +0.0}, {+0.0, +0.0, +1.0}}, + {{-0.5, +0.5, -0.5}, {+0.0, +1.0, +0.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, +0.5}, {+0.0, +1.0, +0.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, -0.5}, {+0.0, +1.0, +0.0}, +0.0, {+1.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{+0.5, +0.5, +0.5}, {+0.0, +1.0, +0.0}, +0.0, {+1.0, +0.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, +0.5, -0.5}, {+0.0, +1.0, +0.0}, +0.0, {+0.0, +1.0}, {+1.0, +1.0, +1.0}}, + {{-0.5, +0.5, +0.5}, {+0.0, +1.0, +0.0}, +0.0, {+0.0, +0.0}, {+1.0, +1.0, +1.0}}, }, }; diff --git a/src/client/font.c b/src/client/font.c index 3fa6002..1c7684d 100644 --- a/src/client/font.c +++ b/src/client/font.c @@ -85,7 +85,7 @@ bool font_init() }; } else { font.chars[c] = (Character) { - .texture = texture_create(font.face->glyph->bitmap.buffer, font.face->glyph->bitmap.width, font.face->glyph->bitmap.rows, GL_RED), + .texture = texture_create(font.face->glyph->bitmap.buffer, font.face->glyph->bitmap.width, font.face->glyph->bitmap.rows, GL_RED, false), .bearing = {font.face->glyph->bitmap_left, font.face->glyph->bitmap_top}, .advance = font.face->glyph->advance.x, }; diff --git a/src/client/game.c b/src/client/game.c index 979b254..182bae7 100644 --- a/src/client/game.c +++ b/src/client/game.c @@ -33,7 +33,7 @@ static void crosshair_init() .scale_type = GST_IMAGE, .affect_parent_scale = false, .text = NULL, - .image = texture_get(RESSOURCEPATH "textures/crosshair.png"), + .image = texture_load(RESSOURCEPATH "textures/crosshair.png", false), .text_color = (v4f32) {0.0f, 0.0f, 0.0f, 0.0f}, .bg_color = (v4f32) {0.0f, 0.0f, 0.0f, 0.0f}, }); @@ -48,7 +48,7 @@ static void render(f64 dtime) glEnable(GL_CULL_FACE); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glAlphaFunc(GL_GREATER, 0.0f); + glAlphaFunc(GL_GREATER, 0.1f); glCullFace(GL_BACK); glFrontFace(GL_CCW); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); diff --git a/src/client/object.c b/src/client/object.c index 009ca1b..e7f3c85 100644 --- a/src/client/object.c +++ b/src/client/object.c @@ -192,7 +192,7 @@ bool object_before_render(Object *obj, f64 dtime) return false; if (obj->frustum_culling) { - aabb3f32 box = {v3f32_add(obj->box.min, obj->pos), v3f32_add(obj->box.max, obj->pos), }; + aabb3f32 box = {v3f32_add(obj->box.min, obj->pos), v3f32_add(obj->box.max, obj->pos)}; if (! frustum_is_visible(box)) return false; diff --git a/src/client/object.h b/src/client/object.h index 13fb1d9..549db74 100644 --- a/src/client/object.h +++ b/src/client/object.h @@ -27,7 +27,7 @@ typedef struct { } __attribute__((packed)) Vertex3DTextureCoordinates; typedef struct { - GLfloat h, s, v; + GLfloat r, g, b; } __attribute__((packed)) Vertex3DColor; typedef struct diff --git a/src/client/scene.c b/src/client/scene.c index 70109d0..9339b06 100644 --- a/src/client/scene.c +++ b/src/client/scene.c @@ -19,7 +19,7 @@ static int bintree_compare_f32(void *v1, void *v2, unused Bintree *tree) bool scene_init() { scene.objects = list_create(NULL); - scene.render_objects = bintree_create(sizeof(f32), &bintree_compare_f32); + scene.transparent_objects = bintree_create(sizeof(f32), &bintree_compare_f32); pthread_mutex_init(&scene.mtx, NULL); glGetIntegerv(GL_MAX_TEXTURE_UNITS, &scene.max_texture_units); @@ -113,7 +113,7 @@ void scene_render(f64 dtime) f32 distance = sqrt(pow(obj->pos.x - camera.eye[0], 2) + pow(obj->pos.y - camera.eye[1], 2) + pow(obj->pos.z - camera.eye[2], 2)); if (distance < scene.render_distance && object_before_render(obj, dtime)) { if (obj->transparent) - bintree_insert(&scene.render_objects, &distance, obj); + bintree_insert(&scene.transparent_objects, &distance, obj); else object_render(obj); } @@ -121,8 +121,8 @@ void scene_render(f64 dtime) } } - bintree_traverse(&scene.render_objects, BTT_INORDER, &bintree_render_object, NULL); - bintree_clear(&scene.render_objects, NULL, NULL); + bintree_traverse(&scene.transparent_objects, BTT_INORDER, &bintree_render_object, NULL); + bintree_clear(&scene.transparent_objects, NULL, NULL); } void scene_on_resize(int width, int height) diff --git a/src/client/scene.h b/src/client/scene.h index 1a27162..2941db0 100644 --- a/src/client/scene.h +++ b/src/client/scene.h @@ -12,7 +12,7 @@ extern struct Scene { List objects; - Bintree render_objects; + Bintree transparent_objects; pthread_mutex_t mtx; GLuint prog; GLint loc_model; diff --git a/src/client/sky.c b/src/client/sky.c index 5d9635e..30e1612 100644 --- a/src/client/sky.c +++ b/src/client/sky.c @@ -149,7 +149,7 @@ bool sky_init() sky.sun_loc_MVP = glGetUniformLocation(sky.sun_prog, "MVP"); - sky.sun_texture = texture_get(RESSOURCEPATH "textures/sun.png"); + sky.sun_texture = texture_load(RESSOURCEPATH "textures/sun.png", false); sky.sun_mesh = mesh_create(); sky.sun_mesh->textures = &sky.sun_texture->id; diff --git a/src/client/texture.c b/src/client/texture.c index 2fa1680..2e3e461 100644 --- a/src/client/texture.c +++ b/src/client/texture.c @@ -22,7 +22,7 @@ __attribute((destructor)) static void textures_deinit() list_clear_func(&textures, &list_delete_texture, NULL); } -Texture *texture_create(unsigned char *data, int width, int height, GLenum format) +Texture *texture_create(unsigned char *data, int width, int height, GLenum format, bool mipmap) { Texture *texture = malloc(sizeof(Texture)); texture->width = width; @@ -32,7 +32,7 @@ Texture *texture_create(unsigned char *data, int width, int height, GLenum forma glBindTexture(GL_TEXTURE_2D, texture->id); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mipmap ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); @@ -91,24 +91,21 @@ void texture_delete(Texture *texture) free(texture); } -static void *create_image_texture(void *key) +Texture *texture_load(char *path, bool mipmap) { int width, height, channels; - unsigned char *data = stbi_load(key, &width, &height, &channels, 0); + unsigned char *data = stbi_load(path, &width, &height, &channels, 0); if (! data) { - fprintf(stderr, "Failed to load texture %s\n", (char *) key); - return 0; + fprintf(stderr, "Failed to load texture %s\n", path); + return NULL; } - Texture *texture = texture_create(data, width, height, GL_RGBA); + Texture *texture = texture_create(data, width, height, GL_RGBA, mipmap); stbi_image_free(data); - return texture; -} + list_put(&textures, texture, NULL); -Texture *texture_get(char *path) -{ - return list_get_cached(&textures, path, &create_image_texture); + return texture; } diff --git a/src/client/texture.h b/src/client/texture.h index c339c70..7737575 100644 --- a/src/client/texture.h +++ b/src/client/texture.h @@ -10,9 +10,9 @@ typedef struct int width, height; } Texture; -Texture *texture_create(unsigned char *data, int width, int height, GLenum format); +Texture *texture_create(unsigned char *data, int width, int height, GLenum format, bool mipmap); GLuint texture_create_cubemap(char *path); void texture_delete(Texture *texture); -Texture *texture_get(char *path); +Texture *texture_load(char *path, bool mipmap); #endif diff --git a/src/debug.sh b/src/debug.sh index 400d214..32fa0c1 100755 --- a/src/debug.sh +++ b/src/debug.sh @@ -25,13 +25,15 @@ run ::1 4000 < $DEBUG_DIR/name " > $DEBUG_DIR/client_script echo "$COMMON +set print thread-events off run 4000 " > $DEBUG_DIR/server_script -konsole -e bash -c " +kitty --detach -e bash -c " echo \$\$ > $DEBUG_DIR/server_pid exec gdb --command $DEBUG_DIR/server_script ./DragonblocksServer -" & sleep 0.5 +" +sleep 0.5 gdb --command $DEBUG_DIR/client_script ./Dragonblocks diff --git a/src/map.c b/src/map.c index 5da5acd..59097b8 100644 --- a/src/map.c +++ b/src/map.c @@ -130,64 +130,88 @@ MapBlock *map_allocate_block(v3s32 pos) pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&block->mtx, &attr); + + ITERATE_MAPBLOCK block->data[x][y][z] = map_node_create(NODE_UNKNOWN, NULL, 0); + return block; } void map_free_block(MapBlock *block) { + ITERATE_MAPBLOCK map_node_delete(block->data[x][y][z]); + pthread_mutex_destroy(&block->mtx); free(block); } -bool map_deserialize_node(int fd, MapNode *node) +void map_serialize_block(MapBlock *block, char **dataptr, size_t *sizeptr, size_t *rawsizeptr) { - Node type; - - if (! read_u32(fd, &type)) - return false; + unsigned char *uncompressed = NULL; + size_t uncompressed_size = 0; - if (type >= NODE_UNLOADED) - type = NODE_UNKNOWN; + ITERATE_MAPBLOCK { + MapNode node = block->data[x][y][z]; + NodeDefinition *def = &node_definitions[node.type]; - *node = map_node_create(type); + u32 type = htobe32(node.type); + buffer_write(&uncompressed, &uncompressed_size, &type, sizeof(u32)); - return true; -} + unsigned char *data_buffer = NULL; + size_t data_bufsiz = 0; -void map_serialize_block(MapBlock *block, char **dataptr, size_t *sizeptr) -{ - MapBlockData uncompressed; - ITERATE_MAPBLOCK { - MapNode node = block->data[x][y][z]; + if (def->serialize) + def->serialize(&node, &data_buffer, &data_bufsiz); - if (node_definitions[node.type].serialize) - node_definitions[node.type].serialize(&node); + u16 data_size = htobe16(data_bufsiz); + buffer_write(&uncompressed, &uncompressed_size, &data_size, sizeof(u16)); + buffer_write(&uncompressed, &uncompressed_size, data_buffer, data_bufsiz); - node.type = htobe32(node.type); - uncompressed[x][y][z] = node; + if (data_buffer) + free(data_buffer); } - my_compress(&uncompressed, sizeof(MapBlockData), dataptr, sizeptr); + my_compress(uncompressed, uncompressed_size, dataptr, sizeptr); + *rawsizeptr = uncompressed_size; + + if (uncompressed) + free(uncompressed); } -bool map_deserialize_block(MapBlock *block, const char *data, size_t size) +bool map_deserialize_block(MapBlock *block, const char *data, size_t size, size_t rawsize) { - MapBlockData decompressed; + unsigned char decompressed[rawsize]; + size_t decompressed_size = rawsize; - if (! my_decompress(data, size, &decompressed, sizeof(MapBlockData))) + if (! my_decompress(data, size, decompressed, decompressed_size)) return false; + unsigned char *ptr = decompressed; + ITERATE_MAPBLOCK { - MapNode node = decompressed[x][y][z]; - node.type = be32toh(node.type); + // node type + u32 *type_ptr = buffer_read(&ptr, &decompressed_size, sizeof(u32)); - if (node.type >= NODE_UNLOADED) - node.type = NODE_UNKNOWN; + if (! type_ptr) + return false; - if (node_definitions[node.type].deserialize) - node_definitions[node.type].deserialize(&node); + u32 type = be32toh(*type_ptr); - block->data[x][y][z] = node; + // data size + u16 *data_size_ptr = buffer_read(&ptr, &decompressed_size, sizeof(u16)); + + if (! data_size_ptr) + return false; + + u16 data_size = be16toh(*data_size_ptr); + + // data + void *data = buffer_read(&ptr, &decompressed_size, data_size); + + if (! data && data_size) + return false; + + // set node + block->data[x][y][z] = map_node_create(type, data, data_size); } return true; @@ -206,7 +230,7 @@ MapNode map_get_node(Map *map, v3s32 pos) v3s32 blockpos = map_node_to_block_pos(pos, &offset); MapBlock *block = map_get_block(map, blockpos, false); if (! block) - return map_node_create(NODE_UNLOADED); + return map_node_create(NODE_UNLOADED, NULL, 0); return block->data[offset.x][offset.y][offset.z]; } @@ -220,18 +244,40 @@ void map_set_node(Map *map, v3s32 pos, MapNode node, bool create, void *arg) block->data[offset.x][offset.y][offset.z] = node; if (map->callbacks.after_set_node) map->callbacks.after_set_node(block, offset, arg); + } else { + map_node_delete(node); } pthread_mutex_unlock(&block->mtx); } } -MapNode map_node_create(Node type) +MapNode map_node_create(Node type, void *data, size_t size) { + if (type >= NODE_UNLOADED) + type = NODE_UNKNOWN; + + NodeDefinition *def = &node_definitions[type]; + MapNode node; node.type = type; + node.data = def->data_size ? malloc(def->data_size) : NULL; - if (node.type != NODE_UNLOADED && node_definitions[node.type].create) - node_definitions[node.type].create(&node); + if (def->create) + def->create(&node); + + if (def->deserialize && size) + def->deserialize(&node, data, size); return node; } + +void map_node_delete(MapNode node) +{ + NodeDefinition *def = &node_definitions[node.type]; + + if (def->delete) + def->delete(&node); + + if (node.data) + free(node.data); +} diff --git a/src/map.h b/src/map.h index 25827f0..c8eb972 100644 --- a/src/map.h +++ b/src/map.h @@ -14,6 +14,7 @@ typedef struct MapNode { Node type; + void *data; } MapNode; typedef MapNode MapBlockData[MAPBLOCK_SIZE][MAPBLOCK_SIZE][MAPBLOCK_SIZE]; @@ -60,15 +61,15 @@ MapBlock *map_get_block(Map *map, v3s32 pos, bool create); MapBlock *map_allocate_block(v3s32 pos); void map_free_block(MapBlock *block); -bool map_deserialize_node(int fd, MapNode *buf); -void map_serialize_block(MapBlock *block, char **dataptr, size_t *sizeptr); -bool map_deserialize_block(MapBlock *block, const char *data, size_t size); +void map_serialize_block(MapBlock *block, char **dataptr, size_t *sizeptr, size_t *rawsizeptr); +bool map_deserialize_block(MapBlock *block, const char *data, size_t size, size_t rawsize); v3s32 map_node_to_block_pos(v3s32 pos, v3u8 *offset); MapNode map_get_node(Map *map, v3s32 pos); void map_set_node(Map *map, v3s32 pos, MapNode node, bool create, void *arg); -MapNode map_node_create(Node type); -void map_node_clear(MapNode *node); + +MapNode map_node_create(Node type, void *data, size_t size); +void map_node_delete(MapNode node); #endif diff --git a/src/node.c b/src/node.c index 0fe7ce9..39e60ac 100644 --- a/src/node.c +++ b/src/node.c @@ -1,82 +1,168 @@ #include "map.h" #include "node.h" #include "util.h" +#include -NodeDefintion node_definitions[NODE_UNLOADED] = { +static void serialize_hsl(MapNode *node, unsigned char **buffer, size_t *bufsiz) +{ + HSLData *node_data = node->data; + buffer_write(buffer, bufsiz, (f32 []) {node_data->color.x, node_data->color.y, node_data->color.z}, sizeof(f32) * 3); +} + +static void deserialize_hsl(MapNode *node, unsigned char *data, size_t size) +{ + HSLData *node_data = node->data; + + f32 *color = buffer_read(&data, &size, sizeof(f32) * 3); + + if (! color) + return; + + *node_data = (HSLData) {.color = {color[0], color[1], color[2]}}; +} + +NodeDefinition node_definitions[NODE_UNLOADED] = { // unknown { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // air { .solid = false, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // grass { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // dirt { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // stone { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // snow { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, - // wood + // oak wood { .solid = true, + .data_size = sizeof(HSLData), .create = NULL, - .serialize = NULL, - .deserialize = NULL, + .delete = NULL, + .serialize = &serialize_hsl, + .deserialize = &deserialize_hsl, + }, + // oak leaves + { + .solid = true, + .data_size = sizeof(HSLData), + .create = NULL, + .delete = NULL, + .serialize = &serialize_hsl, + .deserialize = &deserialize_hsl, + }, + // pine wood + { + .solid = true, + .data_size = sizeof(HSLData), + .create = NULL, + .delete = NULL, + .serialize = &serialize_hsl, + .deserialize = &deserialize_hsl, + }, + // pine leaves + { + .solid = true, + .data_size = sizeof(HSLData), + .create = NULL, + .delete = NULL, + .serialize = &serialize_hsl, + .deserialize = &deserialize_hsl, + }, + // palm wood + { + .solid = true, + .data_size = sizeof(HSLData), + .create = NULL, + .delete = NULL, + .serialize = &serialize_hsl, + .deserialize = &deserialize_hsl, + }, + // palm leaves + { + .solid = true, + .data_size = sizeof(HSLData), + .create = NULL, + .delete = NULL, + .serialize = &serialize_hsl, + .deserialize = &deserialize_hsl, }, // sand { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // water { .solid = false, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // lava { .solid = false, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, // vulcanostone { .solid = true, + .data_size = 0, .create = NULL, + .delete = NULL, .serialize = NULL, .deserialize = NULL, }, diff --git a/src/node.h b/src/node.h index bf66844..0c51348 100644 --- a/src/node.h +++ b/src/node.h @@ -4,6 +4,8 @@ #include #include +#define NODE_DEFINITION(type) ((type) < NODE_UNLOADED ? &node_definitions[NODE_UNKNOWN] : &node_definitions[(type)]); + typedef enum { NODE_UNKNOWN, // Used for unknown nodes received from server (caused by outdated clients) @@ -12,7 +14,12 @@ typedef enum NODE_DIRT, NODE_STONE, NODE_SNOW, - NODE_WOOD, + NODE_OAK_WOOD, + NODE_OAK_LEAVES, + NODE_PINE_WOOD, + NODE_PINE_LEAVES, + NODE_PALM_WOOD, + NODE_PALM_LEAVES, NODE_SAND, NODE_WATER, NODE_LAVA, @@ -25,11 +32,17 @@ struct MapNode; typedef struct { bool solid; + size_t data_size; void (*create)(struct MapNode *node); - void (*serialize)(struct MapNode *node); - void (*deserialize)(struct MapNode *node); -} NodeDefintion; + void (*delete)(struct MapNode *node); + void (*serialize)(struct MapNode *node, unsigned char **buffer, size_t *bufsiz); + void (*deserialize)(struct MapNode *node, unsigned char *data, size_t size); +} NodeDefinition; + +typedef struct { + v3f32 color; +} HSLData; -extern NodeDefintion node_definitions[]; +extern NodeDefinition node_definitions[]; #endif diff --git a/src/perlin.h b/src/perlin.h index dd09951..366a4d9 100644 --- a/src/perlin.h +++ b/src/perlin.h @@ -21,6 +21,16 @@ typedef enum SO_VULCANO_STONE, SO_VULCANO_CRATER_TOP, SO_HILLYNESS, + SO_VOXELCTX, + SO_OAKTREE, + SO_OAKTREE_AREA, + SO_PINETREE, + SO_PINETREE_AREA, + SO_PINETREE_HEIGHT, + SO_PINETREE_BRANCH, + SO_PINETREE_BRANCH_DIR, + SO_PALMTREE, + SO_PALMTREE_AREA, } SeedOffset; extern s32 seed; diff --git a/src/server/biomes.c b/src/server/biomes.c index 18c5a38..082c85c 100644 --- a/src/server/biomes.c +++ b/src/server/biomes.c @@ -22,7 +22,7 @@ Biome get_biome(v2s32 pos, f64 *factor) // mountain biome -static s32 height_mountain(v2s32 pos, f64 factor, s32 height, unused void *row_data, unused void *block_data) +static s32 height_mountain(v2s32 pos, f64 factor, f32 height, unused void *row_data, unused void *block_data) { return pow((height + 96) * pow(((smooth2d(U32(pos.x) / 48.0, U32(pos.y) / 48.0, 0, seed + SO_MOUNTAIN_HEIGHT) + 1.0) * 256.0 + 128.0), factor), 1.0 / (factor + 1.0)) - 96; } @@ -173,7 +173,7 @@ static void preprocess_block_ocean(MapBlock *block, unused List *changed_blocks, data->vulcano_pos = (v2s32) {vulcano_pos.x * MAPBLOCK_SIZE, vulcano_pos.y * MAPBLOCK_SIZE}; } -static void preprocess_row_ocean(v2s32 pos, unused s32 height, unused f64 factor, void *row_data, void *block_data) +static void preprocess_row_ocean(v2s32 pos, unused f64 factor, void *row_data, void *block_data) { OceanRowData *rdata = row_data; OceanBlockData *bdata = block_data; @@ -202,7 +202,7 @@ static void preprocess_row_ocean(v2s32 pos, unused s32 height, unused f64 factor } } -static s32 height_ocean(unused v2s32 pos, f64 factor, s32 height, void *row_data, unused void *block_data) +static s32 height_ocean(unused v2s32 pos, f64 factor, f32 height, void *row_data, unused void *block_data) { OceanRowData *rdata = row_data; s32 ocean_floor = calculate_ocean_floor(factor, height); @@ -210,7 +210,7 @@ static s32 height_ocean(unused v2s32 pos, f64 factor, s32 height, void *row_data return rdata->vulcano ? max(ocean_floor, rdata->vulcano_height) : ocean_floor; } -static Node generate_ocean(v3s32 pos, s32 diff, unused f64 humidity, unused f64 temperature, unused f64 factor, unused MapBlock *block, unused List *changed_blocks, void *row_data, unused void *block_data) +Node ocean_get_node_at(v3s32 pos, s32 diff, void *row_data) { OceanRowData *rdata = row_data; @@ -233,6 +233,11 @@ static Node generate_ocean(v3s32 pos, s32 diff, unused f64 humidity, unused f64 return NODE_AIR; } +static Node generate_ocean(v3s32 pos, s32 diff, unused f64 humidity, unused f64 temperature, unused f64 factor, unused MapBlock *block, unused List *changed_blocks, void *row_data, unused void *block_data) +{ + return ocean_get_node_at(pos, diff, row_data); +} + // hills biome static bool boulder_touching_ground(v3s32 pos, s32 diff) @@ -245,7 +250,7 @@ static bool boulder_touching_ground(v3s32 pos, s32 diff) return true; } -static s32 height_hills(unused v2s32 pos, unused f64 factor, s32 height, unused void *row_data, unused void *block_data) +static s32 height_hills(unused v2s32 pos, unused f64 factor, f32 height, unused void *row_data, unused void *block_data) { return height; } diff --git a/src/server/biomes.h b/src/server/biomes.h index 0cf4881..4615563 100644 --- a/src/server/biomes.h +++ b/src/server/biomes.h @@ -19,16 +19,17 @@ typedef struct SeedOffset offset; f64 threshold; bool snow; - s32 (*height)(v2s32 pos, f64 factor, s32 height, void *row_data, void *block_data); + s32 (*height)(v2s32 pos, f64 factor, f32 height, void *row_data, void *block_data); Node (*generate)(v3s32 pos, s32 diff, f64 humidity, f64 temperature, f64 factor, MapBlock *block, List *changed_blocks, void *row_data, void *block_data); size_t block_data_size; void (*preprocess_block)(MapBlock *block, List *changed_blocks, void *block_data); size_t row_data_size; - void (*preprocess_row)(v2s32 pos, s32 height, f64 factor, void *row_data, void *block_data); + void (*preprocess_row)(v2s32 pos, f64 factor, void *row_data, void *block_data); } BiomeDef; -extern BiomeDef biomes[BIOME_COUNT]; +extern BiomeDef biomes[]; Biome get_biome(v2s32 pos, f64 *factor); +Node ocean_get_node_at(v3s32 pos, s32 diff, void *row_data); #endif diff --git a/src/server/database.c b/src/server/database.c index 9c8bd23..d205a88 100644 --- a/src/server/database.c +++ b/src/server/database.c @@ -72,7 +72,7 @@ void database_init() } const char *init_stmts[3]= { - "CREATE TABLE IF NOT EXISTS map (pos BLOB PRIMARY KEY, generated INTEGER, size INTEGER, data BLOB, mgsb_size INTEGER, mgsb_data BLOB);", + "CREATE TABLE IF NOT EXISTS map (pos BLOB PRIMARY KEY, generated INTEGER, size INTEGER, rawsize INTEGER, data BLOB, mgsb_size INTEGER, mgsb_data BLOB);", "CREATE TABLE IF NOT EXISTS meta (key TEXT PRIMARY KEY, value INTEGER);", "CREATE TABLE IF NOT EXISTS players (name TEXT PRIMARY KEY, pos BLOB);" }; @@ -115,7 +115,7 @@ bool database_load_block(MapBlock *block) { sqlite3_stmt *stmt; - if (! (stmt = prepare_block_statement(block, "loading", "SELECT generated, size, data, mgsb_size, mgsb_data FROM map WHERE pos=?"))) + if (! (stmt = prepare_block_statement(block, "loading", "SELECT generated, size, rawsize, data, mgsb_size, mgsb_data FROM map WHERE pos=?"))) return false; int rc = sqlite3_step(stmt); @@ -126,15 +126,16 @@ bool database_load_block(MapBlock *block) extra->state = sqlite3_column_int(stmt, 0) ? MBS_READY : MBS_CREATED; extra->size = sqlite3_column_int64(stmt, 1); + extra->rawsize = sqlite3_column_int64(stmt, 2); extra->data = malloc(extra->size); - memcpy(extra->data, sqlite3_column_blob(stmt, 2), extra->size); + memcpy(extra->data, sqlite3_column_blob(stmt, 3), extra->size); MapgenStageBuffer decompressed_mgsb; - my_decompress(sqlite3_column_blob(stmt, 4), sqlite3_column_int64(stmt, 3), &decompressed_mgsb, sizeof(MapgenStageBuffer)); + my_decompress(sqlite3_column_blob(stmt, 5), sqlite3_column_int64(stmt, 4), &decompressed_mgsb, sizeof(MapgenStageBuffer)); ITERATE_MAPBLOCK extra->mgs_buffer[x][y][z] = be32toh(decompressed_mgsb[x][y][z]); - if (! map_deserialize_block(block, extra->data, extra->size)) + if (! map_deserialize_block(block, extra->data, extra->size, extra->rawsize)) printf("Error with deserializing block at (%d, %d, %d)\n", block->pos.x, block->pos.y, block->pos.z); } else if (rc != SQLITE_DONE) { print_block_error(block, "loading"); @@ -149,7 +150,7 @@ void database_save_block(MapBlock *block) { sqlite3_stmt *stmt; - if (! (stmt = prepare_block_statement(block, "saving", "REPLACE INTO map (pos, generated, size, data, mgsb_size, mgsb_data) VALUES(?1, ?2, ?3, ?4, ?5, ?6)"))) + if (! (stmt = prepare_block_statement(block, "saving", "REPLACE INTO map (pos, generated, size, rawsize, data, mgsb_size, mgsb_data) VALUES(?1, ?2, ?3, ?4, ?5, ?6, ?7)"))) return; MapBlockExtraData *extra = block->extra; @@ -164,9 +165,10 @@ void database_save_block(MapBlock *block) sqlite3_bind_int(stmt, 2, extra->state > MBS_CREATED); sqlite3_bind_int64(stmt, 3, extra->size); - sqlite3_bind_blob(stmt, 4, extra->data, extra->size, SQLITE_TRANSIENT); - sqlite3_bind_int64(stmt, 5, mgsb_size); - sqlite3_bind_blob(stmt, 6, mgsb_data, mgsb_size, &free); + sqlite3_bind_int64(stmt, 4, extra->rawsize); + sqlite3_bind_blob(stmt, 5, extra->data, extra->size, SQLITE_TRANSIENT); + sqlite3_bind_int64(stmt, 6, mgsb_size); + sqlite3_bind_blob(stmt, 7, mgsb_data, mgsb_size, &free); if (sqlite3_step(stmt) != SQLITE_DONE) print_block_error(block, "saving"); diff --git a/src/server/mapgen.c b/src/server/mapgen.c index 22e54e0..bfaaf0d 100644 --- a/src/server/mapgen.c +++ b/src/server/mapgen.c @@ -1,10 +1,12 @@ #include #include +#include #include "environment.h" #include "perlin.h" #include "server/biomes.h" #include "server/mapgen.h" #include "server/server_map.h" +#include "server/trees.h" #include "util.h" void mapgen_set_node(v3s32 pos, MapNode node, MapgenStage mgs, List *changed_blocks) @@ -32,9 +34,9 @@ void mapgen_generate_block(MapBlock *block, List *changed_blocks) for (u8 z = 0; z < MAPBLOCK_SIZE; z++) { v2s32 pos_horizontal = {pos_x, block_node_pos.z + z}; - s32 height = (pnoise2d(U32(pos_horizontal.x) / 32.0, U32(pos_horizontal.y) / 32.0, 0.45, 5, seed + SO_HEIGHT) * 16.0) + s32 default_height = (pnoise2d(U32(pos_horizontal.x) / 32.0, U32(pos_horizontal.y) / 32.0, 0.45, 5, seed + SO_HEIGHT) * 16.0) * (pnoise2d(U32(pos_horizontal.x) / 256.0, U32(pos_horizontal.y) / 256.0, 0.45, 5, seed + SO_HILLYNESS) * 0.5 + 0.5) - + 32; + + 32.0; f64 factor; Biome biome = get_biome(pos_horizontal, &factor); @@ -51,9 +53,9 @@ void mapgen_generate_block(MapBlock *block, List *changed_blocks) char row_data[biome_def->row_data_size]; if (biome_def->preprocess_row) - biome_def->preprocess_row(pos_horizontal, height, factor, row_data, block_data[biome]); + biome_def->preprocess_row(pos_horizontal, factor, row_data, block_data[biome]); - height = biome_def->height(pos_horizontal, factor, height, row_data, block_data[biome]); + s32 height = biome_def->height(pos_horizontal, factor, default_height, row_data, block_data[biome]); for (u8 y = 0; y < MAPBLOCK_SIZE; y++) { v3s32 pos = {pos_horizontal.x, block_node_pos.y + y, pos_horizontal.y}; @@ -68,9 +70,22 @@ void mapgen_generate_block(MapBlock *block, List *changed_blocks) if (biome_def->snow && diff <= 1 && temperature < 0.0 && node == NODE_AIR) node = NODE_SNOW; + if (diff == 1) { + for (int i = 0; i < NUM_TREES; i++) { + TreeDef *def = &tree_definitions[i]; + + if (def->condition(pos, humidity, temperature, biome, factor, block, row_data, block_data) + && noise2d(pos.x, pos.z, 0, seed + def->offset) * 0.5 + 0.5 < def->probability + && smooth2d(U32(pos.x) / def->spread, U32(pos.z) / def->spread, 0, seed + def->area_offset) * 0.5 + 0.5 < def->area_probability) { + def->generate(pos, changed_blocks); + break; + } + } + } + pthread_mutex_lock(&block->mtx); if (extra->mgs_buffer[x][y][z] <= MGS_TERRAIN) { - block->data[x][y][z] = map_node_create(node); + block->data[x][y][z] = map_node_create(node, NULL, 0); extra->mgs_buffer[x][y][z] = MGS_TERRAIN; } pthread_mutex_unlock(&block->mtx); diff --git a/src/server/server_commands.c b/src/server/server_commands.c index 1d48fa0..2a437ff 100644 --- a/src/server/server_commands.c +++ b/src/server/server_commands.c @@ -70,13 +70,13 @@ static bool setnode_handler(Client *client, bool good) if (! read_v3s32(client->fd, &pos)) return false; - MapNode node; + Node node; - if (! map_deserialize_node(client->fd, &node)) + if (! read_u32(client->fd, &node)) return false; if (good) - map_set_node(server_map.map, pos, node, false, NULL); + map_set_node(server_map.map, pos, map_node_create(node, NULL, 0), false, NULL); return true; } diff --git a/src/server/server_commands.h b/src/server/server_commands.h index 35025d5..2f5d7a9 100644 --- a/src/server/server_commands.h +++ b/src/server/server_commands.h @@ -8,7 +8,7 @@ typedef enum SERVER_COMMAND_NULL, // invalid command SC_DISCONNECT, // client notifies server about disconnecting SC_AUTH, // client wants to authentify [body: name (zero terminated string)] - SC_SETNODE, // player placed a node [body: pos (v3s32), node (MapNode)] + SC_SETNODE, // player placed a node [body: pos (v3s32), node (Node)] SC_POS, // player moved [body: pos (v3f)] SC_REQUEST_BLOCK, // request to send a block [body: pos (v3s32)] SERVER_COMMAND_COUNT, // count of available commands diff --git a/src/server/server_map.c b/src/server/server_map.c index 83b81f7..f7cb57d 100644 --- a/src/server/server_map.c +++ b/src/server/server_map.c @@ -1,3 +1,4 @@ +#define _GNU_SOURCE #include #include #include @@ -21,7 +22,11 @@ static void send_block(Client *client, MapBlock *block) pthread_mutex_lock(&client->mtx); if (client->state == CS_ACTIVE) - (void) (write_u32(client->fd, CC_BLOCK) && write_v3s32(client->fd, block->pos) && write_u64(client->fd, extra->size) && write(client->fd, extra->data, extra->size) != -1); + (void) (write_u32(client->fd, CC_BLOCK) + && write_v3s32(client->fd, block->pos) + && write_u64(client->fd, extra->size) + && write_u64(client->fd, extra->rawsize) + && write(client->fd, extra->data, extra->size) != -1); pthread_mutex_unlock(&client->mtx); } @@ -37,7 +42,7 @@ static void send_block_to_near(MapBlock *block) if (extra->data) free(extra->data); - map_serialize_block(block, &extra->data, &extra->size); + map_serialize_block(block, &extra->data, &extra->size, &extra->rawsize); database_save_block(block); if (extra->state == MBS_CREATED) @@ -126,7 +131,7 @@ static void on_create_block(MapBlock *block) extra->data = NULL; ITERATE_MAPBLOCK { - block->data[x][y][z] = map_node_create(NODE_AIR); + block->data[x][y][z] = map_node_create(NODE_AIR, NULL, 0); extra->mgs_buffer[x][y][z] = MGS_VOID; } } @@ -215,29 +220,29 @@ static void generate_spawn_hut() for (s32 x = -4; x <= +4; x++) { for (s32 y = 0; y <= 3; y++) { for (s32 z = -3; z <= +2; z++) { - mapgen_set_node((v3s32) {x, server_map.spawn_height + y, z}, (MapNode) {NODE_AIR}, MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {x, server_map.spawn_height + y, z}, map_node_create(NODE_AIR, NULL, 0), MGS_PLAYER, &changed_blocks); } } } for (s32 x = -5; x <= +5; x++) { for (s32 z = -4; z <= +3; z++) { - mapgen_set_node((v3s32) {x, server_map.spawn_height - 1, z}, (MapNode) {NODE_WOOD}, MGS_PLAYER, &changed_blocks); - mapgen_set_node((v3s32) {x, server_map.spawn_height + 4, z}, (MapNode) {NODE_WOOD}, MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {x, server_map.spawn_height - 1, z}, map_node_create(NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {x, server_map.spawn_height + 4, z}, map_node_create(NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); } } for (s32 y = 0; y <= 3; y++) { for (s32 x = -5; x <= +5; x++) { - mapgen_set_node((v3s32) {x, server_map.spawn_height + y, -4}, (MapNode) {((y == 1 || y == 2) && ((x >= -3 && x <= -1) || (x >= +1 && x <= +2))) ? NODE_AIR : NODE_WOOD}, MGS_PLAYER, &changed_blocks); - mapgen_set_node((v3s32) {x, server_map.spawn_height + y, +3}, (MapNode) {((y == 1 || y == 2) && ((x >= -3 && x <= -2) || (x >= +1 && x <= +3))) ? NODE_AIR : NODE_WOOD}, MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {x, server_map.spawn_height + y, -4}, map_node_create(((y == 1 || y == 2) && ((x >= -3 && x <= -1) || (x >= +1 && x <= +2))) ? NODE_AIR : NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {x, server_map.spawn_height + y, +3}, map_node_create(((y == 1 || y == 2) && ((x >= -3 && x <= -2) || (x >= +1 && x <= +3))) ? NODE_AIR : NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); } } for (s32 y = 0; y <= 3; y++) { for (s32 z = -3; z <= +2; z++) { - mapgen_set_node((v3s32) {-5, server_map.spawn_height + y, z}, (MapNode) {NODE_WOOD}, MGS_PLAYER, &changed_blocks); - mapgen_set_node((v3s32) {+5, server_map.spawn_height + y, z}, (MapNode) {((y != 3) && (z == -1 || z == +0)) ? NODE_AIR : NODE_WOOD}, MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {-5, server_map.spawn_height + y, z}, map_node_create(NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); + mapgen_set_node((v3s32) {+5, server_map.spawn_height + y, z}, map_node_create(((y != 3) && (z == -1 || z == +0)) ? NODE_AIR : NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); } } @@ -265,7 +270,7 @@ static void generate_spawn_hut() if (node_definitions[node].solid) break; - mapgen_set_node(pos, (MapNode) {node == NODE_LAVA ? NODE_VULCANO_STONE : NODE_WOOD}, MGS_PLAYER, &changed_blocks); + mapgen_set_node(pos, map_node_create(node == NODE_LAVA ? NODE_VULCANO_STONE : NODE_OAK_WOOD, NULL, 0), MGS_PLAYER, &changed_blocks); } } diff --git a/src/server/server_map.h b/src/server/server_map.h index d4049fb..0cddb3e 100644 --- a/src/server/server_map.h +++ b/src/server/server_map.h @@ -33,6 +33,7 @@ typedef struct { char *data; // cached serialized data size_t size; // size of data + size_t rawsize; // size of decompressed data MapBlockState state; // generation state of the block pthread_t mapgen_thread; // thread that is generating block MapgenStageBuffer mgs_buffer; // buffer to make sure mapgen only overrides things it should diff --git a/src/server/trees.c b/src/server/trees.c new file mode 100644 index 0000000..b5d0ee1 --- /dev/null +++ b/src/server/trees.c @@ -0,0 +1,246 @@ +#include +#include +#include "server/biomes.h" +#include "server/mapgen.h" +#include "server/trees.h" +#include "server/voxelctx.h" +#include "util.h" + +// oak + +static bool oak_condition(unused v3s32 pos, unused f64 humidity, unused f64 temperature, Biome biome, unused f64 factor, unused MapBlock *block, unused void *row_data, unused void *block_data) +{ + return biome == BIOME_HILLS; +} + +static void oak_tree_leaf(Voxelctx *ctx) +{ + if (! voxelctx_is_alive(ctx)) + return; + + voxelctx_push(ctx); + voxelctx_cube(ctx, NODE_OAK_LEAVES, true); + voxelctx_pop(ctx); + + voxelctx_push(ctx); + voxelctx_x(ctx, 0.5f); + voxelctx_sx(ctx, 0.9f); + voxelctx_sy(ctx, 0.9f); + voxelctx_sz(ctx, 0.8f); + voxelctx_ry(ctx, 25.0f); + voxelctx_x(ctx, 0.4f); + oak_tree_leaf(ctx); + voxelctx_pop(ctx); +} + +static void oak_tree_top(Voxelctx *ctx) +{ + if (! voxelctx_is_alive(ctx)) + return; + + voxelctx_push(ctx); + for (int i = 0; i < 8; i++) { + voxelctx_rz(ctx, 360.0f / 8.0f); + voxelctx_push(ctx); + voxelctx_life(ctx, 8); + voxelctx_sy(ctx, 2.0f); + voxelctx_z(ctx, voxelctx_random(ctx, 0.0f, 5.0f)); + voxelctx_s(ctx, 5.0f); + voxelctx_light(ctx, -0.4f); + voxelctx_sat(ctx, 0.5f); + voxelctx_hue(ctx, voxelctx_random(ctx, 60.0f, 20.0f)); + voxelctx_ry(ctx, -45.0f); + oak_tree_leaf(ctx); + voxelctx_pop(ctx); + } + voxelctx_pop(ctx); +} + +static void oak_tree_part(Voxelctx *ctx, f32 n) +{ + if (! voxelctx_is_alive(ctx)) + return; + + voxelctx_push(ctx); + for (int i = 1; i <= n; i++) { + voxelctx_z(ctx, 1.0f); + voxelctx_rz(ctx, voxelctx_random(ctx, 30.0f, 10.0f)); + voxelctx_rx(ctx, voxelctx_random(ctx, 0.0f, 10.0f)); + + voxelctx_push(ctx); + voxelctx_s(ctx, 4.0f); + voxelctx_x(ctx, 0.1f); + voxelctx_light(ctx, voxelctx_random(ctx, 0.0f, 0.1f)); + //voxelctx_cylinder(ctx, NODE_OAK_WOOD, true); + voxelctx_cube(ctx, NODE_OAK_WOOD, true); + voxelctx_pop(ctx); + + if (i == (int) (n - 2.0f)) { + voxelctx_push(ctx); + oak_tree_top(ctx); + voxelctx_pop(ctx); + } + } + voxelctx_pop(ctx); +} + +static void oak_tree(v3s32 pos, List *changed_blocks) +{ + Voxelctx *ctx = voxelctx_create(changed_blocks, MGS_TREES, pos); + + voxelctx_hue(ctx, 40.0f); + voxelctx_light(ctx, -0.5f); + voxelctx_sat(ctx, 0.5f); + + /*voxelctx_s(ctx, 50); + voxelctx_ry(ctx, 45); + + voxelctx_push(ctx); + voxelctx_cube(ctx, NODE_OAK_LEAVES, true); + voxelctx_pop(ctx); + + voxelctx_delete(ctx); + if (true) + return;*/ + + f32 n = voxelctx_random(ctx, 40.0f, 10.0f); + + voxelctx_push(ctx); + for (int i = 1; i <= 3; i++) { + voxelctx_rz(ctx, voxelctx_random(ctx, 120.0f, 45.0f)); + voxelctx_push(ctx); + voxelctx_y(ctx, 0.5f); + voxelctx_light(ctx, voxelctx_random(ctx, -0.3f, 0.05f)); + oak_tree_part(ctx, n); + voxelctx_pop(ctx); + } + voxelctx_pop(ctx); + + voxelctx_delete(ctx); +} + +// pine + +static bool pine_condition(unused v3s32 pos, unused f64 humidity, unused f64 temperature, Biome biome, unused f64 factor, unused MapBlock *block, unused void *row_data, unused void *block_data) +{ + return biome == BIOME_MOUNTAIN; +} + +static void pine_tree(v3s32 pos, List *changed_blocks) +{ + s32 tree_top = (noise2d(pos.x, pos.z, 0, seed + SO_PINETREE_HEIGHT) * 0.5 + 0.5) * (35.0 - 20.0) + 20.0 + pos.y; + for (v3s32 tree_pos = pos; tree_pos.y < tree_top; tree_pos.y++) { + f64 branch_length = noise3d(tree_pos.x, tree_pos.y, tree_pos.z, 0, seed + SO_PINETREE_BRANCH) * 3.0; + + v3s32 dirs[4] = { + {+0, +0, +1}, + {+1, +0, +0}, + {+0, +0, -1}, + {-1, +0, +0}, + }; + + s32 dir = (noise3d(tree_pos.x, tree_pos.y, tree_pos.z, 0, seed + SO_PINETREE_BRANCH_DIR) * 0.5 + 0.5) * 4.0; + + for (v3s32 branch_pos = tree_pos; branch_length > 0; branch_length--, branch_pos = v3s32_add(branch_pos, dirs[dir])) + mapgen_set_node(branch_pos, map_node_create(NODE_PINE_WOOD, NULL, 0), MGS_TREES, changed_blocks); + + mapgen_set_node(tree_pos, map_node_create(NODE_PINE_WOOD, NULL, 0), MGS_TREES, changed_blocks); + } +} + +// palm + +static bool palm_condition(v3s32 pos, unused f64 humidity, unused f64 temperature, Biome biome, unused f64 factor, unused MapBlock *block, void *row_data, unused void *block_data) +{ + return biome == BIOME_OCEAN + && ocean_get_node_at((v3s32) {pos.x, pos.y - 0, pos.z}, 1, row_data) == NODE_AIR + && ocean_get_node_at((v3s32) {pos.x, pos.y - 1, pos.z}, 0, row_data) == NODE_SAND; +} + +static void palm_branch(Voxelctx *ctx) +{ + if (! voxelctx_is_alive(ctx)) + return; + + voxelctx_cube(ctx, NODE_PALM_LEAVES, true); + voxelctx_push(ctx); + voxelctx_z(ctx, 0.5f); + voxelctx_s(ctx, 0.8f); + voxelctx_rx(ctx, voxelctx_random(ctx, 20.0f, 4.0f)); + voxelctx_z(ctx, 0.5f); + palm_branch(ctx); + voxelctx_pop(ctx); +} + +static void palm_tree(v3s32 pos, List *changed_blocks) +{ + Voxelctx *ctx = voxelctx_create(changed_blocks, MGS_TREES, (v3s32) {pos.x, pos.y - 1, pos.z}); + + f32 s = voxelctx_random(ctx, 8.0f, 2.0f); + + voxelctx_push(ctx); + for (int i = 1; i <= s; i++) { + voxelctx_z(ctx, 1.0f); + voxelctx_push(ctx); + voxelctx_s(ctx, 1.0f); + voxelctx_light(ctx, voxelctx_random(ctx, -0.8f, 0.1f)); + voxelctx_sat(ctx, 0.5f); + voxelctx_cube(ctx, NODE_PALM_WOOD, true); + voxelctx_pop(ctx); + } + voxelctx_pop(ctx); + + voxelctx_z(ctx, s); + voxelctx_sat(ctx, 1.0f), + voxelctx_light(ctx, -0.5f); + voxelctx_hue(ctx, voxelctx_random(ctx, 50.0f, 30.0f)); + + voxelctx_push(ctx); + for (int i = 0; i < 6; i++) { + voxelctx_rz(ctx, 360.0f / 6.0f); + voxelctx_rz(ctx, voxelctx_random(ctx, 0.0f, 10.0f)); + voxelctx_push(ctx); + voxelctx_light(ctx, voxelctx_random(ctx, 0.0f, 0.3f)); + voxelctx_rx(ctx, 90.0f); + voxelctx_s(ctx, 2.0f); + palm_branch(ctx); + voxelctx_pop(ctx); + } + voxelctx_pop(ctx); + + voxelctx_delete(ctx); +} + +TreeDef tree_definitions[NUM_TREES] = { + // oak + { + .spread = 64.0f, + .probability = 0.0005f, + .area_probability = 0.3f, + .offset = SO_OAKTREE, + .area_offset = SO_OAKTREE_AREA, + .condition = &oak_condition, + .generate = &oak_tree, + }, + // pine + { + .spread = 256.0f, + .probability = 0.01f, + .area_probability = 0.1f, + .offset = SO_PINETREE, + .area_offset = SO_PINETREE_AREA, + .condition = &pine_condition, + .generate = &pine_tree, + }, + // palm + { + .spread = 16.0f, + .probability = 0.005f, + .area_probability = 0.5f, + .offset = SO_PALMTREE, + .area_offset = SO_PALMTREE_AREA, + .condition = &palm_condition, + .generate = &palm_tree, + }, +}; + diff --git a/src/server/trees.h b/src/server/trees.h new file mode 100644 index 0000000..439d37e --- /dev/null +++ b/src/server/trees.h @@ -0,0 +1,23 @@ +#ifndef _TREES_H_ +#define _TREES_H_ + +#include +#include +#include "perlin.h" + +#define NUM_TREES 3 + +typedef struct +{ + f32 spread; + f32 probability; + f32 area_probability; + SeedOffset offset; + SeedOffset area_offset; + bool (*condition)(v3s32 pos, f64 humidity, f64 temperature, Biome biome, f64 factor, MapBlock *block, void *row_data, void *block_data); + void (*generate)(v3s32 pos, List *changed_blocks); +} TreeDef; + +extern TreeDef tree_definitions[]; + +#endif diff --git a/src/server/voxelctx.c b/src/server/voxelctx.c new file mode 100644 index 0000000..3e8999e --- /dev/null +++ b/src/server/voxelctx.c @@ -0,0 +1,311 @@ +#include +#include +#include +#include "server/mapgen.h" +#include "server/voxelctx.h" +#include "perlin.h" +#include "util.h" + +#define CREATE_NODE map_node_create(node, use_color ? (f32[]) {VOXELCTXSTATE(ctx).h / 360.0, VOXELCTXSTATE(ctx).s, VOXELCTXSTATE(ctx).l} : NULL, use_color ? sizeof(f32) * 3 : 0) + +static VoxelctxState *create_state(VoxelctxState *old) +{ + VoxelctxState *state = malloc(sizeof(VoxelctxState)); + + if (old) { + *state = *old; + state->strs = array_create(sizeof(char *)); + + for (size_t i = 0; i < old->strs.siz; i++) { + char *s = strdup(((char **) old->strs.ptr)[i]); + array_append(&state->strs, &s); + } + } else { + state->pos[0] = 0.0f; + state->pos[1] = 0.0f; + state->pos[2] = 0.0f; + state->pos[3] = 1.0f; + state->scale[0] = 1.0f; + state->scale[1] = 1.0f; + state->scale[2] = 1.0f; + mat4x4_identity(state->mat); + state->h = 0.0f; + state->s = 0.0f; + state->l = 1.0f; + state->life = 0; + + state->strs = array_create(sizeof(char *)); + char *s = format_string("glm.mat4()\n"); + array_append(&state->strs, &s); + } + + return state; +} + +Voxelctx *voxelctx_create(List *changed_blocks, MapgenStage mgs, v3s32 pos) +{ + Voxelctx *ctx = malloc(sizeof(Voxelctx)); + + ctx->changed_blocks = changed_blocks; + ctx->mgs = mgs; + ctx->pos = pos; + ctx->statestack = list_create(NULL); + ctx->random = 0; + + list_put(&ctx->statestack, create_state(NULL), NULL); + + return ctx; +} + +static void delete_state(VoxelctxState *state) +{ + for (size_t i = 0; i < state->strs.siz; i++) + free(((char **) state->strs.ptr)[i]); + + free(state->strs.ptr); +} + +static void list_delete_state(void *key, unused void *value, unused void *arg) +{ + delete_state(key); + free(key); +} + +void voxelctx_delete(Voxelctx *ctx) +{ + list_clear_func(&ctx->statestack, &list_delete_state, NULL); + free(ctx); +} + +static inline f32 mix(f32 x, f32 y, f32 t) +{ + return (1.0 - t) * x + t * y; +} + +static void move_value(f32 *x, f32 v, f32 range) +{ + f32 dst = v >= 0 ? range : 0; + v = fabs(v); + *x = mix(*x, dst, v); +} + +void voxelctx_hue(Voxelctx *ctx, f32 value) +{ + VOXELCTXSTATE(ctx).h += value; +} + +void voxelctx_sat(Voxelctx *ctx, f32 value) +{ + move_value(&VOXELCTXSTATE(ctx).s, value, 1.0f); +} + +void voxelctx_light(Voxelctx *ctx, f32 value) +{ + move_value(&VOXELCTXSTATE(ctx).l, value, 1.0f); +} + +void voxelctx_life(Voxelctx *ctx, s32 value) +{ + VOXELCTXSTATE(ctx).life += value; +} + +static void apply_translation(Voxelctx *ctx, v3f32 translate) +{ + vec4 translate_vec; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + mat4x4_mul_vec4(translate_vec, VOXELCTXSTATE(ctx).mat, (vec4) {translate.x, translate.y, translate.z, 0.0f}); +#pragma GCC diagnostic pop + vec4_add(VOXELCTXSTATE(ctx).pos, VOXELCTXSTATE(ctx).pos, translate_vec); +} + +void voxelctx_x(Voxelctx *ctx, f32 value) +{ + apply_translation(ctx, (v3f32) {value, 0.0f, 0.0f}); +} + +// swap y and z +void voxelctx_z(Voxelctx *ctx, f32 value) +{ + apply_translation(ctx, (v3f32) {0.0f, value, 0.0f}); +} + +void voxelctx_y(Voxelctx *ctx, f32 value) +{ + apply_translation(ctx, (v3f32) {0.0f, 0.0f, value}); +} + +void voxelctx_rx(Voxelctx *ctx, f32 value) +{ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + mat4x4_rotate_X(VOXELCTXSTATE(ctx).mat, VOXELCTXSTATE(ctx).mat, value * M_PI / 180.0f); +#pragma GCC diagnostic pop +} + +// swap y and z +void voxelctx_rz(Voxelctx *ctx, f32 value) +{ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + + mat4x4_rotate_Y(VOXELCTXSTATE(ctx).mat, VOXELCTXSTATE(ctx).mat, value * M_PI / 180.0f); +#pragma GCC diagnostic pop +} + +void voxelctx_ry(Voxelctx *ctx, f32 value) +{ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + mat4x4_rotate_Z(VOXELCTXSTATE(ctx).mat, VOXELCTXSTATE(ctx).mat, value * M_PI / 180.0f); +#pragma GCC diagnostic pop +} + +static void apply_scale(Voxelctx *ctx, v3f32 scale) +{ + VOXELCTXSTATE(ctx).scale[0] *= scale.x; + VOXELCTXSTATE(ctx).scale[1] *= scale.y; + VOXELCTXSTATE(ctx).scale[2] *= scale.z; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + mat4x4_scale_aniso(VOXELCTXSTATE(ctx).mat, VOXELCTXSTATE(ctx).mat, scale.x, scale.y, scale.z); +#pragma GCC diagnostic pop +} + +void voxelctx_sx(Voxelctx *ctx, f32 value) +{ + apply_scale(ctx, (v3f32) {value, 1.0f, 1.0f}); +} + +// swap y and z +void voxelctx_sz(Voxelctx *ctx, f32 value) +{ + apply_scale(ctx, (v3f32) {1.0f, value, 1.0f}); +} + +void voxelctx_sy(Voxelctx *ctx, f32 value) +{ + apply_scale(ctx, (v3f32) {1.0f, 1.0f, value}); +} + +void voxelctx_s(Voxelctx *ctx, f32 value) +{ + apply_scale(ctx, (v3f32) {value, value, value}); +} + +void voxelctx_pop(Voxelctx *ctx) +{ + ListPair *next = ctx->statestack.first->next; + delete_state(ctx->statestack.first->key); + free(ctx->statestack.first->key); + free(ctx->statestack.first); + ctx->statestack.first = next; +} + +void voxelctx_push(Voxelctx *ctx) +{ + ListPair *pair = malloc(sizeof(ListPair)); + pair->key = create_state(&VOXELCTXSTATE(ctx)); + pair->value = NULL; + pair->next = ctx->statestack.first; + + ctx->statestack.first = pair; +} + +bool voxelctx_is_alive(Voxelctx *ctx) +{ + if (VOXELCTXSTATE(ctx).life > 0) { + VOXELCTXSTATE(ctx).life--; + if (VOXELCTXSTATE(ctx).life <= 0) + return false; + } + + return VOXELCTXSTATE(ctx).scale[0] >= 1.0f && VOXELCTXSTATE(ctx).scale[1] >= 1.0f && VOXELCTXSTATE(ctx).scale[2] >= 1.0f; +} + +void voxelctx_cube(Voxelctx *ctx, Node node, bool use_color) +{ + if (! voxelctx_is_alive(ctx)) + return; + + vec4 base_corners[8] = { + {0.0f, 0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 1.0f, 0.0f}, + {0.0f, 1.0f, 0.0f, 0.0f}, + {0.0f, 1.0f, 1.0f, 0.0f}, + {1.0f, 0.0f, 0.0f, 0.0f}, + {1.0f, 0.0f, 1.0f, 0.0f}, + {1.0f, 1.0f, 0.0f, 0.0f}, + {1.0f, 1.0f, 1.0f, 0.0f}, + }; + + vec4 corners[8]; + + s32 max_len = 0; + + vec4 center; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + mat4x4_mul_vec4(center, VOXELCTXSTATE(ctx).mat, (vec4) {0.5f, 0.5f, 0.5f}); +#pragma GCC diagnostic pop + + for (int i = 0; i < 8; i++) { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" + mat4x4_mul_vec4(corners[i], VOXELCTXSTATE(ctx).mat, base_corners[i]); +#pragma GCC diagnostic pop + + vec3 from_center; + vec3_sub(from_center, corners[i], center); + + s32 len = ceil(vec3_len(from_center)); + + if (max_len < len) + max_len = len; + } + + for (s32 x = -max_len; x <= +max_len; x++) + for (s32 y = -max_len; y <= +max_len; y++) + for (s32 z = -max_len; z <= +max_len; z++) { + s32 v[3]; + + for (int i = 0; i < 3; i++) + v[i] = floor(VOXELCTXSTATE(ctx).pos[0] + 0.5f + + mix(corners[0][i], corners[4][i], (f32) x / (f32) max_len / 2.0f) + + mix(corners[0][i], corners[2][i], (f32) y / (f32) max_len / 2.0f) + + mix(corners[0][i], corners[1][i], (f32) z / (f32) max_len / 2.0f)); + + mapgen_set_node(v3s32_add(ctx->pos, (v3s32) {v[0], v[1], v[2]}), CREATE_NODE, ctx->mgs, ctx->changed_blocks); + } +} + +/* +void voxelctx_cylinder(Voxelctx *ctx, Node node, bool use_color) +{ + if (! voxelctx_is_alive(ctx)) + return; + + return; + + f32 xf = VOXELCTXSTATE(ctx).scale[0] / 2.0f; + for (s32 x = round(-xf + 0.5f); x <= round(xf); x++) { + f32 yf = cos(x / VOXELCTXSTATE(ctx).scale[0] * M_PI) * VOXELCTXSTATE(ctx).scale[1] / 2.0f; + for (s32 y = round(-yf); y <= round(yf); y++) { + f32 zf = VOXELCTXSTATE(ctx).scale[2] / 2.0f; + for (s32 z = round(-zf + 0.5f); z <= round(zf); z++) { + mapgen_set_node((v3s32) { + ctx->pos.x + round(VOXELCTXSTATE(ctx).pos[0] + x), + ctx->pos.y + round(VOXELCTXSTATE(ctx).pos[2] + z), + ctx->pos.z + round(VOXELCTXSTATE(ctx).pos[1] + y), + }, CREATE_NODE, ctx->mgs, ctx->changed_blocks); + } + } + } +} +*/ + +f32 voxelctx_random(Voxelctx *ctx, f32 base, f32 vary) +{ + return base + noise3d(ctx->pos.x, ctx->pos.y, ctx->pos.z, ctx->random++, seed + SO_VOXELCTX) * vary; +} diff --git a/src/server/voxelctx.h b/src/server/voxelctx.h new file mode 100644 index 0000000..1da3d1c --- /dev/null +++ b/src/server/voxelctx.h @@ -0,0 +1,58 @@ +#ifndef _VOXELCTX_H_ +#define _VOXELCTX_H_ + +#define VOXELCTXSTATE(ctx) (*((VoxelctxState *) (ctx)->statestack.first->key)) + +#include +#include +#include +#include "server/server_map.h" + + + +#include + + +typedef struct +{ + vec4 pos; + vec3 scale; + mat4x4 mat; + f32 h, s, l; + s32 life; + Array strs; +} VoxelctxState; + +typedef struct +{ + v3s32 pos; + List *changed_blocks; + MapgenStage mgs; + List statestack; + s32 random; +} Voxelctx; + +Voxelctx *voxelctx_create(List *changed_blocks, MapgenStage mgs, v3s32 pos); +void voxelctx_delete(Voxelctx *ctx); +void voxelctx_hue(Voxelctx *ctx, f32 value); +void voxelctx_sat(Voxelctx *ctx, f32 value); +void voxelctx_light(Voxelctx *ctx, f32 value); +void voxelctx_life(Voxelctx *ctx, s32 value); +void voxelctx_x(Voxelctx *ctx, f32 value); +void voxelctx_y(Voxelctx *ctx, f32 value); +void voxelctx_z(Voxelctx *ctx, f32 value); +void voxelctx_rx(Voxelctx *ctx, f32 value); +void voxelctx_ry(Voxelctx *ctx, f32 value); +void voxelctx_rz(Voxelctx *ctx, f32 value); +void voxelctx_sx(Voxelctx *ctx, f32 value); +void voxelctx_sy(Voxelctx *ctx, f32 value); +void voxelctx_sz(Voxelctx *ctx, f32 value); +void voxelctx_s(Voxelctx *ctx, f32 value); +void voxelctx_pop(Voxelctx *ctx); +void voxelctx_push(Voxelctx *ctx); +bool voxelctx_is_alive(Voxelctx *ctx); +void voxelctx_cube(Voxelctx *ctx, Node node, bool use_hsl); +void voxelctx_cylinder(Voxelctx *ctx, Node node, bool use_hsl); +f32 voxelctx_random(Voxelctx *ctx, f32 base, f32 vary); + +#endif diff --git a/src/util.c b/src/util.c index c1c1c2d..5664017 100644 --- a/src/util.c +++ b/src/util.c @@ -122,3 +122,32 @@ char *format_string(const char *format, ...) va_end(args); return ptr; } + +void *buffer_read(unsigned char **buffer, size_t *bufsiz, size_t size) +{ + if (size == 0) + return NULL; + + if (*bufsiz < size) + return NULL; + + void *old_buffer = *buffer; + + *bufsiz -= size; + *buffer += size; + + return old_buffer; +} + +void buffer_write(unsigned char **buffer, size_t *bufsiz, void *data, size_t size) +{ + if (size == 0) + return; + + size_t old_bufsiz = *bufsiz; + + *bufsiz += size; + *buffer = realloc(*buffer, *bufsiz); + + memcpy(*buffer + old_bufsiz, data, size); +} diff --git a/src/util.h b/src/util.h index ddcec81..cdb9965 100644 --- a/src/util.h +++ b/src/util.h @@ -28,5 +28,7 @@ bool my_decompress(const char *compressed, size_t compressed_size, void *decompr bool within_simulation_distance(v3f64 player_pos, v3s32 block_pos, u32 simulation_distance); // return true if a player is close enough to a block to access it f64 clamp(f64 v, f64 min, f64 max); char *format_string(const char *format, ...); +void *buffer_read(unsigned char **buffer, size_t *bufsiz, size_t size); +void buffer_write(unsigned char **buffer, size_t *bufsiz, void *data, size_t size); #endif diff --git a/textures/crosshair.png b/textures/crosshair.png index 8e94dcc6bef47196a2f5cd93226eec0e8a8c3a24..8f03d32bdba0c7e5e467062c82dcab8b0a613242 100644 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xg+b2?BYlC9V-ADTyViR>?)FK#IZ0z{pV7&_LI~GQ`Nx3WyBNwGE7{3=Fz|@jXM) ckei>9nO2Eg!>{GrqCggUy85}Sb4q9e01$g?r~m)} delta 126 zcmX@jG=Xt~WH~bf0|T#;rUQ^-EDmyaVpw-h<|UBB7T^=&3Z(!4|G)I+{JS9Ok|4ie z28U-i(tsRoPZ!4!kK=DIZscV!;5oeE$N%NUj^CBk%6(@sYN-fzpFdLh+wxoF9RX%r Zv9zNMvm}i!rUSJxc)I$ztaD0e0s!qlD^vgg diff --git a/textures/dirt.png b/textures/dirt.png index 5cc6e8639556cfa826aa5e5079ff318de48de4ff..9a64b490f0b3c9708eb552679d4278daf15800da 100644 GIT binary patch delta 183 zcmZ3&dWda;iX}_Bqpu?a!^VE@KZ&di3=9g%9znhg3{`3j3=J&|48MRv4KElNN(~qo zUL`OvSj}Ky5HFasE6`@5qRqx8Nv4T$Dme_QC9V-ADTyViR>?)FK#IZ0z{pV7&_LI~ zGQ`Nx3WyBNwGE7{3=Fz|@jU|?iO`UnpOTqYiCe?3<=diw8W=oX{an^LB{Ts54tz4i delta 27 jcmX@awuE(p%EScA$s3teH_nt~;$-l2^>bP0l+XkKgw+Wf diff --git a/textures/grass.png b/textures/grass.png index 88a8b45abb14d87bd8a5af2648e69688117545aa..70a3522d6c39413d4a05bc689b358000ef028064 100644 GIT binary patch delta 1291 zcmZ{kO=uHA6vtl_Jw*JfmP-9#v}#3Lo!N=mWKqGUwMMGOwxU?XZg(fiK=y;pgtj6^ z)Pv~7>P1w%dJ!)L5f7d``H5b<>P1B8LG)q~@$J^86}Fq5oy>c`|IB-DAA66#U3If< zdE$c1s8N7#!vMw|fENG$ zvlIJnzi8QCzoL3htA2Bo_<>iH6+zUvFNpM&1hCwV5NrLrlTrtsIeG{!8d zaUBg=u5pTkX*Sn!FwP^Ng+75R%1zF>mc%KAa|qDoGd4<-lgnIRncDqb+)o0b5!^4_96IyX0*-5BGbbY|i- zsBSP$7&W+Nr1;Z!qY~jY4Y&tSJzgwUg~BK^6Ynp6LU((^op<72qq7o(s9C z1~wU$s!V$GM+>X$58M9RGVh?IPq-yj29_RsZazYH)4VOweM;Jq_rsZ%SLmH9z<^g& zqh=r=+?r^+S)J}?nYJ%yIbvHIo2YWl8F5WniK!SCjI94Tfc%CSKIb`pAga|cm-H{; zpF(a^3^$uaJxoK}n=bftF`^q6LT55U@Y>SpwFvHr0gn`Vdh@OlfmJr$k~riAj;R1U zG%0@HMa`ZVO+8jLTV9=O*Or;zQM)rnTPSHhF>89rEt*9a~s+r~s z+pr+VM7;w1^T#(~o2mwUvMK^Bq$6Afw1dRnX}yCmmcj>R9V8pA(*IVBqJ(Q9kPS_H z!+((z`OvPTMCUm4u>Wb|oRP)=)`tP$hsLlxe>{+-vVuZwq#`ZS?K!4&pG>eJ#J0?0 z_PoB0`e~#lE2>kvq}t!x)mJ*W2I=Nm+A-Z)(X>=85JA*_eGhKF1nlh<4Z^cU1w!r6 Ra6X4x$oCxUe%v*D`7eMWh#LR^ literal 6555 zcmeHLc~nzZ8V{m?6jAE}I8@V66tvkxHVGP%AOQl%R>1Y;02_Qjk(bw4f9hkXjgUK}2Oy0p}%9#TlnFo-;jX{xCUN-o3x?_kH)<-hDU0 z*L%?f^BLv{1Y!c$o$UwzPSStOOyKWX&))zD#Moo21A^6lfEKAx%7x+x2&s-zKuAa@ z79tS3+u1=&Qd=D?27YzyHFLj^5?9Wynb6yx*0^q2kuzh;619!T^wjDd?E0auQyy}nE|d&)WOQ(b27a~Pj=u-1p3kz3RKc)^X}Z>z;+lj2Fjm?4Y2E86ODuj<;0?{K%> zNy{wiv%1rsbYlXy!*bJ4Pu!nBSh!Q>pkalc7paDt&x@?$F3!qKp0WWmzJ2%YiZE;~ zz1PIY?sBx%8OuY-rn2mDq4|}C*JMZc_fRGTGQG}98XoF45j~p9a;FGW=19git4~*b z?vvFMdkW>dY0{*q$Bj?I550`NDrkGXd8jp*@r6rAMoxyw3*DK+v3E+AVjmaNW+_8g zoF4SADTOe zN4YI57PJO04v|{#wfn3iC!$Dk-{Zopq#7Iij9Zt$=|8V5{dr7Le5%H->0Ei>g{|j1 z5U+@S9M;?dzm$y=FLpoOP5VIw96OXpw7qgIZixLro7E8HS#v|O$!C4`PC$ZPna9X9 zaVv`S?KFC7ePH~pgqsJi&%~M9;*NKc&V-aHJ!i2c9U(QMRr%QVAz}3o-*a%e%vfbE zdVbLIN}_Q!V*Tei$lKK>CXJzvW`4dR%ex27TK1j(>3Qb7AaC0FulAh2o#|_A?SZ^v zoixxr8@W04W<#)Ke-F7aY<4(TyLP#ztzA6WjmRxo}5OMY@=C!S|=D7PW<1|Z`cH8d= zuB)BzC#IBSH+8O=7=72DlNY#*S8y|M1#62FuYsPE(ruNyO2o4~vM=L6F7x3at^PYK zu8wL9@~x9!S0O$Rogtcg8eg|Zl78IbnE5=jIr_$R(oS)x#d3#Ax@x}XF(qE$G z&yLnC&U&(zpnd9AQrg|Sv7j!m^IKeG5Ks{y4p_14E2FhVUic}~`CX}z1v967UG!ts zq5VdeRGGbj_J>u>j{Spy;uA%rbC2j{U2dA5jkE6fe{q@RT9#XO_rB+Zrv9e~tNvcM zwRf`Rsf?;K**i3Sk@r}^NSb$o#m*u#O!BkDU*fm!*?e}U@G+r%XVT3SI_gy+be{y+ z?5JMa;gjln&V8^x_Es}uAAXOtTsbpi=5-#mkkZmIMw`s~ zEH>8RuAd~oveG4IURMJ9vVQYB zx)I-#zjH7$oc_%PlL3b~(`lY{^#N@mYqQRH{cuVhO23*tL)@M0sp5n$**+jSr=B=J zudU_E?V&dGoemFTT7yh@FYhRpvAMyuIcRJ1)5QmxV#|7_N9CUhug%%{Md|F{vZPle zDSN(9&dz%IvUZK#ro77;lV#65AAKkLY0Yt)#rJN{jJY_gA@tX2Z(7)| zCa!NUu8P%pXThxt{9w-#E7YLAXK}bR%XK)5JI~ECS}G@JUt>D5C?-SLT+5YLo^b3*Bj%*roWns8=7<>DOQ4d$6aVK>WL>#$*U zsfUZG=6T~x7fjEw#MGXr7n!ebF^x}4+kPl%NB_mc*HKk*zpuGa(pMC1YIbsNeNEY_ zh4pB=?H-B611GF?90V|SGIOa=7~`E<_tbVp-_!0MOnLr=YlE~O!^;Khe7?$nG!>|3 zWJdG3hv|I@S-D^5RJK>Hio>`MRBJA^QEKfskIS%eI=eUOzQdW|hd}n`kXzT|kH&*1 zj`){tQ-!o$xD=8@4sOpF*qFJ#>}-u@pPf4}*>fAxm1#UJ0Qi!bSJ|q&$7^tq2izuX6z(9TD#KZ9vEGSIuzFGEJdHbMbkF;HP@wStbtYPDL7mWYunMOZwIM#JI=SONhJBhacSnHtcc zWhy&8#V`jOQh`c1nZ<>6T#@2#{z>sUkw78m&{Kg7iZMyCVcbENqlP^JtkxT%PY+8NC}tVyVI)p+}EK z3c$BGg+>`+zz9Gr6ah(LLsT#`{yjV_|5o6G%Q27}97Si#L5-e;%VwbT2G9j^P%NMu z{t{?78bqd2&=844K$Aeo2@R0>0yGH#NMyVdjY`CmMp1EPDm5SjAw3mLjuFE=PE-N> z=9AGBDg~w>IN{I$&542rsi1(*Cp$UuDa26}K1wm1+Cao;tMpU?n2HEcK?0G6M++%9 z08JtZXlN=0PefC36nKOx6o52>flBXKI@6cSKoKywcO$+LfLbV5N*O3Gu}q_THxVF~ zLjGz%?=(D_K*p1u@MI#*36CR;k`98DDmZKPoOm1tPc?`OK)M^u2*BARmI5LOtB{Ed z6R^#6mJ$Nga%F&A9>GBAZ9?ir4Yh!D9?5dLmmCE2)nEWa0)3&3l!_}L!Wu4}v3~~s z7bgEOxmNby@w|h+Wnn7STDels^P2QP7)zDxC)6hR4*L>^kFWLc=)?=fqofm0YOS0!oM}f{O@_Gh9N3 zI3pblS?2h@E!r>$HgX=0K*!-w!{HqX_g}Lf0z|=4NK`7COd-e%Z_z=-F0U3`5@kBgCpyFwK@^DA`AI8TStG`qI zk$%qlUe4puM<=MWzSq;a`VQc)Q79tBkn;V+{iBfo4Q`bDNYnUF;-g{1(k!_m3T~cZ zY9FoaPt|__ILzQB1|gYB{%59-h77x9)D0cBd3X%oD8Ty;?AwjUNZG<6`72)|?clFe zfkb{%@=^Z%46!=qieR9`FdEleKpR((J<}UMhM;DL`-iT}AgNfa|8{fi* z8YX;;kVpsAY6zi0hEBJV8C6~<%pk4{wK7UsQ(t?9^-8S_W)O#;G zp6Tu{IQ(7lfIPTy*lE3QVlhWN3@pAT5J0dHf;8Q(s>CH%V#u2i%tfv zn~RD!JN0YMwzFR1<%jy3S7}#wwHBZMEab@CYOJfr9@Q=%$I1Okc+m6VJyKtD;0doe t%oiobs2^#YX`)|Dit=)LpNAg3FbnI;wI1}eDuDxn;Bvg#d9Ewh{{u^F+5-Rp diff --git a/textures/lava.png b/textures/lava.png index a88d91d865983ae3035bbb4e0a50b40ddc411d99..48aaccfadca12948f5f66fe6846eaf1ca0957069 100644 GIT binary patch delta 1437 zcmZ{ke@q)?7{^~weh7|XaajSKX8|FsYiy9^Beq>uT%*;PVwjfTY&ae@X7@sTB&7@22y}S4Q ze!lPfJkLG3k@UN1hjZ4%b&EEeQxpV*3c_P~2_%kQ+h;t45Tb-<>uV8u?HPo6_ad|e zOTBXl1!;tCwjjj4gV1{au~T(r{ey{Rp*X$6UeRDZ`^J$v`71iv{?xUmI|nCsDbpLr z+xPsEw7d3LdwAqZ+PQ;CH?9wEO)zw38mN@QuHWNoKNzT7IBI>>WB7cgC2^*)ckbfd zN|d?Z{@2ywKh7n7HanSA{KM&=<{r^!NWV?~{Lin*E9X*B(Ed|H{!_r{@DNhYdrH#oHH+SKh=^SFg(?wf>7StLK#NLhH?i@Qvet zj^BPb+ZEix#(SIp&U)$l!LdWG_OX)b$?@Dzr$Qa)bDM5u1Wlt;C)d37&D@ve#$ZZw zU-EMNHhs6@fcs8G|8!!02<4HgZN$wJ%n2%n2V!ZKDPrg%y0n31IJg+gMw;bl`oL1! zEL8oTK~mhJr|ZFnrQwMkV93%=z@4Ips}xDViB%Ub`F$8!jg&P6LwBn@AF#)wm`(91 zs>{y{7%^+#i+6zdbX2rMj18i+5+_GnAwr5}Ig^PqG4anI$pttg3Rl6YTRoltCJ?1H ze5vOe$oWy(A%*xhY{vmX75zk1WMqrfz)f|C#7k8>YMtrs%X$CX(jkGR2Fq>4ix_j~ z8GZz0-F;hv+$g#u>g65l&w_fd04~KtI(QW$ZEK3%#DwTgj5TMr$plz#bQ9tYO06<4 z`eIZJ3PxqmyMTWp25(a&zls9^Ef@15_BR5zAqKaaMMz77EipU&^h1C?`5<&9BLMd$ zEwdx#Wby!*TOJ4#r5BUw=jm+ z=~aj#VWNsc zwE*DP#|etROBLI^1UZAPK2f0Tio}cZM3~tLm|+!j-`BU1ergShK2jvgRG_}PvZk#f y1L$?Dw8YCn4=<3Qiq%N_)x3ZBI|RL*79|un_94x?v&CTpFLG49U>~h)+4C<0{Obt- delta 1621 zcmV-b2CDh?4y+K6BYyaB^>EX>4U6ba`-PAZ2)IW&i+q+ND=plH@21 z{O1&V1SDSKI2cUC++dHt$+OCK*Gx^UX&Wqqkd!G=tDoRt4;kmON@5kKPM+xsPl;wd;iHuvdhc$t{^As$emURd|Vl1p}K-@|* zv}TTNojZn}`@33G88-20$msr*VWnv|nS@^O#JJ5vOQv1zNj<(=0Wz2X%j1mgsdqFl zvDv8ne5r5Tntyb-z`aM42I}$QMgxCNxw)a|ci-je{(;=jaCc1KEDCmS%omGN-FxVF zSleA|ky_8;U9ui7`{~s3gj9#JmZOoNFY{;tx5GH}7SROhlEJZ}vp&!=MPfi)$x@+2 zRngf8nKEp&d~!g~oPl(c39yKq0Y4er8dVM^ngTko$$y}Vfs|`i(-!Lc#=c)B!On#+ zl?lqIGv^OYeKYBIt=5)HL~7;?4S>0&AiNboOi*Ai!OQNtwM%* zAABpfDVSh`3qFJ(A%-MItT^!!L?lXz91W_mi%7>PF~*dzXM*PBRl@uP$-##??BNc7 zghP&aqzw9Gn_c!fWXUn7!o?Kiaq%S-DY2xJPJdA8w5L<2Kf@_!JW~bNs;RcR>T9S{ zV@(^iiRz>M1!^==@@mMi#c1 zYJY?5%O!AM{H`m;X>>G2fKQ)YA|yjMj@K!`)_uU@ z$0uSl3_-5#*|%QSj%%ZQH)SYumZ?~{22{bpZVUoZhE+HW`gHuZxP2knh7UWF_@)oP zkHFcv>ej!Eooi9}x-mG)x&X$NKEg4f+@6DV5}xVdHbuTf z&JRT}5!7!3)Jc>2H)~$JC^w^LZ>N7_rox&>j8-Vj77V4Yna>$&sW<1cWJ}UCX;S4) zvSR(#t3EJyG;aMTT$g2fqqgF#pWfWPpc^!EH}xXJle+gl+`_(Hg!8IP;^Zw5n18I{ zE&1rxp4s2kJ58@denjf!cD*vaQAADV`A>U2XNM`+H;T`sT?z7u z+Ar?&y)aC2A!%=1-X%$H_5)Hs7Jp@XPaTSCln*VtGOxi5kd^c*ZP&8?;tDoU*TR3^ zX#3IChwCbR$SZp#&93!P=9#pOAGKY*=kdpC@yIj(C`{@*%QsdlF&?L$%HN*M4;7Ci znOY2?xqV$@m1+P00fT8nLr_UWLku8ra&Km7 zY-Iodc$~2?bO8kCQz03X)B!w`Gy^4n0T@X{K~y-)g_B`Y#V`njKOoQXj9$*$c?BIC zf39h;C0ZsKTH%0=+LYr$Jx&A!B6clLQcY=`Tl*t&gKy(8GG|MM{0-9N# z$K|1w+~Mvizh40_P3uD*o7fBa}ishn0 z6x!kGs0nmW)+)Jn>ARniBA`k6@z5-|4$F$y$KB`_q=J{?nCVXF#ni7O$yMRS<`Ha8 zRgYu@(6QGwtf=d&jn9i=d#*a~=l*d+t7;;qWIc|dW4?77oo0Q2ra-; z*AEDVX@oAdAjH0iP*(8B$i|98FC|u}x=g2|ve7!Z;~*DE$X&MU!FPX~Fg7Y+~C zszU?6mK89kO3v?(|M{o&g{f!9a^sE<9sE9RI%9B6^2NQ&y#;YwQiRmb+q-pF47c^Y zTAM#sf9*s6&TSVu9&+y($j;O8$EHRPe5pR!l9W_BUtW2xZNjtvacbll-Qaiox`gM| zdFJg?KYlxT*Xgw%)P6d5H2LZmd$#8F=!?!@|6ESG+|oU@I>EEX6wg1En`n5yp>E*i z=9J9i(W4aBe{B5CM=t*LY=*9W;=mr^tj$n#A?NhEx2VjD9{!c`V_EL8;ryoE zC#LkD9XXjZzHEq}-`2cwwki9CkA;rm8j!3BW6(a5bE|K@dWiK$O=0 zk2=2wSs#_1lFE6p1BZA;3=&ZeAbX?+9;!_wKB~r9?@IN|6#Q>Xrv#Qd9Pkn!V$ALD zaIb-!e$$p9H;JBzI{OH}I=t@OD`WDmWC7O+@MFf3aC)4Hv!83M@G z0)YP>%ge#-is_iEf|W@7)gA4dK+xMMQ9|}$KhnILTby?AB4_n_$8c54&VK>9r{p&P delta 1619 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 F{{e3*`E&pP literal 0 HcmV?d00001 diff --git a/textures/oak_leaves.png b/textures/oak_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..a29369a06b5e849eb7576ef962275fd71c6b5372 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG?e4&pI=i&I?MLUqSRZw3ZNVNVyw5R22f!QShR7;qTRKlk_iwcA^G4Z0@^o~`a) zp~aY-qx8IT+Nwvp^zMA`-72<BUe09vZgP>!9=Dn0DaMjBCFeMvJME;_#bLDBKh#v3;X}ud zW}k^=V+k$0tK%1-g%8=Q|^?*5&>_^r3e!CF0@tLkr0zOjF>>eo(#$g2=a*dt8(*GEIVgLRHQe}cp$zY#@SXN+UNU@TYS2Hk zPjkPgSM5Pyh^dyiMwFx^mZVxG7o`Fz1|tI_LtR4yT?5MyBSR}Ab1PFbZ381K1A`?u gtKXw&$jwj5OsmAL;cCm_V4wyDPgg&ebxsLQ0HZs^<^TWy literal 0 HcmV?d00001 diff --git a/textures/oak_wood.png b/textures/oak_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..55cb954aeadff37497b70ecf6f553053ffbb1ef4 GIT binary patch literal 2338 zcmV+-3ElRIP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+ND=nvg{@d{bvN3pJx3G zZqGNKN0!GuU$&ma^K?@b+g`}eg|ro6*apPnHe_HK&~+?NAv)k$iM(4&;gCb%m@GxR(2AtF^;j}B4E>s_js7HNVw*?OEMBiN373Q3GqunNNy!GUr_dfXOQ!v2>3NH8%LJTQl zG~A6TayiBjV@!!{Cf1ysN-UpvCSx|)X38%69CFO5Fnx+GR9x{Tlvq;5YAV-pb=B8U zV@(YjQ>ocTs=4M{XtAZvTp!3d8#SCr4LN^M<5}<5Q%%0G zl7Sf`h87rcKM-I-(RgduUOv;=(i>p8GAN@*oQc^T|?v0lLv64l~9jPil ziSF#**-)3g+_z2?T%2ShNl=n8$YQ_l8HJIa(dlcy7mddyEphv|w~9$7G4&mjE+S58 zXO8P@xdeD4;f$@UU5foa=vUFyg?%9IZk3MTk|YyRqMI11i@vfTj8yz9_WF4PP^*tc_Bsag>RY@WWE>XE1`w<6xCV>r` zcT`Xx`56%?BlII7Ta>)oLl!y#OG$`Nx(SaCS%W0{MAAN8VJF}QFwhP_-C#sXfmjjo z8yfaSf6mU*q}+IWU2DcY$i}LJ0Z*aXJ3^h;#)V~(iFssr6+q=FHkQ9^rraf_5Q^Zdnp>-SM3wQy|D+O zj*~F2rs6*(lDc{WblUKxLFl+^%-s9`DN^NLwH)AZ-JTfIN60>{j1FmE^e-0+wwv)Z zD6Y~2l>oH+iwd{XEK0q`Q_AL(s>2A9LkZ%7AI0NvtMeEC^aY2n&z$dSQ6m{fToPl# zY-`?4-+hnG6{9*qUjCdoE{&&wUH(Y7f~#oH@h7EePGN{g^6pT6dgCys*5G}n%V}^9 zCTV0Eklwv~?N%4af&aqPsQv~Y*X5CDo-!m6rn<>6nNgNw7S4z7YA_yOYP z=A`H%CH}7|w21NGxF7HCJ?`ECLcPp1t7{z4blXfN;$kMdDh6H=L@&Y^hF@luF(*k$ zc#f}o`1pDk<5}M4{v3U3&SHR1B%Wo4X%lY{PjA`==Y8S`E6OVIIq{fD7bJe8a2oHK6aeO3E+PQuJpFQQU_)}Nw2lF=n>Gr4P0EeHDwRD+yMrj4B3>M zlAorK&jasg^i5eHdLIIDG)p)K&5ZI5-4G3zWU?@$R0^-u^w)>hA{|;Btgo zyFK^-000JJOGiWi000000Qp0^e*gdg32;bRa{vG?BLDy{BLR4&KXw2B00(qQO+^Rg z3JDV(60cBq#{d8T8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b0h38Y zK~y-)Ws=L5qc99aujB`$lV6WSrK*ze?>`OzLMer5n)Yv| zl$D$_0A|Lz7UuazDFuLep3!aFSe69jFAwOloC5r08&br zwZRNPMU;Q5-zUTv0NIB(RKw}N9|JmgS>EGbce~IJAyCSSSwlpbrippJ@qGTEs-J1S z>C@Pn4So7%#l63&D(;{$CPakRDj|ej96_XSHZ#Bx>9(enE|zO+4Ui#>NWbwc6tG+9 zLz4rmwN_$`fMaH)lqls*&S~G?PwANM)ZvUf=%K2+W7f!d!rf5~)LKWBMU<`=R|ZFb z&QwK|*XuPJ`T|2li7^mD`~>Nsey$@xBEqsPgR-h{;M1&07*qo IM6N<$f+A%;h5!Hn literal 0 HcmV?d00001 diff --git a/textures/oak_wood_top.png b/textures/oak_wood_top.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8ed6f20a13c32be1e42aa3317d379b7d8ecb1b GIT binary patch literal 2422 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 literal 0 HcmV?d00001 diff --git a/textures/palm_leaves.png b/textures/palm_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..9d44925d180408bf27f0696e8768d85953bbf3f3 GIT binary patch literal 2567 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 literal 0 HcmV?d00001 diff --git a/textures/palm_wood.png b/textures/palm_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0295d17ddeda65180be8ef0b136f865b76853b GIT binary patch literal 2054 zcma)-2~bl<7{@mr0datEM?{IB1r_kUfP_RuAwdX&Mh+3wLXH>ml$V6$MWHI*NEH#h z@wQduP^=1wsEG;;tp_M7*ijG3Cji=h-1Dj{{V@laEY#SKmKBal;lHd89k#wf4@N zT2tDc!SUvI{|YF7-Z-RnIkluTTh};98o*bOrFX2Z>&)lPTkL~bR@|dd_mjWojQC~d zba(reJ>L3!C)%08`o??OvicM~kQBrg4sUIx(LHCqsjNM_x_Q~3r}LY2&Wu)7MpyXW zT6i4{acE=&0N;HBz=|~h=wWEZ696;_0M8Nu;OqpzLAj@LmOm7zqUj+#&}(=dIDcdd zj0{nR#;F1Day3j!>ftGiV9tSA4p=tO{p6Nj+ zLCn#zYI;|T16tN-e@Oc>u4!9SXH8|vq`(#B#1(bP(}dqroC-S~7kUzRe<(WqZH(Qh zHO&PJvc`5x+LDXZCAR|hTQK^5j}XMJv~YmX7y~4M5=U$#025)No+#ppu%nqM z2M&}q9$|72WP{$K{R;!3kl@m^uN(A7%HyHI(U1X4#ig7eoKy=iRg{oWCS$Vo&`{mw9Z-ug3pUfwONf-}Pi&eOi#1-=Y)`%u)81u!BMoTy*PakHx3%QZ~aGxK7Inh_3LmW@u2dkBw1ds!u-{ z#DmfA@MU>0P}B!52<6&` literal 0 HcmV?d00001 diff --git a/textures/palm_wood_top.png b/textures/palm_wood_top.png new file mode 100644 index 0000000000000000000000000000000000000000..276ae1eb6dddb9b002df23507a49841782956532 GIT binary patch literal 2153 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 F{{e3*`E&pP literal 0 HcmV?d00001 diff --git a/textures/pine_wood.png b/textures/pine_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..fae7da1a80652ca326a2f258857f4579397d6402 GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG?e4&pI=i&LCiZEESfN(KhTWu7jMAr_}YC*SQ`ZNSsA-@?8@BX;Hb%irr~$B8YP zATXcXZ_Ql~4w0M2^CTbNd%wNvy{G2HprrfdMdy4jAF(+ zsRU3}sB37xzoVM=b2?Vx(D&a3G)g@FTip9>;`;CRzBz>cS1FpeT-DT9_+Irt#sfcX zUROHG0;88fwZt`|BqgyV)hf9t6-Y4{85kMr8XD*tScVuGS^<%vxwe6km4QL`FTQ6e d8glbfGSez?YxuQ%TNF?OgQu&X%Q~loCIFdP5`6#w literal 0 HcmV?d00001 diff --git a/textures/pine_wood_top.png b/textures/pine_wood_top.png new file mode 100644 index 0000000000000000000000000000000000000000..276ae1eb6dddb9b002df23507a49841782956532 GIT binary patch literal 2153 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 diff --git a/textures/sand.png b/textures/sand.png index 63ca7d3c289c6bbb7d42e3fa9f1977a89a386330..3899f4b2679363fc443d846b4f957bdd9bb3f4f4 100644 GIT binary patch delta 1149 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 Svk?Nv0to;~MNUMnLSTab$Bc^r diff --git a/textures/snow.png b/textures/snow.png index 17481035e94d0c1fd92e59660e5e8371a94dd287..359335ea0b17cc5c604625e3f45e189a83999bfe 100644 GIT binary patch delta 1347 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 Aw*UYD diff --git a/textures/stone.png b/textures/stone.png index a641ceb677542fbf9a78417ba1cee614bbc9ab00..3af8ac97cc7d5d5a1f7c5ab623c3450d15ca87f3 100644 GIT binary patch delta 183 zcmbQhvW|6viX}_Bqpu?a!^VE@KZ&di3=9g%9znhg3{`3j3=J&|48MRv4KElNN(~qo zUL`OvSj}Ky5HFasE6`@5qRqypR>p~ODme_QC9V-ADTyViR>?)FK#IZ0z{pV7&_LI~ zGQ`Nx3WyBNwGE7{3=Fz|@jU|?iO`UnpOTqYiCe?3<=diw8W=oX{an^LB{Ts5AW1U? delta 27 jcmZ3-I)P<^%EScA$+AqU8)vpMax!?j`njxgN@xNAd&CIH diff --git a/textures/sun.png b/textures/sun.png index c94a9a2be43fa9e4f15aadc7ff0dcb7274aa8269..fb3b88dbc92c2fc0c12011afca73518dc3bc0101 100644 GIT binary patch literal 129914 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

ASrhK%THDvNAuQoh+l8k39yG=-9|t4 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 HC-Hv)Ir~6( literal 116826 zcmagF2UHVX7dAQxE%XGWBZS_St`rR=bPGt6CP)zw5etaaglgzTKtvG)1OzG4L=X}X zX(9m>1w`pe@12nOgTC+geg9qS-n&-T3THAiXP>>F{p@F-8DdN?7%(&NG5`R;Y-EVO z1OU{OKdAv2E#(VyTqXhlc%}j^F8f}(>W{p2$LE^o4L783z%4hV+kMY#0C0cg#S@!5 z{HN0Nz}K-?pzU-{YTP1$bWNnQr%EMFs$^5@xLy0ZO3sZl`vXq?r znMS^?4f1=^8tYU@{?Jd>UGDw^ZK-zx<2wiXlq1K+E`}x$i8~L=-s~S9+wP$LeqbCF zqH);yQeTGi`Y-pyW~&9#&pcv!y*Kk_`Owx|MaP}JJ^YUjI}w*yiKywEoF$d+f|X?2 zitL;e2}P+Z9S82l6}y23-P}--m6f69q7n}>{0Y8l`y*yq>2u(t_e3{%^GT|mHz<+? z?Y*DhK3^QJ_NgHH?Q96@?D;k1JPkdSmxVubntVEsV}$kLO-#sG=b+cT$P zL{GQZcQ%x(-07b(HV*u1UH|$LgNDigUNXIH@P0*5l9(oOiMXNMwd6lurf^HivPTd< z>i%=Hu_9>DM5x}M7-=1zKazY^^6q}u_fEt5mD~&of}kUcb6Vqd%&`oKo&~8W#+Bn<@ha5NVZ%OH^M|x4QL5)@^*pXU zQao>;)8DU|Qc}@eNf2u;k4SaR6E#U6?RzCE^IPZe%V_a)vrAnsj>**441BC~9qzw+ zZIJp+eqol^ODiw$+Hd`rK9(ta)z*IfKKojtuikg$^_!mu+?sc9{l0p0mE4lfRXKl*+pi*Ot4UXv{ReI~4Y^ zt7&=`-_&5LuobgBwNjKY6n)vZKFKjO^o8y~7GTbt-21dG4I_1}(h&QuF)S-@y5>gW zQq`yWZd?Fg%xR_NhXVJ@;*`r@74ip|H@gR1>!%g@`BEUK`@BSt^Y?av#EH7V-r)?k zw^;`QBBo5uQMY?P-LspZ@}#=0ly0?y<`VS@SoSqEcl2MG(rJ2}cj0-(Q{LC-i>ALH zENyL9U#C6m9y2rDaFd4~Ve#=DQ^vvXx+%3O`<$yIBfw7{MU;>5;Y8h87OgX^gM)+_ z2d@!tg&4oPC@am2j;?Z67lCg30Co5SZn#;y!KWB=)3c8w_Y}M;9i#)VnyR?;2E~e% zRG7847k^$uJGF9uZ@K(gfGqfC1Lg)@_~s=fsZuwmt9kHv*RDWZE@3S+=`&eAnDsjGKMSi-K;B|K@eE%h61%^Bhbc$U9H| zwNa+!o}?eVEgkv&UOew}-ok^2g@{hGjgotD3bP-!Ogd%_0k)5A#D7TZl>P}-87j*7;h(4odpHW>Aw{m6`;$16x@87A%+f15E zzmm`8^HKSWK(;^`uk8DW2D2eiwgF7FF#O_x#6xrIjjIi5lKLYst%k%vW{nSiH+t1N z8Ao+S-0Snl_gW+$i*GhQhaAi@t&xnRl;)${SutrU*^F zn|-2~F%tNVr|^qA|Din18(mB0=zC3aLu>m%>S^cRj2YG4>tGyJIJkPlCkPTm$kJRmPRj+(_LrN63Ng0-u)$BJ)f(i?Jf4vw~FMpj?#m@)&mt} z?&GWP*fYh;AMgQmwZ5!t;a;WTcg-a`ri|z^mn0CK9Z8qy@=loLvG3=G$9%%hQpvJi zT_1ER9YO|NtnLeXvB3K6V&V7&`?MaX8gHly-DfLi)u;u_!D``q1jfugY_XplcP^9< zcKbe5vdEG8q@=2_GL9r`ZOSC6MRx#Kt!blOrF&fJx%9f9WAynzd1-7)XTLfS$yNDW zgbtapJ`c$6q03wI&_J*EldtTeKlH~gtVxb1VzAhG!=SKemt$@1eqYV)ZY@6Nl$(EY zNih7xH6u5`$|LBffaLyNxJ+)bw^p;{a1d3xi;~Kj6~H6f(gwd|wrNhqdIKw6oHcuj zNx97}SDfNV2Tuxp=d3i+Aa8B>ko#gRKYzZjPp*1=77OmNR1+kT7Fu+u^+ zn=j&+Hli;-E=l=Zw2wV93Lc~`>N-uMTcbVmW=Vtmn?;}f+1m5cN#cHiR`ms@2>heb&9wqw6VkNUwoOqSJ4W@%qbXfhrOTai z3~GjBlTRi;y4|e$oN?NT5Yj|fHq+OAj`OqjLc`@Q=zDw(Y#z2e*&m&RU3y#Qt2P_W zx@LZF{N*)vyjk-Pr0DEQ``~dacJM((K6`87&DY9ztX8Wzaq?R1XDa&?5Uopi!<=0HblRNUs~;EWXFWKUv)$_&k1RG-WI$%{cP&$b!u4qjOAB>7}s8bFHp z#x1E(S92J(pjqVtxvjF*#xweB#RT2&M#MbI+p*C5-j|veBpFr@6Pcc#NiK@cmq|oh!@PB4-rq@fCW`slU4N7L16y5ufg3jJzTEe-oO8KibS3-J(#CsvVTS|{65VwzovR+pcv-R;p$M9NcfQZGp$P8 z-|6#*8C`vAXX3*N6Y59&J=q3<+z%AQ8)k6p+J?TUyc-{hW4$6$I^*^xtW5M~gaaol zIgIZy$M@n2OnU+6U*kjU+py0@n%VvlYY21gZ@qQitra<*5_^;$-~3f)%XzU1qws-3+ez|y^^4mucoNI$r@<_J(8udupH`4V!sdxMAI?P@w+xnSaAK;9C5bJc znGyAf{36ren@@bpw5Wb{`xL*oSl;eZ_XBy^@J+4M?>SXvo;{OZuO4|S`Ai29b)FB) z6D8@dZvV@^R6zPFHfML=#rE4{+qN69glYAxDJj3tS(7$Jgs{EITep7Vj80Fs7l^%X zDzrjHp&XbZ`+_&iS?lYTnKGc=u8FJ-ViS=M1a1AJ8xiGA`B6J^r#PfDxLJpK>i2*b zeP;xo#N==%zJcHGQ?nb3dfN%Qytw2c?j1Z4a-$$EinFdZXwBr)JUQa~K?h%$Z>hu= z%NsB9?66%~sgBXVB9#$z0ej&(0d>wVzuk7%6oSLv8S-q z%c5Lm+b|Ck$F6|BB1_){g!X7WSX>P7FRDD9@Q92w_N7-*#*c1Wd&taknRgnR&8;?L zxe}C58Y0Z~tFMaY=M-96+SnEry*P$1z_8`qrRJSFUQu&#;Le$KzWHQ`R^}8uV1IKJB$Q)n|8uLryl*I@@%yS?^pfXEVnl`|W#o zbhflsSuQG-Dcnc}FvRjUK$z7^JP$tB6DYE3-oGs%N&Drw+pg!bw)cF`hTl8CCAx+$ z8br!HJpt)KiVDL+!c^;=p1V+$c4J#S5J_LKEJixV&tUs`_`bByBI%K&!t=)im6jjR zh7#M@PAK+XLEtSG`AJ&Uc@l3nx$khbNeWK~eE)QyI(?1s`W9D}ww#;9x0{cI@LwZ< z!lC|)mQ^riqd~ak<%m|xrM;x_^QxT8?-UEqT}d4?yWuC4my-3M`*lmt!@4HeEyeg@ zfoR0FZi!M|qSh%dJDy@k#SM4u0vi8W+IHB}lLSs;R>JOy3OC0rHSWk+U zlc-$|^)UONB4#pj796sQjg`S#VjnDAE$M8|PgvZHbp9-k%mNMTu4-PNJFt-#+Fp`l zfB%)Rdj6Js|A=Ow*MzC)wF_=v5}lu!e6Qh2kBfXc@{w^@^@hb@SmdzfNJ4Lhh4`4Q zF84#I9u%VduJ)=f|8(Im&W%fsNgoqUS1#SnTY_eF{ie&0_7MnK7CEQ?R0{<#Nj9EU zbTzQcbMgF|UM&<{L;IrX>6&Ib;@Az=GP;_klG7Yzwtc#gTWxWMjft0z&p)bn%!Gsv zOhkJx)Y{5CGDTQT8A>TYaA6kVkC=+IWP{zx$h$3;uV&Hm1it;kyn5WH;~TZjt6}Au zB-XqihgO41nsS4S3EpYt+S%BYuQQn5J^@}KtV&mQekQxX%<%L6n`f2<+e8|!VKeIH z-rm_!K(Yj8>7dzEu%E=F1O&jLiio(3?QH?&SWzaMJHH~@B%MZPMp7Cbte^H=@jwr}&Q7wmcxOqDZXEd@Di)I^^jz|@Z z_>o>2Dtl7xk1y4}&lk&iPvYXWh_x_L=?F~C8Z=@)zH{1|PsFJ)!vWB7{_-*-=99Sa zEk@=~4;m8#rthm(|Kb5!FEDGrmeH*r)-Aw~7Fo)ikvX*Ztoiai9dL&iF`>EofNQ0( zc4`58Qha)-unC0waYV7HERzJP2SqHZ=M%bx{lTFZ#DjQ z0v*U{4U46DnsA}sqc-~;b9R{bY~ux&2v*Jc>u)bWMrfKnbKjgh$*myz`Ln))&<}_Sm)P=cj~5*FF98EOK-u*;Z@=f4lBCJ&joW;S z!}Ei}{E;7zK_XAe4jK%(J3qT#Y^Y4U{5hNPO+ zxoFu(1yd3uFLO)|xEun+KDkxHPOmh?|8z-T$5XrnwDSXBG?Wu53XHDdS7tEhkL3( zz$v6KOvSLB!#3_xp=aW~2r~gE8-tH}$D2;8WV9nULbba&)7sAWY&~6U9a($=ZU-6-Go`{>lHEPoRnfTHv3w_n5Md>?X<815w9Qr$@hz^;&tK(P+hfY70A-BT6LRon#1$5VWN- z50})Ld75v@v*ahv@x0gNIrDQTCtG*+1{v|f$Gg(r(6fgwms(FF?>8-&e$HgK4)+v88IH2&Ty8=Cl39bVq|bgdP_u z$d;B(dDjOsLJ#fFA70Fxb0Zo9Ms{Vj{Z!W&3m2|>Ou^4;mOhS~n@0*^me{`-?M_ET z!fLysvBFs&U-{~$X@$j~)7ARnsW~*N7RR_`c>%WbpIGC!F=Quu?BUYIInxb84s z)2-MYG^SzF$_fn4j*J_EWk>Siy2R;jcHVe=TlrIbH`DCHajg0jO$L8*_|n2dY{k20 zQvwmRx-hY_#gM= z7rt33D?j`yH4SYnz0ogfg2(rROX&3&K>}C)d*fVcop8nIAh9vu zw6HHznn|t7oVs+Qw$m-#c!V2s?N0;(m3cfls>e0nZ1Fv<2mnB$Jau(VjdXSYecVHN$n!KL<&5EbE$-;CI^$Xk{zc?` z@^f_?IEUXC>0{4ziaBik7e28Y;G%T+K6>}WMjLAy@mpFXtRM0`;^?(|I(R2tWu?oJyVq0ZqkWM|BsJ%2 zY6R5P!c2#U)49g0Ak(lvVDvp|d{^&I*R*t4iVK9JIGG={D@a-{dz{1V|FHFT?#72Y zRCL(*iN50D?VZ=&r!HU#O1ECrlG4@XH;e+yUg#xZe|nEkHoWKxBFwP#fdwYf(}oaR zax3}9(UqJVc+f`pTSERqEuLsh==)9?Q7z-BwAORz^w#EIC#U|~l z#rivJCiNLV=K(}|A+&Tuk@BOzKx zXHsiVJ0`=9e)@kKxBdV8{{OrlibVo_+!GVP-Gyw98IQ)IhypJ zGw;J&xc;w8xe3?n(xzdgTH&EX(;0}g$2VCnA+}@%5z3l^T`(S?DdscL~{oRN1!5?n@&H+Ip zxQ5?sHI}5TlCl&-;3zPWrK?HcZqnyNa4!e+1j#Gla_`1Pa2H(oK(aDK!bPF~vG8o% zYTPs<8{Pk2%{RU?hGDIJeqgk(w@wp775-l*wkE7T!jnEwj3<92&p49BeBWJPr=h0` z|F2(LKdma2fEU5di`$e_^;{j3B`JQRcr+O}3RI|GR{g#C+;Ro}^zRp5Da=qXWt!(;#B_WJlu zjNk;$H&CTFKlLlc3NLb+MBSbW3Z{{=*A}MGX7$L;=KPXx;5JneCbuG>oxTaM{TXtr;)rC1cS0s{Wlj1z$yA2j^Cj= z)FAsA$TN!#j2mrBdZfKG_9(^wCYzxCKJld5iUY2h1YGajwTvXOv=S`aNP*f~&e$Um z{y9xEytW2B7~k)ZYraNgJ^R}d?RW*);b0tjkh8p#y28#wO%)Yd3=;!>!e~cCPQ(;5##?sXmj!^MtrRzab56K zrpusx>9 z5x$P1@+W!}@Sq;-TK5F0OyDENE3>9Cwla8)7&`9>l7BHCv%gkK-}pbqL^>8=ggl#5 zE3GrwEy{wd3&@x|w1n)K;K5*?OCe&c)BR2?qIVkF&VZvO$k(KrS7NHXKblDM7v{bl6CbsZnhXcXh93vns1t2Re_B#s2!C zw`?~VoFggxN_hG2HD@&f>8Z8vGtG_ZlJxe!CAfckCOJ$jBwK&mtYG75HUf%!**bf< zR1|M8CdI&S9#PlPR7VLxjR50*$MH8t5DW}=yImB~pyXw~(vFb%z#po;W(p@hzrdaW z=VimL?XbhErtK(@r|`?4l%K>fPU1C2FcJfTVk@Oxp@q$us7CNd0@aGvw$fcoG`adL zq!As~xqGoo{Id2>vHwAZF=>Tu3C}l&XPih%K9uYqdrWWIM2pD-`Zxt2#gN=1!!l0) zVhJbw_<;TGO7lPPUc-p4am_jE?&iCqj5kY}53LfKKJw!CKju1|RyAI=YuPKIfgCLl zedmbfjuuFPtR6|GJ%{m^gZA$5>{*j-YggziHpZ%s5Mx?GcQNKeCQiPOp*JECZwtSl zvNFt)1fi4}^gkqy!y95IhF}vFq6dh)9I@5G{*bbk1;dcE0&9Na4R>_d^}jrLlu!@~ zX{CfB!0>?HsHsvTl*zO;TWItbcig@MIz0Bgu$jOtFj*7(N^PASmWa(DSF`ti%b~8%JAqkPEhs%&th}J7|3^i@< zVEuRiSK@w_5@lHbGXGzA;e(%*p4%@+9@>N-=b*hj zz~?P-UoRF@H&QL4PSKyr2f^# zwr^=h9()YQ;F=YIZN#4J;|kGT!~hQmZFwxo`Wl@@ETp1!$IZ`*5E4ak>HRclzjW)g8=%btO^$0 zW6s`T@v*nG#mJDeo5&f#+3;|ZbSSGB^-*CsB4ZrMM;L630WDb$IZ{Xr0~paA0~lzw zy8nFPYc~^6=lz@-s{#ddtx7+HS!w#KnmFmX;)T~8g=p=~^lwF7#F8NYk_JVWMegQw zsU_+aU}&CKh?A_{fXXF0YZ#F8?(CaSQ?|F3EqMS9ny~prEYmQN?a;daKuqYUjQn+o zV_Ocdwf6j($>yw0YlA(dIg+(2P$`O%0W5-(6ZJOAMYp~C-&r2m-D;Lm1cav>)is=I zxlPkKZdpD$Lfb#o$|^?o>I5Igfb$+8Bvtbs>LE??87>hl|C65@b)`V#$$6<cY!!oE?-vf$j=W4spWFwm+VDB9wUaM@IM$-187vCP zD@YQ@3K#qFicA-k*Z80slx}xvHFPB0%Tw>J1^go=RBlp)>s9zbN&}`%iS<$TBS5}n z(6SBR{Su|Sm~(F5A08Tg6q+eU)2owjyp|kpKXY)jEgOFt-y*mWo}(7(MoYK>O5h+G z@2L9}8l!-8nt#jGB*tqUeAxz`OKy9=tG>@sfV%V%BYp*BnnMzA!jd&3w1VIT=U|lnfPH0+HOQpUF74mwW~1@ND1R!;Pjr3Z3i z)>kBhoH|1zX9XFTs|O>=mo=Y>jmorFz?m+GN2lJg0<^%4K`}^rJ7#uB!<}YPmE)E0 z`hRQ39@iQMpoop_v9QewVUkT15x#?yG(F!_E&P7Q@orRyYh?6w%0VNmW0&P%_F}a5 z=^T{up>re~j})>n`IH1W*oJpLr~Km#-x5B2GlvT&Xx56aPItPdS>0}x!K`TpI3@YC z+^y4_;xWsuIzPt1Mrtr+8p`HaHD=p2Hg91NK8g4@(-0Vn|KVV|6q!fcNiPj#O5VXC zO#@IAWO<$KOgwB;Q6EWVJIA)dzv*wU0k0%N0eG3qq7)zf+DDWyzuDE{v znZB_4c?7uDLmukHm^{U(2)(m~56RKGRzdT~v@(jcrjv62p|}+AJ3Htw4YIUh^s+Fb zBZ8keoxbnB#%x?@%}F2|#Du1e8;roNMLsYHRyo0TEKlX|XMj@gq0NL-EfSt^2M=}D zs+Azbc7i1XVH`Tx?*Hh4y)k{VzuqA+T)`hnw(Jk}Jy=}1a(=(Gk?H=zCAU+M=|CA+ zsM`oxf&u8cjYtB%UY5Vqn4>Tq$M0wv=O{({4u?M}!sgmdwJc37Pwg-a{8JimyC+4+ zJnP_G8^*c@LpSFrbj#K8KytVOxi51L;yqDcD8o`oX)xptt=Oj1oeA@= zC|XKJ@2@OBqOo<*Y#KwiW-xH*&kh=H9>U;(NoiG5WRC9@i}Kia60*Y;>ugS6dvN)9 zP2hCurz;oR_>f-v)|MRtLN8>hsif;FaAbpSs`6QB?BduAYwnGs{HLZU1pyOs&ZA{V zx5;}CipjITyFI|c0u=8I@tuL>UT+4od@EFUvh)%O|D4&$PLowyz%>dI8L0@>Nx$u= zXM1=-0r`-lQt3cQgw4XA$<*dw_7(>1y1-Lx7}ub>I?$e?R(XKIA2g=VTVz*+2&sFr z3PfJ2s&Drs?&JvVGF?q%pdPjg^AHD&dsfE3q8gt`D~#(sB@*ycF>X};i2nlWR?s^5 z&KKje$R30FK$Lvj8w+8Yb38ud-j@1`n*cwAbtR=9bgN=7ZU9W{=a;^q{vLJYKtz-Lo%6#~Y3pstf22_2>{Q7a82 zW`h!NG-m4wb%pV42R97Des~4joj&VK>fnF41WWcrbTZI#glpA>2pVVEC{Y53Wyrxw zaMLS_Itc&kj3fziEd{i5WU~nTU|WvR)?hz*ack^@7gBe(0(lUB8!5tHc~J6gS|SrD zmnUz)1T}6JNmd%ehs>Th`YopyU>=NVTV!hQpo(NESx?~+ip0i|Fq&%y?SYd78%c)I zl--=REzPh^3Vk1yo{+C5gzwK{RzFfFi+q2Dt-OAYvFD8r{C+HVau-8=BYc%1b&)8| z_@B%d1_h1C`1IWs+_nMEpJNUMNwwGBHM(|N|zx5yV|AghTL#VZErh;vP< z(hTVDRCzDg9;=gHabxwj{xS*dpANc}iUzx4v{O-jiU|{zYN4gPFrUJ*S<{`Jptg!%mfs7Z43qhSX46(*Ri1jbJPPlN3iKO+b&F zzKo%p%t26uE9vb zfU(PYNv?Eg6NXpgqe9pqCwsfEpVL|JKT^EcP z)B$WcDK6LfQ-{%HL1S`G)-n+Xy-^mDwrgFuC-Oa!uxAZp<*2w#Gf^RYz?0{wx2hD` zJQ+7}lLz1#aI_TeOZ|OWjM9fw-;0CvtA~inAREd?N3fo@cks((}_I>86Y;JGiD2N5V^ooWhIW?}s5 zv_-42Ta3k_7ZI%j3QKWphlayi`l3$6+dC%!OK%`Q6w=9Wb`>jT-#9`nGyGnW_~i}I z@>2+%t3$ACh6oHdD;{Z4^gp?BQXKRbBl|0^f7c_KDK?9YIBM^gYOtb5N5YzNuW6%|e4c>r)Km!|W)sgT#+TLgbb=JYIIr1Pa zrW6M<=v+y$tc=}s?6-oytz#Oln1#coC~rj`&Z;+mrmmFBY!oZc@1DaOAH%uQFM52p zri22$;LpH9QSvX$#{DyBB>A*hSHh3DfA1vfn%)<@^bhbe4s_^kc^93s^Wg1S{dgP< z^2&pdsEslBHaYLNchdpTyu<%CQQzL(BtC}s@O6QPj;W0zztC&hu%FrkC_UI^2hP>S zqx1>HaZ#Mo>e2}wnv<>3ht>rL25*)`$r@2uky{}$hM2EhgjdZ^07VwD{S?(On@f&A zq*r@+0JDJ{Pr6S1RWsoPwwhvO!1 z?SUzKiq!lHbiq|{N*z2ZuauNWlRvu*1(N#}2E(<|xlPZLnij79-ob(C1^DhFArngP zokOws61LdTsq5~KZJByQ)6P1o_&Vr~mbb}jCDdUY=w@RkTp-PTm&=!$bzrzyY8e=& zO?36`f7HNeGzq0KkFjjPMDHq1S+j$Sd(!448C#yJyS?Qy(gL}8TB1|fy&JBLRPxc- zL9fjpia=gAw2B8vF9YnxM{z#dda)=Id$T+C4sk?R8e|)ZMF;qbF&&{b3=AAqkXa}{Nq!*I3Gk_k%n>^9_A(X*LONepkkpIoOvRFnxNB6eu5(HL5x10}G$)eAPKl72c07`ewo&GH-{ia&;ur{ zMA>)5XOz`3k2e0t>Y#qF-Ne42P>_r{sD##h$bn6x8`XmqD>K+za;_d91{|fKlr2t5 zb_;`J+T@jETaM|J8Ax$(5SNR!M-9;AR%sG~#)Lzm)d!Jtve?uBaXFOEwppsfV@UEE zQ~mX9pC^evZMz<{S|Y^9Mu$7NKnwVNwclM|mPA@xx|Klz&mFqAtm5=ULHgS zYM;VPDQ|z2wrKq=fw(LY?6kl-+M)=IW9-Stf6L_ICUM>XHD0BS@MF`svPN z2uvu6fyyIV3ysFT`aCvDo9wqnWT3J^0d;zgX_A!J+uE?!{4VPTR@3zI`{YJGjVX)vQ|K!gnF12vNK9y^gT(SZsi*wA6 z7AC6mM-q=cB?X=M#bJiYfa!k#+K*%O7S8x4O0FfLmx%-gv)4`%a|U^&6wWY7`iko` znKAPQF(Gbf&=`^{?Sh=A=?mYW2rK>gnAD)ORZ3fju7+L-bJ3jaWq{18ygCL|yaJ@$ z0KQToQ<*FCME@f%AmdXw{Hb5PW|YPxQ5`&DDL;4@H_n$&>*wbiU0Pq5MHh7L;iype@*s{uuSHhOr5anMuGl4Xb8V?qmR$GS&Ak=u(m zA-Q6SZokV7cXkY|qK;Tsei&luOkjLkAuI!kb*1Y7eAyJJSY^ud?g~^2Yq>W5*%taE z4d`Ojswxy)bHuiJgcI5P^kKLjf6?}Q0f@nP?X~*1FRaJ3SuePx?;iYgodmP#Uo7zc`J38w5p-D<0E-0!m@667C?HkD?^n-}(>*sRZF#>k=H5Ad{?1gg2cu!qs`V~3SD4SZ zPsR%rX??$huQL+9B6Q64^C3bwDHe*G!n7Zg|9q*uDqWDTi5UO(66~^BZy&=i_n#d- znLPbhERRt0S2yorWcS7%uO~4;)6GCj+F+((l#d}vMgwroI~*(kpC+$HjCN#F=Lv^P z@LIq_YRIT8wN?6sdvz*K1v7%eP;_LNzP;c>F?bn%XS<28;QRq=X#-h&=g$T$IfPhc zQkoFjs!1&?YNwc{fBid+e@a?;wc~D1Rx-mRVf8+LQJMpJs(xxvlD-1DMpu6_bux(o z))}O(!OA{ka31<;)evK81Q@UL2nkiuVsvS>uAQq}%JI)0PQ##;wX*m77Xh@SQyUgX zpJPyx5+ZBnC`XMxq?PW5<}D$H*CG1c+$l?jMuetdimt>3|Lvlprcswxa*XyId5*}y z^6OrOIJvPSAB~csMYlm*9W7-DhS7jd-s64HV;b|qu+l5rhc7Xya4*OelorGmN1$}3 z;R=Az9!EhA&qJ|~)=3q;fKxYASUk*f7~l|t5Z7puCH{o8`5C3x1!c_1Imfo#yF%L^ zVdUED+(=xXc%6(eg%MgD6U5Yzv{{30sI)M+$n}-I5s)tfFXs^hA-Szu=wp|~ zVCZZTrA@S96BOE}bad19>14oc5--E&WNCywa^#<4F4GAXy&zdXCb{);i2Z(b^-9LB z!Tf>9Giu4_Ni}pm$>i&;jz-(8>l+?Xtyr<7pj06F{G2=PtnOt0YmT#knYPml?qn&% zWrw?hLcbSZ&j$C5Wk@j=E7DsSQEJlPeVS>E&>ArnL*e6x>zJZqj9UYSMvW4!K~J*A z8L0FJpju@HxE5*z=#0ytAsGav*4BsLmNK|I^jCPGh=gU4JYZn|q%aI^2b9C9@+dv( z3`8ah+x=F_4RW!U)~Sm2+O&Q1(Y_T$K~nz5pbK0M#8k|TahQRn1BYk&bHjHHKE$1~ zX+;D(l(qpi98MIpbp=N+Dn(;w)%yIb9DvjPxir5F?DmCR`4KeI2@o@LElMd#+st>? z5|sgBx~oM4)8PadTWL3RIhA?U7*2LSfc|ZwTA5?O->INsH_B_XgBxmkrI4p6$4SaDm4j7Rv^WF0S)p&+#a&JIWL=9`s-ZLJ%~qGKys(1@w8GNkSYcj z+Q#)eS}@^~LknLxX3PdnHygu>RT<*10TwaP_%+9`$kppdIQe(2ch++h4nBT8Sh=t_ zCPr;hbYMUXpqnJ7F;uz%l)W&%86q#)k^w5&l@tg;dikh&jh}#One;^QfBZ@|hze(D z^)YfzO0J;P-a<5RehE*Rt^34f8%|0OQ6WiRyiQY}q&ChK3$Ouy+C@A#?7VR3Uqmt( zIne8BmQX}ecK*j3abRL1Fgzt(fY0LxIH=zR*i;D$?aMR)<>GtRaa7h{$U&`883uVC zz;YOJh557$tt&q%zhfzOGDwFY4S@=+ARZEKyba?y!I?{qaWf)>^gzV^HjvZ!Oj3p6 zo}<|TUV0v1(u>j|HF=$enThC(^Mog%hm^#_aq{VMbWSh~$1r|?5o?pAL>t~ngN>)p zrEE_8z8SWcmq%dGMt&B`ZKxe1E)Aju#okE@xicMVQjW+v`KxOE0yU00;=h{(XtIwk z+4}2&2;~WsKE~2>A2#gX6+Adp8iV_nNb z;Hy43ifTCdQMy?bYQ zb7kYU;F-d(-yfGQ&6FdzXSL0&?!R|DWlKUQCLiF2YjA4|WD~~J`-x9F~O5rnhS)oJRlM3uvZq^b z$ZgBvpcy)FM;9u!{+Ca|uatuJ+Hn(%hbMdfwnl6j=!F-z2+Am1xG`G9(s4cw+C1xK zgc0o)lw-yvA4ZTKi|v-$LVtQvoI7Q=?r+89^qmx-qgAs#_9Wk!N$U(yQUx8l04dGi zU%9K70JTm&xS%1aKQ_2WYYDG)ZN+jUk)t6H?VwLYnA zqe32P?;wt4;4IEf=75>rSxF(MN9HJyU1H9Dw@P-ns|0;7_b42xZLp&^vi-VMs~vvp z1&@=cUSs&UK{fOp6IN#6Acgnv6-uk!v{Ic9ImzCay2D|-@5Vyur~k~1VcNr2{lt&V z`WSpc8E09?mr}wi{vL7vuz$e`7D_W`01M)nsE}pW>Zqd5*oxS)k|6Gpk!gXqeZ23+MxIj?T{1l*5?o^&X3|1XW*^bE-FkWynO&yZ6X^>ZH7MlkS?@=c^a(FF*4hPB zOsq!;l6)H7AcBuxWf4$JRJBK{aStO2;D&Ssr;*&fXGhRq*os-yQA*5|7m{ zVvT7bTbkcv8jl3S38g4AZ6aPZ&;es+L~}+SmqNFP_{JEg)7$H79@p%df<&5^ov^-Y zuO(4U#N4gzf_)kXxmrRtHW*{0X*`NQ#c^d^Wu7x_s*r8XHw)_?syqx>Wac27pE%gHz?M$aLNZiy?{Ma zm29^tL3+312coJ2XsA^?^;1ST>dI#CSr3a@<|f`InBo~#>Mk_*Z17ej%^2l*SINod zf6@KFh-+btcud2^INS#5VXbKfFr_jP@W>Zgt6ZwC`|a=;RiWy69-UtI78mn@2pJE1 z+-D`e82f{!lKMWT!vQ-gw-{yNF{Y(Td#&`()fVsaZEWBfOt8nEd>RwCF5l7Pld({U zn>8Qz8D0Qx?0*pgH^;=xm8??|IY~3lM;~x~v9l3mGUn=W`o7uxl~7O_W&a?jqoi;R zD>5qM?)?^v&kn9sgaPR%^e>kxeDFL|Za>8#IA8OM$@ zkV-Q)^Vv3ivi(k}CqCx(5Ha>Fcf4pPbn(%oO)FH2rmh<3jGN5k%7Li4T|;ym>&}$} zQK-yMXm;jtV2^pc`o2-_Z1J|Pbv~?bzgZy@75`oGybQ4px@<8g-YoTOmW?J!`3~ z>%pwBno&+biLCM`Y59tbyD{!q-@Z&W6ewr$x2Q&gxh|W1lNfB~0Ze*((f@n8IQqyI zRBnQtSFq*`{U7E5tnWU!(g9{w2t*T9;TX>MFvi*o ztrdcNm%a>o zklp_vg=Wmu+!DiSj|UQb9Phy|&ZR}Pc*_1xqOqipHEaC{HZ15Q58gjn_v31o7W&~$R7F|Ll{21chC{do>3%r3 zpQd<7OC`?`+CE}DU+v7N4$2jIek%|vwLnEQVU`G&f($(X?^t=uKx)HgZmeUbndrMn z$$8Y}vs zz7n7&`}+iW=8*9?0bGuRpTZ*SaB4*b=E*aXP<(-j;ZoX;s9#4sA5EG8x?uk_IqdH% zdfC_4D*5u2@{Y5b4M878F)T>L33d6_?Ua-qds~jN>a5wcxrR$f@FtYIyDyE!b^gGH z^3C<5jJCiWS*{lHXBmE1)Upu|`c-?LE5#SW6aQxz#Rq{~BGQr)cs0&Ei70SM? zd)>rh&6xWOyV{#457<^3$B6Hu4}6=UE2GZ4-qYS2g3-28I>e1c398xKx!nq)p{6TE39?K**VI}>Px+Onth zh=(!CqkuOI;S2zgLaf75)hb<~@v}h%0Atj(-4#V+I9;?p4(;1>6kP8k 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 diff --git a/textures/unknown.png b/textures/unknown.png index c04d569a6dadb82b2431bb6804493f5e3c9ef10b..bbea82c42df2bc86c99e534def9edb22b51f35f7 100644 GIT binary patch literal 1883 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 diff --git a/textures/vulcano_stone.png b/textures/vulcano_stone.png index 530fd3447e461ea6bf0d2b2779d3806df2aa7de0..c35971359226f213ca2e8579bb1f29e2c595877f 100644 GIT binary patch delta 1149 zcmZ{j+e;L26vxjN?L)UUO$4o&yrk4>znRs&3=-t-W*b_QYZyx8IQ!e(AM9M1{Vi&d zD_!UUf#OS4^cO@A2?jkx^w5LRL%#G{AQD0J(o51qXU29l7-6oz@8^4d=bSmSRe(9RAG0$e)=Fnb$d9hYXm0h9>9_i+IE5kQ0W z^!3Hwg(~sZWc^C zZK)asG4NzZ3dN&UF@ZS_GkqgZnM5%|L6YQ9Ozsw&U#;FnxULE(an}pkY>{%zGCKch z<_pU0RXL@X)f`RGqGmITGt+>$+k=cS$#`DqPYo(HnU%KxLZ)=I3{WG-^B{(&-l)$} zuH6z6o|7J)vZtxi-iQ?Qzq=nr?{N>Wk~g`jQ*JZO z-4+Yys{0kgwe=4g(It4eHipj`LxoMzasfhLKYtuWm{;LTMQURsb!u=RLBaC~M}mSV zcH@PJK_TY8h5x;Y1T7)S0bN=6KHZ0z+YR|Ol#U^ zxjYA@G*MuhkT7+X8B6ox7-G#8EVE^9-FccQu>$X8hEN>p?;FUSu0y)MLhGtg%BmVK l+0=H&Z{XS7GT?0QuM%d47Qpe2ji=)1g;er<;zi&1&A)zvVj}1=;$_59Sb%BYyaB^>EX>4U6ba`-PAZ2)IW&i+q+ND<8k?bf8 z{U?eI0SUw-91N!FX0YM!0fXDd>7cCm;G%OHkBv5R z!XoJ7N&QXQ_V@VEb8(}qbAv%Ln9cDS+@SBEGx&MX^N^E3mw$_(xQ~tPzLAC?4nx7z zI20K=6zDPpr6I`h&}@(IZD@8e_^S(LdJqOB96!}w)_8W}$XmQEYwumeI86em8Sj3B+LPCtQ#LjGR8!_t)U)YtpFKJfaP(-cGqV# zZ?QR1`T9}6aer&1!wv3pHPS#mHkLGS`=FZzJ$KHXuGS5bui@^PUM%wVRLnPvGMzf~ z71s8vwS-#t!@Fc1Tz12$=?SS0Wi4Avf_}_lc>Dxw-$%pJD>~~9BU2;>#FZ=+ zN>ml?eUT}{M$0>U%*+``H(CG|ku%^YK#f6_J%BGr2Y)shsbWCoTGg)N+2@dBPKAppsN>>_FQLSec7NKDO1s@f?QZvb*yElma;=(bt5jEg z4K>zuqBc-{jK4sQ25Q`qYJC1g4OH)sS@nE@kcJr$V@p8XHw2K-+%VIDtmTGW!%Rm; zRS3gKY1kCfi5y#H>`p9|PV7F&{S|J?*>7><-y)|PbpI2%j+@%$g4-9Um3D3Cj@VI! zEq|ukp!zE1#3A8U%1#J(KiO<0bXw53XpV(m37iWx=Ac9B+)lG}3U1BB>dsAD+mUwR z9`ocSE@R;jF(|@x>}A`S)RcJ0ah<8%_{S{khA$r@x?8Q@8%1U9=AL{%lS@OIJ!4ab zO;*(E%9OfKTguq6=R(Fp{3V|18rZk_DSymN-@~+0@e&n39jX(psh8rk#C@Sq{mK%v zPXqQ_m@Y@unl`ee4K9dtA*=4nK&tR&jhTBg!{FBNpSt}jXRxRXG=FlI z=xdg)*?NX3t7)H2%VAzI;NfI4{2AGZbj+Q8Xom%lX|PF zR}W<^$ip-QJG@5YZH{xXnKN0`t#e-T=Cl7lZd3VO z1tZuWqv)-K_4jP8wVC>3OQY+%jpc_0b@L8EX>4Tx0C=2zkv&MmKpe$iQ>8^J4zWIF0R-n$ cAsLg@0X&n410}N%0(k)m07*qoM6N<$g2%Lp6#xJL diff --git a/textures/water.png b/textures/water.png index 175639e61a2848b5785cebe27b977bd66aa89d1d..b9a66fda818ea94141045e7c50d66a840bb62a28 100644 GIT binary patch delta 1435 zcmZ{k4^R|U9LL`QVJd-w2m=)>sOKbyyL)keR-)hz;R@&w$bxZX*?Y(B%I$o(QZ)5Ile>BIqz2Eosp-&7Q zeP1p5VdRagsgAVf>xzXsJanv$0dt=6Mm+oE*# zwMT9Y`%gSIx}4_XYvPtlQRlAzIR2@WvG~0`whghF#m7`svI~9iYo>CxyQ@gn-wd8_ zQBI~(qqi#9x*H##KK|$4*|QUQvtK-Rv*Lx+*P0G2`sV$CSocRuw>$HD28BQV>YG+) zXR0pM^$w23SjXPk`R-Nqp1mcH{B4NtdLCby{3WwDsq?ZtGjVC6gp41vONR%`SIot) z^1qt(_Nm0OshRISO#b{QcX~?ow6*(8>dU7x<<{R09cay}INZKb>d)AEA?N7I$rmT* zF1BSDI-1v4KT~jde|xMxh}Mvzr-_Rvm=jbC55&?eV_;|lZLMM%4lc&Bo@P0k-r3!f z05!jDkYtzWZo0c6?)P&&U`W$Wz>T7tD-?;}iPcJ8QoI;hvMEatM&e|?9}wz%#F!cf z_@f{v-mxXfTSQk#9jQqf0`+zQDrGm>!K)Z)TT^Tf6Qpw(OV-#{BVen;n-EVxs`v4t zH$ugrU{v~4CGhu0;BB&`sMznpu8`x@{jS(SK#jAnKTo_iBK8zOju5l!LpTFud=DPMy3p$J~5 zM<%j_i7E=AVCUZ8$Fb~6xX0j=3XlD9v#?W9fvKnC3mU6YXkO;iCZU&3l2*a%PKdsxwnIM34 zEdcoOae}NgsbYhNAZMW7D+-idmUz+E*U8iZmbrkr?&#Z4Kh+0BFENNd%D=g|u(Y8d y3FzbnTH<{HH!qNYiq%m2m3HmBfS|YI!-VX@UZil`-lB1ciV{di&BbN>P&yY8j{ delta 1538 zcmV+d2L1W<4%-iqBYy;rdQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+ND-mw(BSi z{MRaa2}sP#!3^j04&L&+7;GoLagy6F#0JZtsY+m~fBtRs4}PM&BV&DV(K&^mi6%890accwv=nJsmd$+LmSq=%e+;4Q5ricP^P+w;+KaP}y}{ieb>2mcgDB&Xx6&PL zSz=#jx2fm)O#4)UPf|5&HSS@0sr$t`p%1v@S$2t_C2h4I`BenS-~v34E4Ni0*?h{) zfy(P2eG}HA!+#Up$7s=je!RHQz||$!7xdiG4>?_5uzd~p!1Tc*Zw|xqt+F09z{sPKwdm z0UHznOn(#Bcph`b%9LZ51QJ#|?SW0y31Asx!5?n|IFzim##-yFx4}l6oOXs#Va|Ei zx7*~kH{N>Zy$?S66m&4b1{Zt?A%+wsYV5`~q8ww0F{T8Y37V6mg!u`QO*Xxm&2Db< zTiD{3GU$^{w%KK$LykEWDY~GJiz~i_5=*LFL4T!cs-^0xuc5}88o1VUGtD;Fd2k!?mGe?v~Rq)lb9jSuWjZm40mJf!M6Vo>Qe! zeSg(TNccAdS_Nl+8qd8-jP1wc|Lf@#Y`wGCCa2~fJ(oFwRT&a&USee1Tl^dlL&ZR3R{iQo+;&K|HMSpfW&CueWsJqxWti@-(mVgem@#6V?^7n+A zU3py|h47r~@B2?Y+7o=Y@^JTfVWy()_u|!~k!PLeioDx(3>Bo*GmFpu(EXzt;|qA{ z8`>RCETZU(0PZLHK#_x|lfu|Yw&l)+e)J-gH`v@mL1(&NWo35=U&392v+%60?SIKf z!toImr;SzwGYbL|Jf_0CJck*LqY o?PGo4TuK*~Me?Ex|M|s#0WFPsEAC~H(f|Me07*qoM6N<$f=`z0tN;K2 diff --git a/textures/water_nt.png b/textures/water_nt.png index 0c071f376e9b17477ce2b95d7adab432ef4de0f4..f4575669d27a4d451bb75922d5ccbb7039d94c99 100644 GIT binary patch delta 1433 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 diff --git a/textures/wood.png b/textures/wood.png deleted file mode 100644 index 63250faa24a3e00a0d39d4f2942eb9f0c73ab48f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2318 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 e?>zv=