Skip to content
Permalink
Browse files
Send to clients node metadata that changed to become empty (#11597)
  • Loading branch information
TurkeyMcMac committed Sep 10, 2021
1 parent 2cefe51 commit 7423c4c11e01edecd8db18b147bab4d2f3eeb471
Showing with 5 additions and 5 deletions.
  1. +3 −3 src/nodemetadata.cpp
  2. +1 −1 src/nodemetadata.h
  3. +1 −1 src/server.cpp
@@ -113,13 +113,13 @@ int NodeMetadata::countNonPrivate() const
*/

void NodeMetadataList::serialize(std::ostream &os, u8 blockver, bool disk,
bool absolute_pos) const
bool absolute_pos, bool include_empty) const
{
/*
Version 0 is a placeholder for "nothing to see here; go away."
*/

u16 count = countNonEmpty();
u16 count = include_empty ? m_data.size() : countNonEmpty();
if (count == 0) {
writeU8(os, 0); // version
return;
@@ -134,7 +134,7 @@ void NodeMetadataList::serialize(std::ostream &os, u8 blockver, bool disk,
i != m_data.end(); ++i) {
v3s16 p = i->first;
NodeMetadata *data = i->second;
if (data->empty())
if (!include_empty && data->empty())
continue;

if (absolute_pos) {
@@ -82,7 +82,7 @@ class NodeMetadataList
~NodeMetadataList();

void serialize(std::ostream &os, u8 blockver, bool disk = true,
bool absolute_pos = false) const;
bool absolute_pos = false, bool include_empty = false) const;
void deSerialize(std::istream &is, IItemDefManager *item_def_mgr,
bool absolute_pos = false);

@@ -2320,7 +2320,7 @@ void Server::sendMetadataChanged(const std::list<v3s16> &meta_updates, float far

// Send the meta changes
std::ostringstream os(std::ios::binary);
meta_updates_list.serialize(os, client->net_proto_version, false, true);
meta_updates_list.serialize(os, client->serialization_version, false, true, true);
std::ostringstream oss(std::ios::binary);
compressZlib(os.str(), oss);

0 comments on commit 7423c4c

Please sign in to comment.