public static void SpawnSceneObjects(int newSceneId, int oldSceneId) { if (newSceneId == oldSceneId) { _logger.Info($"Objects for scene {newSceneId} already loaded"); return; } _logger.Info($"Loading objects for scene {newSceneId}"); ParentManager.Instance.ParentCommand = ParentCommand.None; if (oldSceneId != 0 && LoaderAdapter.LoaderType == typeof(ApiLoader)) { AMQPClient.UnSubscribeLogicChange(oldSceneId); AMQPClient.UnSubscribeCompilationError(oldSceneId); AMQPClient.UnSubscribeObjectChange(oldSceneId); } GameStateData.ClearObjects(); ProjectData.ObjectsAreChanged = false; Data.ServerData.Scene location = ProjectData.ProjectStructure.Scenes.GetProjectScene(newSceneId); LogicInstance logicInstance = new LogicInstance(newSceneId); GameStateData.RefreshLogic(logicInstance, location.AssemblyBytes); CreateSpawnEntities(location.SceneObjects, newSceneId); if (LoaderAdapter.LoaderType == typeof(ApiLoader)) { AMQPClient.SubscribeLogicChange(newSceneId); AMQPClient.SubscribeCompilationError(newSceneId); AMQPClient.SubscribeObjectChange(ProjectData.ProjectId, newSceneId); } }
private static void Main(string[] args) { HostFactory.Run(serviceConfig => { serviceConfig.UseNLog(); serviceConfig.Service <Converter>( LogicInstance => { LogicInstance.ConstructUsing(() => new Converter()); LogicInstance.WhenStarted( execute => execute.Start()); LogicInstance.WhenStopped( execute => execute.Stop()); }); serviceConfig.SetServiceName("Converter"); serviceConfig.SetDisplayName("Reporting data converter"); serviceConfig.SetDescription("Runs stored SQLs in Reporting Web Service."); serviceConfig.StartAutomatically(); serviceConfig.EnableServiceRecovery(x => { x.RestartService(0); x.RestartComputer(5, "Converter service stopped second time!"); x.OnCrashOnly(); x.SetResetPeriod(1); }); }); }
public static void RefreshLogic(LogicInstance logicInstance, string codeCs) { DestroyLogic(); WrappersCollection.Clear(); GameEntity logicEntity = Contexts.sharedInstance.game.CreateEntity(); logicEntity.AddType(null); logicEntity.AddLogic(logicInstance); logicEntity.AddCsCode(codeCs); _logicEntity = logicEntity; LogManager.GetCurrentClassLogger().Info("Logic was refreshed"); }
public static void ReloadSceneObjects() { _logger.Info($"Reloading objects on scene {ProjectData.SceneId}"); ParentManager.Instance.ParentCommand = ParentCommand.None; GameStateData.ClearObjects(); ProjectData.ObjectsAreChanged = false; Data.ServerData.Scene location = ProjectData.ProjectStructure.Scenes.GetProjectScene(ProjectData.SceneId); LogicInstance logicInstance = new LogicInstance(ProjectData.SceneId); GameStateData.RefreshLogic(logicInstance, location.AssemblyBytes); CreateSpawnEntities(location.SceneObjects, ProjectData.SceneId); }
public static void ReloadLocationObjects() { _logger.Info($"Reloading location objects for world location {WorldData.WorldLocationId}"); ParentManager.Instance.ParentCommand = ParentCommand.None; GameStateData.ClearObjects(); WorldData.ObjectsAreChanged = false; WorldLocation location = WorldData.WorldStructure.WorldLocations.GetWorldLocation(WorldData.WorldLocationId); LogicInstance logicInstance = new LogicInstance(WorldData.WorldLocationId); GameStateData.RefreshLogic(logicInstance, WorldData.LogicCode); CreateSpawnEntities(location.WorldLocationObjects, WorldData.WorldLocationId); WorldDataListener.Instance.ReadyToGetNewMessages(); }
public static void LoadLocationObjects(int newWorldLocationId, int oldWorldLocationId) { _logger.Info($"Loading location objects for world location {newWorldLocationId}"); ParentManager.Instance.ParentCommand = ParentCommand.None; GameStateData.ClearObjects(); WorldData.ObjectsAreChanged = false; WorldLocation location = WorldData.WorldStructure.WorldLocations.GetWorldLocation(newWorldLocationId); LogicInstance logicInstance = new LogicInstance(newWorldLocationId); GameStateData.RefreshLogic(logicInstance, WorldData.LogicCode); CreateSpawnEntities(location.WorldLocationObjects, newWorldLocationId); }
public static void SetLogic(LogicInstance logicInstance) { _logicInstance = logicInstance; }