+ // 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,
+ // Combined plantlike-on-solid
+ NDT_PLANTLIKE_ROOTED,
+};
+
+// 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 = true; // Takes effect only in special cases
+ bool tileable_horizontal = true;
+ bool tileable_vertical = true;
+ //! If true, the tile has its own color.
+ bool has_color = false;
+ //! The color of the tile.
+ video::SColor color = video::SColor(0xFFFFFFFF);
+
+ struct TileAnimationParams animation;
+
+ TileDef()
+ {
+ animation.type = TAT_NONE;
+ }
+
+ void serialize(std::ostream &os, u16 protocol_version) const;
+ void deSerialize(std::istream &is, u8 contentfeatures_version,
+ NodeDrawType drawtype);