+ // Glass-like, draw connected frames and all visible faces.
+ // param2 > 0 defines 64 levels of internal liquid
+ // Uses 3 textures, one for frames, second for faces,
+ // optional third is a 'special tile' for the liquid.
+ NDT_GLASSLIKE_FRAMED,
+ // Draw faces slightly rotated and only on neighbouring nodes
+ NDT_FIRELIKE,
+ // Enabled -> ndt_glasslike_framed, disabled -> ndt_glasslike
+ NDT_GLASSLIKE_FRAMED_OPTIONAL,
+ // Uses static meshes
+ NDT_MESH,
+};
+
+// Mesh options for NDT_PLANTLIKE with CPT2_MESHOPTIONS
+static const u8 MO_MASK_STYLE = 0x07;
+static const u8 MO_BIT_RANDOM_OFFSET = 0x08;
+static const u8 MO_BIT_SCALE_SQRT2 = 0x10;
+static const u8 MO_BIT_RANDOM_OFFSET_Y = 0x20;
+enum PlantlikeStyle {
+ PLANT_STYLE_CROSS,
+ PLANT_STYLE_CROSS2,
+ PLANT_STYLE_STAR,
+ PLANT_STYLE_HASH,
+ PLANT_STYLE_HASH2,
+};
+
+/*
+ Stand-alone definition of a TileSpec (basically a server-side TileSpec)
+*/
+
+struct TileDef
+{
+ std::string name;
+ bool backface_culling; // Takes effect only in special cases
+ bool tileable_horizontal;
+ bool tileable_vertical;
+ //! If true, the tile has its own color.
+ bool has_color;
+ //! The color of the tile.
+ video::SColor color;
+
+ struct TileAnimationParams animation;
+
+ TileDef() :
+ name(""),
+ backface_culling(true),
+ tileable_horizontal(true),
+ tileable_vertical(true),
+ has_color(false),
+ color(video::SColor(0xFFFFFFFF))
+ {
+ animation.type = TAT_NONE;
+ }
+
+ void serialize(std::ostream &os, u16 protocol_version) const;
+ void deSerialize(std::istream &is, const u8 contentfeatures_version, const NodeDrawType drawtype);