+ LIQUID_NONE,
+ LIQUID_FLOWING,
+ LIQUID_SOURCE
+};
+
+class MapNode;
+
+struct ContentFeatures
+{
+ // If non-NULL, content is translated to this when deserialized
+ MapNode *translate_to;
+
+ // Type of MapNode::param
+ ContentParamType param_type;
+
+ /*
+ 0: up
+ 1: down
+ 2: right
+ 3: left
+ 4: back
+ 5: front
+ */
+ TileSpec tiles[6];
+
+ //std::string inventory_image_path;
+ TextureSpec inventory_texture;
+
+ bool is_ground_content; //TODO: Remove, use walkable instead
+ bool light_propagates;
+ bool sunlight_propagates;
+ u8 solidness; // Used when choosing which face is drawn
+ bool walkable;
+ bool pointable;
+ bool diggable;
+ bool buildable_to;
+ enum LiquidType liquid_type;
+ bool wall_mounted; // If true, param2 is set to direction when placed
+
+ //TODO: Move more properties here
+
+ ContentFeatures()
+ {
+ translate_to = NULL;
+ param_type = CPT_NONE;
+ is_ground_content = false;
+ light_propagates = false;
+ sunlight_propagates = false;
+ solidness = 2;
+ walkable = true;
+ pointable = true;
+ diggable = true;
+ buildable_to = false;
+ liquid_type = LIQUID_NONE;
+ wall_mounted = false;
+ }
+
+ ~ContentFeatures();