/// <summary> /// Unregisters a mod handler. /// </summary> /// <returns><c>true</c>, if mod handler was unregistered, <c>false</c> otherwise.</returns> /// <param name="modName">Mod Name.</param> public bool UnregisterModHandler(string modName) { var unregistered = false; lock (EventLock) { if (RegisteredRawMods.ContainsKey(modName)) { RegisteredRawMods.Remove(modName); unregistered = true; } if (RegisteredUpdateMods.ContainsKey(modName)) { RegisteredUpdateMods.Remove(modName); UpdateQueue.Remove(modName); unregistered = true; } if (RegisteredFixedUpdateMods.ContainsKey(modName)) { RegisteredFixedUpdateMods.Remove(modName); FixedUpdateQueue.Remove(modName); unregistered = true; } } return(unregistered); }
/// <summary> /// Registers a mod handler function that will be called on every FixedUpdate. /// </summary> /// <param name="modName">Mod Name.</param> /// <param name="handlerFunction">Handler function.</param> public bool RegisterFixedUpdateModHandler(string modName, MessageCallback handlerFunction) { lock (EventLock) { if (RegisteredFixedUpdateMods.ContainsKey(modName)) { Debug.Log($"[LMP]: Failed to register FixedUpdate mod handler for {modName}, mod already registered"); return(false); } Debug.Log($"[LMP]: Registered FixedUpdate mod handler for {modName}"); RegisteredFixedUpdateMods.Add(modName, handlerFunction); FixedUpdateQueue.Add(modName, new ConcurrentQueue <byte[]>()); } return(true); }