13#if CHECK_CLIENT_BUILD()
15#include <IMeshManipulator.h>
131 connected = std::make_shared<NodeBoxConnected>();
140 void serialize(std::ostream &os, u16 protocol_version)
const;
272 video::SColor
color = video::SColor(0xFFFFFFFF);
283 void serialize(std::ostream &os, u16 protocol_version)
const;
292#define CF_SPECIAL_COUNT 6
303#if CHECK_CLIENT_BUILD()
311 bool backface_culling;
339#if CHECK_CLIENT_BUILD()
340 scene::IMesh *mesh_ptr[24];
341 video::SColor minimap_color;
451 void serialize(std::ostream &os, u16 protocol_version)
const;
452 void deSerialize(std::istream &is, u16 protocol_version);
518#if CHECK_CLIENT_BUILD()
613 bool getIds(
const std::string &name, std::vector<content_t> &result)
const;
634 u8 connect_face)
const;
704 void serialize(std::ostream &os, u16 protocol_version)
const;
712 void deSerialize(std::istream &is, u16 protocol_version);
849 const std::string &node_alt,
content_t c_fallback,
850 bool error_on_fallback =
true);
855 void reset(
bool resolve_done =
false);
Definition texturesource.h:36
Definition nameidmapping.h:17
This class is for getting the actual properties of nodes from their content ID.
Definition nodedef.h:541
core::aabbox3d< s16 > getSelectionBoxIntUnion() const
Definition nodedef.h:620
~NodeDefManager()
Definition nodedef.cpp:1013
aabb3f m_selection_box_union
Definition nodedef.h:813
content_t allocateDummy(const std::string &name)
Definition nodedef.cpp:1365
void setNodeRegistrationStatus(bool completed)
Definition nodedef.h:718
core::aabbox3d< s16 > m_selection_box_int_union
Definition nodedef.h:820
void resolveCrossrefs()
Definition nodedef.cpp:1640
std::unordered_map< std::string, std::vector< content_t > > m_group_to_items
Definition nodedef.h:796
void eraseIdFromGroups(content_t id)
Definition nodedef.cpp:1301
void removeNode(const std::string &name)
Definition nodedef.cpp:1374
bool nodeboxConnects(MapNode from, MapNode to, u8 connect_face) const
Definition nodedef.cpp:1658
ContentLightingFlags getLightingFlags(const MapNode &n) const
Definition nodedef.h:577
std::vector< NodeResolver * > m_pending_resolve_callbacks
Definition nodedef.h:826
bool m_node_registration_complete
True if all nodes have been registered.
Definition nodedef.h:807
void pendNodeResolve(NodeResolver *nr) const
Definition nodedef.cpp:1589
content_t m_next_id
Definition nodedef.h:804
bool cancelNodeResolveCallback(NodeResolver *nr) const
Definition nodedef.cpp:1599
const ContentFeatures & get(content_t c) const
Definition nodedef.h:556
void resetNodeResolveState()
Definition nodedef.cpp:1627
void updateTextures(IGameDef *gamedef, void *progress_cbk_args)
Definition nodedef.cpp:1466
void applyTextureOverrides(const std::vector< TextureOverride > &overrides)
Definition nodedef.cpp:1405
content_t set(const std::string &name, const ContentFeatures &def)
Definition nodedef.cpp:1322
const ContentFeatures & get(const MapNode &n) const
Definition nodedef.h:568
void fixSelectionBoxIntUnion()
Definition nodedef.cpp:1284
std::unordered_map< std::string, content_t > m_name_id_mapping_with_aliases
Definition nodedef.h:789
void serialize(std::ostream &os, u16 protocol_version) const
Definition nodedef.cpp:1490
void deSerialize(std::istream &is, u16 protocol_version)
Definition nodedef.cpp:1519
bool getIds(const std::string &name, std::vector< content_t > &result) const
Definition nodedef.cpp:1120
void clear()
Definition nodedef.cpp:1026
void updateAliases(IItemDefManager *idef)
Definition nodedef.cpp:1390
void addNameIdMapping(content_t i, const std::string &name)
Definition nodedef.cpp:1576
NodeDefManager()
Definition nodedef.cpp:1007
ContentLightingFlags getLightingFlags(content_t c) const
Definition nodedef.h:572
NameIdMapping m_name_id_mapping
A mapping for fast conversion between names and IDs.
Definition nodedef.h:782
bool getId(const std::string &name, content_t &result) const
Definition nodedef.cpp:1101
std::vector< ContentFeatures > m_content_features
Features indexed by ID.
Definition nodedef.h:779
ContentLightingFlags m_content_lighting_flag_cache[CONTENT_MAX+1L]
Definition nodedef.h:831
content_t allocateId()
Definition nodedef.cpp:1153
void runNodeResolveCallbacks()
Definition nodedef.cpp:1616
const NodeDefManager * m_ndef
Definition nodedef.h:867
bool isResolveDone() const
Definition nodedef.h:854
bool m_resolve_done
Definition nodedef.h:880
void cloneTo(NodeResolver *res) const
Definition nodedef.cpp:1752
void nodeResolveInternal()
Definition nodedef.cpp:1764
std::vector< size_t > m_nnlistsizes
Definition nodedef.h:862
std::vector< std::string > m_nodenames
Definition nodedef.h:858
virtual void resolveNodeNames()=0
void reset(bool resolve_done=false)
Definition nodedef.cpp:1845
NodeResolver()
Definition nodedef.cpp:1739
u32 m_nodenames_idx
Definition nodedef.h:869
u32 m_nnlistsizes_idx
Definition nodedef.h:879
bool getIdsFromNrBacklog(std::vector< content_t > *result_out, bool all_required=false, content_t c_fallback=CONTENT_IGNORE)
Definition nodedef.cpp:1807
virtual ~NodeResolver()
Definition nodedef.cpp:1745
bool getIdFromNrBacklog(content_t *result_out, const std::string &node_alt, content_t c_fallback, bool error_on_fallback=true)
Definition nodedef.cpp:1777
Definition test_schematic.cpp:11
TextureSettings()=default
bool enable_mesh_cache
Definition nodedef.h:174
int node_texture_size
Definition nodedef.h:171
LeavesStyle leaves_style
Definition nodedef.h:168
bool enable_minimap
Definition nodedef.h:175
bool translucent_liquids
Definition nodedef.h:172
AutoScale autoscale_mode
Definition nodedef.h:170
WorldAlignMode world_aligned_mode
Definition nodedef.h:169
void readSettings()
Definition nodedef.cpp:269
bool connected_glass
Definition nodedef.h:173
core::aabbox3d< f32 > aabb3f
Definition irr_aabb3d.h:11
std::unordered_map< std::string, int > ItemGroupList
Definition itemgroup.h:10
static int itemgroup_get(const ItemGroupList &groups, const std::string &name)
Definition itemgroup.h:12
#define CONTENT_IGNORE
Definition mapnode.h:58
#define CONTENT_MAX
Definition mapnode.h:23
#define CONTENT_UNKNOWN
Definition mapnode.h:40
u16 content_t
Definition mapnode.h:22
Definition activeobjectmgr.cpp:11
NodeDefManager * createNodeDefManager()
Definition nodedef.cpp:1583
PlantlikeStyle
Definition nodedef.h:235
@ PLANT_STYLE_STAR
Definition nodedef.h:238
@ PLANT_STYLE_CROSS
Definition nodedef.h:236
@ PLANT_STYLE_CROSS2
Definition nodedef.h:237
@ PLANT_STYLE_HASH2
Definition nodedef.h:240
@ PLANT_STYLE_HASH
Definition nodedef.h:239
AutoScale
Definition nodedef.h:153
@ AUTOSCALE_DISABLE
Definition nodedef.h:154
@ AUTOSCALE_FORCE
Definition nodedef.h:156
@ AUTOSCALE_ENABLE
Definition nodedef.h:155
LeavesStyle
Definition nodedef.h:147
@ LEAVES_SIMPLE
Definition nodedef.h:149
@ LEAVES_FANCY
Definition nodedef.h:148
@ LEAVES_OPAQUE
Definition nodedef.h:150
static const u8 MO_BIT_RANDOM_OFFSET_Y
Definition nodedef.h:234
ContentParamType2
Definition nodedef.h:42
@ CPT2_DEGROTATE
Definition nodedef.h:55
@ CPT2_COLORED_DEGROTATE
Definition nodedef.h:67
@ CPT2_FULL
Definition nodedef.h:45
@ CPT2_COLORED_4DIR
Definition nodedef.h:71
@ CPT2_WALLMOUNTED
Definition nodedef.h:51
@ CPT2_MESHOPTIONS
Definition nodedef.h:57
@ CPT2_FACEDIR
Definition nodedef.h:49
@ CPT2_4DIR
Definition nodedef.h:69
@ ContentParamType2_END
Definition nodedef.h:73
@ CPT2_COLOR
Definition nodedef.h:59
@ CPT2_COLORED_WALLMOUNTED
Definition nodedef.h:63
@ CPT2_GLASSLIKE_LIQUID_LEVEL
Definition nodedef.h:65
@ CPT2_NONE
Definition nodedef.h:43
@ CPT2_FLOWINGLIQUID
Definition nodedef.h:47
@ CPT2_COLORED_FACEDIR
Definition nodedef.h:61
@ CPT2_LEVELED
Definition nodedef.h:53
LiquidType
Definition nodedef.h:77
@ LIQUID_FLOWING
Definition nodedef.h:79
@ LIQUID_NONE
Definition nodedef.h:78
@ LiquidType_END
Definition nodedef.h:81
@ LIQUID_SOURCE
Definition nodedef.h:80
#define CF_SPECIAL_COUNT
Definition nodedef.h:292
static const u8 MO_BIT_RANDOM_OFFSET
Definition nodedef.h:232
static const u8 MO_MASK_STYLE
Definition nodedef.h:231
ContentParamType
Definition nodedef.h:35
@ CPT_LIGHT
Definition nodedef.h:37
@ ContentParamType_END
Definition nodedef.h:38
@ CPT_NONE
Definition nodedef.h:36
AlphaMode
Definition nodedef.h:250
@ ALPHAMODE_LEGACY_COMPAT
Definition nodedef.h:254
@ ALPHAMODE_CLIP
Definition nodedef.h:252
@ ALPHAMODE_OPAQUE
Definition nodedef.h:253
@ ALPHAMODE_BLEND
Definition nodedef.h:251
@ AlphaMode_END
Definition nodedef.h:255
static const u8 MO_BIT_SCALE_SQRT2
Definition nodedef.h:233
NodeDrawType
Definition nodedef.h:183
@ NDT_SIGNLIKE
Definition nodedef.h:201
@ NDT_FIRELIKE
Definition nodedef.h:219
@ NDT_FLOWINGLIQUID
Definition nodedef.h:191
@ NDT_RAILLIKE
Definition nodedef.h:210
@ NDT_NORMAL
Definition nodedef.h:185
@ NDT_TORCHLIKE
Definition nodedef.h:199
@ NDT_ALLFACES
Definition nodedef.h:195
@ NDT_NODEBOX
Definition nodedef.h:212
@ NDT_FENCELIKE
Definition nodedef.h:207
@ NDT_PLANTLIKE_ROOTED
Definition nodedef.h:225
@ NDT_GLASSLIKE
Definition nodedef.h:193
@ NDT_LIQUID
Definition nodedef.h:189
@ NodeDrawType_END
Definition nodedef.h:227
@ NDT_GLASSLIKE_FRAMED_OPTIONAL
Definition nodedef.h:221
@ NDT_AIRLIKE
Definition nodedef.h:187
@ NDT_MESH
Definition nodedef.h:223
@ NDT_GLASSLIKE_FRAMED
Definition nodedef.h:217
@ NDT_ALLFACES_OPTIONAL
Definition nodedef.h:197
@ NDT_PLANTLIKE
Definition nodedef.h:205
WorldAlignMode
Definition nodedef.h:159
@ WORLDALIGN_FORCE_NODEBOX
Definition nodedef.h:163
@ WORLDALIGN_DISABLE
Definition nodedef.h:160
@ WORLDALIGN_ENABLE
Definition nodedef.h:161
@ WORLDALIGN_FORCE
Definition nodedef.h:162
AlignStyle
Definition nodedef.h:243
@ ALIGN_STYLE_USER_DEFINED
Definition nodedef.h:246
@ ALIGN_STYLE_NODE
Definition nodedef.h:244
@ AlignStyle_END
Definition nodedef.h:247
@ ALIGN_STYLE_WORLD
Definition nodedef.h:245
NodeBoxType
Definition nodedef.h:85
@ NODEBOX_CONNECTED
Definition nodedef.h:90
@ NODEBOX_REGULAR
Definition nodedef.h:86
@ NODEBOX_FIXED
Definition nodedef.h:87
@ NODEBOX_WALLMOUNTED
Definition nodedef.h:88
@ NODEBOX_LEVELED
Definition nodedef.h:89
PointabilityType
Definition pointabilities.h:13
TileDef tiledef_special[CF_SPECIAL_COUNT]
Definition nodedef.h:347
bool light_propagates
Definition nodedef.h:369
void setDefaultAlphaMode()
Definition nodedef.h:457
ItemGroupList groups
Definition nodedef.h:329
ContentParamType param_type
Definition nodedef.h:331
u8 drowning
Definition nodedef.h:420
bool sameLiquidRender(const ContentFeatures &f) const
Definition nodedef.h:497
void reset()
Definition nodedef.cpp:331
std::string name
Definition nodedef.h:328
u8 light_source
Definition nodedef.h:372
bool climbable
Definition nodedef.h:389
TileDef tiledef[6]
Definition nodedef.h:344
bool has_on_destruct
Definition nodedef.h:316
std::string liquid_alternative_source
Definition nodedef.h:410
bool isLiquid() const
Definition nodedef.h:489
bool liquid_move_physics
Definition nodedef.h:405
video::SColor post_effect_color
Definition nodedef.h:360
SoundSpec sound_dug
Definition nodedef.h:434
ContentLightingFlags getLightingFlags() const
Definition nodedef.h:504
NodeBox node_box
Definition nodedef.h:426
bool legacy_wallmounted
Definition nodedef.h:442
u8 liquid_viscosity
Definition nodedef.h:415
video::SColor color
Definition nodedef.h:350
content_t liquid_alternative_source_id
Definition nodedef.h:411
bool buildable_to
Definition nodedef.h:391
ContentParamType2 param_type_2
Definition nodedef.h:333
bool legacy_facedir_simple
Definition nodedef.h:440
bool isLiquidRender() const
Definition nodedef.h:493
void deSerialize(std::istream &is, u16 protocol_version)
Definition nodedef.cpp:544
enum LiquidType liquid_type
Definition nodedef.h:403
bool needsBackfaceCulling() const
Definition nodedef.h:473
u8 leveled_max
Definition nodedef.h:365
float visual_scale
Definition nodedef.h:343
std::string palette_name
Definition nodedef.h:351
static const u8 CONTENTFEATURES_VERSION
Definition nodedef.h:298
bool is_ground_content
Definition nodedef.h:377
SoundSpec sound_dig
Definition nodedef.h:433
std::vector< std::string > connects_to
Definition nodedef.h:357
SoundSpec sound_footstep
Definition nodedef.h:432
bool floodable
Definition nodedef.h:422
std::vector< video::SColor > * palette
Definition nodedef.h:352
bool sunlight_propagates
Definition nodedef.h:370
bool post_effect_color_shaded
Definition nodedef.h:361
ContentFeatures()
Definition nodedef.cpp:314
bool walkable
Definition nodedef.h:383
std::string liquid_alternative_flowing
Definition nodedef.h:407
u32 damage_per_second
Definition nodedef.h:394
bool liquid_renewable
Definition nodedef.h:417
u8 getAlphaForLegacy() const
Definition nodedef.cpp:433
u8 move_resistance
Definition nodedef.h:398
NodeBox collision_box
Definition nodedef.h:428
void serialize(std::ostream &os, u16 protocol_version) const
Definition nodedef.cpp:440
bool floats
Definition nodedef.h:320
TileDef tiledef_overlay[6]
Definition nodedef.h:346
bool has_after_destruct
Definition nodedef.h:317
u8 leveled
Definition nodedef.h:363
AlphaMode alpha
Definition nodedef.h:348
u8 connect_sides
Definition nodedef.h:356
~ContentFeatures()
Definition nodedef.cpp:319
void setAlphaFromLegacy(u8 legacy_alpha)
Definition nodedef.cpp:417
u8 waving
Definition nodedef.h:354
bool has_on_construct
Definition nodedef.h:315
NodeBox selection_box
Definition nodedef.h:427
u8 liquid_range
Definition nodedef.h:419
bool diggable
Definition nodedef.h:387
std::string mesh
Definition nodedef.h:338
int getGroup(const std::string &group) const
Definition nodedef.h:513
PointabilityType pointable
Definition nodedef.h:385
bool rightclickable
Definition nodedef.h:393
content_t liquid_alternative_flowing_id
Definition nodedef.h:408
enum NodeDrawType drawtype
Definition nodedef.h:337
std::string node_dig_prediction
Definition nodedef.h:396
std::vector< content_t > connects_to_ids
Definition nodedef.h:358
bool light_propagates
Definition mapnode.h:66
bool sunlight_propagates
Definition mapnode.h:67
u8 light_source
Definition mapnode.h:64
bool has_light
Definition mapnode.h:65
content_t getContent() const noexcept
Definition mapnode.h:162
std::vector< aabb3f > connect_back
Definition nodedef.h:99
std::vector< aabb3f > connect_right
Definition nodedef.h:100
std::vector< aabb3f > disconnected
Definition nodedef.h:107
std::vector< aabb3f > disconnected_front
Definition nodedef.h:103
std::vector< aabb3f > connect_top
Definition nodedef.h:95
std::vector< aabb3f > disconnected_sides
Definition nodedef.h:108
std::vector< aabb3f > connect_bottom
Definition nodedef.h:96
std::vector< aabb3f > disconnected_bottom
Definition nodedef.h:102
std::vector< aabb3f > disconnected_right
Definition nodedef.h:106
std::vector< aabb3f > disconnected_back
Definition nodedef.h:105
std::vector< aabb3f > connect_front
Definition nodedef.h:97
std::vector< aabb3f > disconnected_top
Definition nodedef.h:101
std::vector< aabb3f > disconnected_left
Definition nodedef.h:104
std::vector< aabb3f > connect_left
Definition nodedef.h:98
NodeBoxConnected & getConnected()
Definition nodedef.h:129
void serialize(std::ostream &os, u16 protocol_version) const
Definition nodedef.cpp:48
std::shared_ptr< NodeBoxConnected > connected
Definition nodedef.h:123
const NodeBoxConnected & getConnected() const
Definition nodedef.h:134
NodeBox()
Definition nodedef.h:125
void deSerialize(std::istream &is)
Definition nodedef.cpp:108
std::vector< aabb3f > fixed
Definition nodedef.h:116
aabb3f wall_top
Definition nodedef.h:118
enum NodeBoxType type
Definition nodedef.h:113
aabb3f wall_side
Definition nodedef.h:120
aabb3f wall_bottom
Definition nodedef.h:119
void reset()
Definition nodedef.cpp:35
Describes the sound information for playback.
Definition sound.h:20
Definition tileanimation.h:18
enum TileAnimationType type
Definition tileanimation.h:19
u8 scale
Definition nodedef.h:274
TileDef()
Definition nodedef.h:278
void serialize(std::ostream &os, u16 protocol_version) const
Definition nodedef.cpp:185
AlignStyle align_style
Definition nodedef.h:273
std::string name
Definition nodedef.h:265
video::SColor color
The color of the tile.
Definition nodedef.h:272
bool backface_culling
Definition nodedef.h:266
bool has_color
If true, the tile has its own color.
Definition nodedef.h:270
bool tileable_horizontal
Definition nodedef.h:267
bool tileable_vertical
Definition nodedef.h:268
void deSerialize(std::istream &is, NodeDrawType drawtype, u16 protocol_version)
Definition nodedef.cpp:240
struct TileAnimationParams animation
Definition nodedef.h:276
@ TAT_NONE
Definition tileanimation.h:12