diff options
Diffstat (limited to 'src/nodedef.h')
-rw-r--r-- | src/nodedef.h | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/nodedef.h b/src/nodedef.h index fcd06be71..7c6931834 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -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' |