]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/nodedef.h
Update Lua API documentation to include minetest.get_modnames()
[dragonfireclient.git] / src / nodedef.h
index fcd06be71d06f6024cc86649444dd5bcbb903f1e..7c6931834b98d99dccb6ab5b980a10b5c2801edf 100644 (file)
@@ -65,7 +65,7 @@ enum LiquidType
 enum NodeBoxType
 {
        NODEBOX_REGULAR, // Regular block; allows buildable_to
-       NODEBOX_FIXED, // Static separately defined box
+       NODEBOX_FIXED, // Static separately defined box(es)
        NODEBOX_WALLMOUNTED, // Box for wall mounted nodes; (top, bottom, side)
 };
 
@@ -74,22 +74,16 @@ struct NodeBox
        enum NodeBoxType type;
        // NODEBOX_REGULAR (no parameters)
        // NODEBOX_FIXED
-       core::aabbox3d<f32> fixed;
+       std::vector<aabb3f> fixed;
        // NODEBOX_WALLMOUNTED
-       core::aabbox3d<f32> wall_top;
-       core::aabbox3d<f32> wall_bottom;
-       core::aabbox3d<f32> wall_side; // being at the -X side
-
-       NodeBox():
-               type(NODEBOX_REGULAR),
-               // default is rail-like
-               fixed(-BS/2, -BS/2, -BS/2, BS/2, -BS/2+BS/16., BS/2),
-               // default is sign/ladder-like
-               wall_top(-BS/2, BS/2-BS/16., -BS/2, BS/2, BS/2, BS/2),
-               wall_bottom(-BS/2, -BS/2, -BS/2, BS/2, -BS/2+BS/16., BS/2),
-               wall_side(-BS/2, -BS/2, -BS/2, -BS/2+BS/16., BS/2, BS/2)
-       {}
+       aabb3f wall_top;
+       aabb3f wall_bottom;
+       aabb3f wall_side; // being at the -X side
 
+       NodeBox()
+       { reset(); }
+
+       void reset();
        void serialize(std::ostream &os) const;
        void deSerialize(std::istream &is);
 };
@@ -143,6 +137,7 @@ enum NodeDrawType
        NDT_PLANTLIKE,
        NDT_FENCELIKE,
        NDT_RAILLIKE,
+       NDT_NODEBOX,
 };
 
 #define CF_SPECIAL_COUNT 2
@@ -217,6 +212,7 @@ struct ContentFeatures
        // Amount of light the node emits
        u8 light_source;
        u32 damage_per_second;
+       NodeBox node_box;
        NodeBox selection_box;
        // Compatibility with old maps
        // Set to true if paramtype used to be 'facedir_simple'