Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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
                });
            }
        }
Пример #3
0
        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");
            }
        }