public void UniverseUpdateBefore(Universe universe, Timestep step) { Universe = universe; if (universe.Server) { if (ServerMainLoop == null) { ServerMainLoop = ServerContext.VillageDirector?.UniverseFacade? .GetPrivateFieldValue <ServerMainLoop>("_serverMainLoop"); } if (SettingsManager.UpdateList.Count > 0) { var blob = BlobAllocator.Blob(true); var settings = blob.FetchBlob("settings"); foreach (var item in SettingsManager.UpdateList) { settings.FetchBlob(item).MergeFrom(SettingsManager.ModsSettings[item]); } using (var ms = new MemoryStream()) { blob.Write(ms); ms.Seek(0, SeekOrigin.Begin); FxCore.MessageAllPlayers(blob.ToString()); } Blob.Deallocate(ref blob); SettingsManager.UpdateList.Clear(); } } }
public void UniverseUpdateAfter() { if (_serverMainLoop == null && ServerContext.VillageDirector != null && ServerContext.VillageDirector.HasDirectorFacade()) { _serverMainLoop = (ServerMainLoop)typeof(DirectorUniverseFacade) .GetField("_serverMainLoop", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?.GetValue(ServerContext.VillageDirector.UniverseFacade); _pipeServer.PushMessage(new PipeClass { Current = KeyEnum.Intergrated }); } }
public void UniverseUpdateBefore(Universe universe, Timestep step) { Universe = universe; if (UserManager == null) { UserManager = new UserManager(); } if (ServerMainLoop == null) { ServerMainLoop = ServerContext.VillageDirector?.UniverseFacade? .GetPrivateFieldValue <ServerMainLoop>("_serverMainLoop"); } }