-#include "map.h"
+#include "dig.h"
#include "node.h"
-#include "util.h"
-#include <stdio.h>
+#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,
},
};