X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fnode.c;h=e79352b5f2fc5c3a3d47178dd0ed39628a1d15c9;hb=79ff11c9236eb57e36ab599fc86394f87ee3e5a8;hp=39e60ac7f4684955c31685ff26eca2a77bb6b0b2;hpb=b1f8d66a9986342b1c3b49cea5ce7d7408ea79cd;p=dragonblocks_alpha.git diff --git a/src/node.c b/src/node.c index 39e60ac..e79352b 100644 --- a/src/node.c +++ b/src/node.c @@ -1,169 +1,87 @@ -#include "map.h" +#include "dig.h" #include "node.h" -#include "util.h" -#include +#include "terrain.h" +#include "types.h" -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] = { +NodeDef node_def[COUNT_NODE] = { // unknown { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_NONE, }, // air { .solid = false, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_NONE, }, // grass { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_DIRT, }, // dirt { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_DIRT, }, // stone { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_STONE, }, // snow { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_DIRT, }, // oak wood { .solid = true, - .data_size = sizeof(HSLData), - .create = NULL, - .delete = NULL, - .serialize = &serialize_hsl, - .deserialize = &deserialize_hsl, + .dig_class = DIG_WOOD, }, // oak leaves { .solid = true, - .data_size = sizeof(HSLData), - .create = NULL, - .delete = NULL, - .serialize = &serialize_hsl, - .deserialize = &deserialize_hsl, + .dig_class = DIG_LEAVES, }, // pine wood { .solid = true, - .data_size = sizeof(HSLData), - .create = NULL, - .delete = NULL, - .serialize = &serialize_hsl, - .deserialize = &deserialize_hsl, + .dig_class = DIG_WOOD, }, // pine leaves { .solid = true, - .data_size = sizeof(HSLData), - .create = NULL, - .delete = NULL, - .serialize = &serialize_hsl, - .deserialize = &deserialize_hsl, + .dig_class = DIG_LEAVES, }, // palm wood { .solid = true, - .data_size = sizeof(HSLData), - .create = NULL, - .delete = NULL, - .serialize = &serialize_hsl, - .deserialize = &deserialize_hsl, + .dig_class = DIG_WOOD, }, // palm leaves { .solid = true, - .data_size = sizeof(HSLData), - .create = NULL, - .delete = NULL, - .serialize = &serialize_hsl, - .deserialize = &deserialize_hsl, + .dig_class = DIG_LEAVES, }, // sand { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_DIRT, }, // water { .solid = false, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_NONE, }, // lava { .solid = false, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_NONE, }, // vulcanostone { .solid = true, - .data_size = 0, - .create = NULL, - .delete = NULL, - .serialize = NULL, - .deserialize = NULL, + .dig_class = DIG_STONE, }, };