diff options
author | Auke Kok <sofar@foo-projects.org> | 2017-09-11 14:50:06 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2017-09-11 20:54:20 +0200 |
commit | 5b3fbf9cf75f9f637c666d34e2489fef0cc035d9 (patch) | |
tree | 689ae2c108a895f6b2ca3afc826b1da46baf156d /src/nodedef.cpp | |
parent | d10cccee3108b45cf7085ffdbff9b5f2a4045ea7 (diff) | |
download | hax-minetest-server-5b3fbf9cf75f9f637c666d34e2489fef0cc035d9.tar.gz hax-minetest-server-5b3fbf9cf75f9f637c666d34e2489fef0cc035d9.zip |
Implement client node dig prediction
Dig prediction allows clients to remove dug nodes without
waiting for server acknowledgement.
This patch allows mods to override dig prediction,
it can either be turned off or a different "prediction node"
can be selected.
Diffstat (limited to 'src/nodedef.cpp')
-rw-r--r-- | src/nodedef.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp index bc03b71e7..e547e31b1 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -335,6 +335,7 @@ void ContentFeatures::reset() color = video::SColor(0xFFFFFFFF); palette_name = ""; palette = NULL; + node_dig_prediction = "air"; } void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const @@ -422,6 +423,8 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const // legacy writeU8(os, legacy_facedir_simple); writeU8(os, legacy_wallmounted); + + os << serializeString(node_dig_prediction); } void ContentFeatures::correctAlpha(TileDef *tiles, int length) @@ -530,6 +533,10 @@ void ContentFeatures::deSerialize(std::istream &is) // read legacy properties legacy_facedir_simple = readU8(is); legacy_wallmounted = readU8(is); + + try { + node_dig_prediction = deSerializeString(is); + } catch(SerializationError &e) {}; } #ifndef SERVER |