private void AddNetworkObject(NetworkId networkID, IMyNetObject obj) { IMyNetObject foundObj; networkObjectLock.AcquireExclusiveUsing(); if (!m_networkIDToObject.TryGetValue(networkID, out foundObj)) { m_networkIDToObject.Add(networkID, obj); m_objectToNetworkID.Add(obj, networkID); var proxyTarget = obj as IMyProxyTarget; if (proxyTarget != null) { Debug.Assert(proxyTarget.Target != null, "IMyProxyTarget.Target is null!"); Debug.Assert(!m_proxyToTarget.ContainsKey(proxyTarget.Target), "Proxy is already added to list!"); if (proxyTarget.Target != null && !m_proxyToTarget.ContainsKey(proxyTarget.Target)) { m_proxyToTarget.Add(proxyTarget.Target, proxyTarget); } } } else { if (obj != null && foundObj != null) { MyLog.Default.WriteLine("Replicated object already exists adding : " + obj.ToString() + " existing : " + foundObj.ToString() + " id : " + networkID.ToString()); } Debug.Fail("Replicated object already exists!"); } networkObjectLock.ReleaseExclusive(); }
private void AddNetworkObject(NetworkId networkID, IMyNetObject obj) { IMyNetObject foundObj; if (!m_networkIDToObject.TryGetValue(networkID, out foundObj)) { m_networkIDToObject.Add(networkID, obj); m_objectToNetworkID.Add(obj, networkID); var proxyTarget = obj as IMyProxyTarget; if (proxyTarget != null) { Debug.Assert(proxyTarget.Target != null, "IMyProxyTarget.Target is null!"); if (proxyTarget.Target != null) { m_proxyToTarget.Add(proxyTarget.Target, proxyTarget); } } } else { if (obj != null && foundObj != null) { MyLog.Default.WriteLine("Replicated object already exists adding : " + obj.ToString() + " existing : " + foundObj.ToString() + " id : " + networkID.ToString()); } Debug.Fail("Replicated object already exists!"); } }