Fix GetObject/SetObject usage in network replication hierarchy

This commit is contained in:
Wojtek Figat
2024-09-30 14:52:05 +02:00
parent babaa2680f
commit c063afc5bc
2 changed files with 11 additions and 4 deletions

View File

@@ -223,11 +223,17 @@ bool NetworkReplicationGridNode::GetObject(ScriptingObject* obj, NetworkReplicat
{ {
return false; return false;
} }
if (_children[coord].Node->GetObject(obj, result)) return _children[coord].Node->GetObject(obj, result);
}
bool NetworkReplicationGridNode::SetObject(const NetworkReplicationHierarchyObject& value)
{
Int3 coord;
if (!_objectToCell.TryGet(value.Object.Get(), coord))
{ {
return true; return false;
} }
return false; return _children[coord].Node->SetObject(value);
} }
bool NetworkReplicationGridNode::DirtyObject(ScriptingObject* obj) bool NetworkReplicationGridNode::DirtyObject(ScriptingObject* obj)

View File

@@ -206,7 +206,7 @@ API_CLASS(Abstract, Namespace = "FlaxEngine.Networking") class FLAXENGINE_API Ne
/// <param name="obj">The object to get.</param> /// <param name="obj">The object to get.</param>
/// <param name="result">The hierarchy object to retrieve.</param> /// <param name="result">The hierarchy object to retrieve.</param>
/// <returns>True on successful retrieval, otherwise false.</returns> /// <returns>True on successful retrieval, otherwise false.</returns>
API_FUNCTION() virtual bool GetObject(ScriptingObject* obj, NetworkReplicationHierarchyObject& result); API_FUNCTION() virtual bool GetObject(ScriptingObject* obj, API_PARAM(Out) NetworkReplicationHierarchyObject& result);
/// <summary> /// <summary>
/// Sets object properties in the hierarchy. Can be used to modify replication settings at runtime. /// Sets object properties in the hierarchy. Can be used to modify replication settings at runtime.
@@ -264,6 +264,7 @@ public:
void AddObject(NetworkReplicationHierarchyObject obj) override; void AddObject(NetworkReplicationHierarchyObject obj) override;
bool RemoveObject(ScriptingObject* obj) override; bool RemoveObject(ScriptingObject* obj) override;
bool GetObject(ScriptingObject* obj, NetworkReplicationHierarchyObject& result) override; bool GetObject(ScriptingObject* obj, NetworkReplicationHierarchyObject& result) override;
bool SetObject(const NetworkReplicationHierarchyObject& value) override;
bool DirtyObject(ScriptingObject* obj) override; bool DirtyObject(ScriptingObject* obj) override;
void Update(NetworkReplicationHierarchyUpdateResult* result) override; void Update(NetworkReplicationHierarchyUpdateResult* result) override;
}; };