/// <summary> /// Determines whether a callback is registered to a specific map. /// </summary> /// <param name="mapId">The map identifier.</param> /// <param name="callback">The callback.</param> /// <returns>Boolean value if the callback for the map is registered or not</returns> public bool IsCallbackRegistered(long mapId, IMapEditorCallback callback) { lock (CallbackLockObject) { if (!this.editors.ContainsKey(mapId)) { return(false); } var editor = this.editors[mapId]; return(editor.Callbacks.Contains(callback)); } }
/// <summary> /// Unregisters a callback form a specific map. /// </summary> /// <param name="id">The identifier.</param> /// <param name="callback">The callback.</param> public void UnregisterCallback(long id, IMapEditorCallback callback) { lock (CallbackLockObject) { if (!this.editors.ContainsKey(id)) { return; } var editor = this.editors[id]; editor.Callbacks.Remove(callback); } }
/// <summary> /// Registers a callback to a specific map. /// </summary> /// <param name="id">The identifier.</param> /// <param name="callback">The callback.</param> public void RegisterCallback(long id, IMapEditorCallback callback) { lock (CallbackLockObject) { MapEditor editor; if (this.editors.ContainsKey(id)) { editor = this.editors[id]; } else { editor = new MapEditor(); this.editors.Add(id, editor); } editor.Callbacks.Add(callback); } }