diff options
Diffstat (limited to 'src/mapnode_contentfeatures.h')
-rw-r--r-- | src/mapnode_contentfeatures.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mapnode_contentfeatures.h b/src/mapnode_contentfeatures.h index b60fc8d8b..7dd9df13b 100644 --- a/src/mapnode_contentfeatures.h +++ b/src/mapnode_contentfeatures.h @@ -57,6 +57,35 @@ enum LiquidType LIQUID_SOURCE }; +enum NodeBoxType +{ + NODEBOX_REGULAR, // Regular block; allows buildable_to + NODEBOX_FIXED, // Static separately defined box + NODEBOX_WALLMOUNTED, // Box for wall_mounted nodes; (top, bottom, side) +}; + +struct NodeBox +{ + enum NodeBoxType type; + // NODEBOX_REGULAR (no parameters) + // NODEBOX_FIXED + core::aabbox3d<f32> 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) + {} +}; + struct MapNode; class NodeMetadata; @@ -149,6 +178,8 @@ struct ContentFeatures DiggingPropertiesList digging_properties; u32 damage_per_second; + + NodeBox selection_box; // NOTE: Move relevant properties to here from elsewhere @@ -186,6 +217,7 @@ struct ContentFeatures light_source = 0; digging_properties.clear(); damage_per_second = 0; + selection_box = NodeBox(); } ContentFeatures() |