summaryrefslogtreecommitdiff
path: root/src/nodedef.cpp
diff options
context:
space:
mode:
authorAuke Kok <sofar@foo-projects.org>2017-09-11 14:50:06 +0200
committersfan5 <sfan5@live.de>2017-09-11 20:54:20 +0200
commit5b3fbf9cf75f9f637c666d34e2489fef0cc035d9 (patch)
tree689ae2c108a895f6b2ca3afc826b1da46baf156d /src/nodedef.cpp
parentd10cccee3108b45cf7085ffdbff9b5f2a4045ea7 (diff)
downloadminetest-5b3fbf9cf75f9f637c666d34e2489fef0cc035d9.tar.gz
minetest-5b3fbf9cf75f9f637c666d34e2489fef0cc035d9.tar.bz2
minetest-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.cpp7
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