// Init rabbit from first launch not on editor! // ReSharper disable once InconsistentNaming // ReSharper disable once UnusedMember.Local private void ReadStartUpSettings() { try { string[] args = Environment.GetCommandLineArgs(); string amqpBase64 = args[1]; string amqpJson = Base64Decode(amqpBase64); _logger.Info(amqpJson); //currently it's somewhat the only way to debug client Rabbitmq rabbitmq = amqpJson.JsonDeserialize <Rabbitmq>(); AMQPClient.Init(rabbitmq); LoaderAdapter.Init(new ApiLoader()); LogManager.GetCurrentClassLogger().Info("RabbitMQ init settings = " + amqpJson); } catch (Exception e) { try { ReadStartUpFile(); } catch (Exception exception) { string message = "Cant read AMQP settings! Trying to get file params"; LogManager.GetCurrentClassLogger().Fatal(message + " stackTrace = " + e.StackTrace); LauncherErrorManager.Instance.ShowFatal(message, exception.StackTrace); } } }
private void LoadConfigurationFromStorage(int projectConfigurationId) { LoaderAnime.StartLoaderAnimation(); LoaderSystems loaderSystems = new LoaderSystems(Contexts.sharedInstance); loaderSystems.Initialize(); ProjectDataListener.OnUpdate = () => loaderSystems.Execute(); LoaderAdapter.LoadProjectConfiguration(projectConfigurationId); }
private void LoadCustomAssetApi(AssetInfo assetInfo, PrefabObject o) { string assetName = assetInfo.AssetName; string assetBundleUri = ProjectData.IsMobileVr() ? o.AndroidBundleResource : o.BundleResource; RequestAsset requestAsset = new RequestAsset(assetName, assetBundleUri, new object[] { o, assetInfo }); requestAsset.OnFinish += responseAsset => { FeedBackText = LanguageManager.Instance.GetTextValue("LOADING") + " " + o.Config.i18n.GetCurrentLocale() + "..."; CountLoadedObjects++; if (LoaderAdapter.OnDownLoadUpdate != null) { LoaderAdapter.OnDownLoadUpdate(CountLoadedObjects / (float)LoadCounter.loadObjectsCounter.PrefabsCount); } RequestTexture requestDownLoad = new RequestTexture(Settings.Instance().ApiHost + o.IconResource, 128, 128, ProjectData.IsMobileVr() ? TextureFormat.ASTC_RGB_6x6 : TextureFormat.DXT1); requestDownLoad.OnFinish += responseUri => { ResponseTexture responseTexture = (ResponseTexture)responseUri; Texture2D texture2D = responseTexture.Texture; Sprite sprite = Sprite.Create(texture2D, new Rect(0, 0, 128, 128), Vector2.zero); CreatePrefabEntity(responseAsset, o, sprite); }; requestDownLoad.OnError += s => { CreatePrefabEntity(responseAsset, o); }; }; }
private void StartLoadFile() { LogManager.GetCurrentClassLogger().Info("File name = " + Settings.Instance().StoragePath); ProjectData.GameMode = GameMode.View; if (LoaderAnime != null) { LoaderAnime.StartLoaderAnimation(); } LoaderAdapter.LoadProjectStructure(0, OnProjectStructureRead); void OnProjectStructureRead(ProjectStructure projectStructure) { ProjectData.ProjectStructure = projectStructure; if (ProjectData.ProjectStructure.ProjectConfigurations.Count == 0) { LauncherErrorManager.Instance.Show( ErrorHelper.GetErrorDescByCode(Errors.ErrorCode.ProjectConfigNullError), null); return; } if (ProjectData.ProjectStructure.ProjectConfigurations.Count == 1) { var projectConfigurationId = ProjectData.ProjectStructure.ProjectConfigurations[0].Id; LoadConfigurationFromStorage(projectConfigurationId); } else { UIChooseProjectConfig.Instance.UpdateDropDown( ProjectData.ProjectStructure.ProjectConfigurations.GetNames(), LoadConfigurationFromStorage); UIChooseProjectConfig.Instance.Show(); LoaderAnime.StopLoaderAnimation(); } } }
private void ShowHtml() { string uri = Settings.Instance().WebHost + "/mypad?lang=" + Settings.Instance().Language + "&scene_id=" + ProjectData.SceneId; //string uri = "http://192.168.33.91:8080" + "/mypad?lang=" + Settings.Instance().Language; Browser.LoadURL(uri, true); Browser.RegisterFunction("spawnObject", args => { var logger = LogManager.GetCurrentClassLogger(); string objectString = args[0].AsJSON; PrefabObject prefabObject = objectString.JsonDeserialize <PrefabObject>(); ObjectDto existedObject = ProjectData.ProjectStructure.Scenes.GetProjectScene(ProjectData.SceneId) .SceneObjects.Find(p => p.ObjectId == prefabObject.Id); Debug.Log("Object to spawn: " + prefabObject.Guid); int objectId = prefabObject.Id; if (GameStateData.GetPrefabGameObject(objectId) != null) { Helper.SetSpawnedObject(objectId); logger.Info("Spawn existed object: " + objectId); } else if (existedObject != null) { logger.Info("Object " + prefabObject.Guid + " is already loading!"); HideMenu(); return; } else { ProjectData.ProjectStructure.Objects.Add(prefabObject); var po = new List <PrefabObject> { prefabObject }; void OnLoadObjects() { if (GameStateData.GetPrefabGameObject(objectId) != null && !BrowserWindow.activeSelf) { Helper.SetSpawnedObject(objectId); logger.Info("New object spawned: " + objectId); } ObjectLoader.StopLoaderAnimation(); ProjectData.ObjectsLoaded -= OnLoadObjects; } LoaderAdapter.LoadPrefabObjects(po); ProjectData.ObjectsLoaded += OnLoadObjects; ObjectLoader.StartLoaderAnimation(); } HideMenu(); }); Browser.RegisterFunction("undo", args => { CommandsManager.Undo(); }); Browser.RegisterFunction("redo", args => { CommandsManager.Redo(); }); Browser.RegisterFunction("switchMode", args => { SwitchGameMode(); }); Browser.RegisterFunction("save", args => { Helper.SaveSceneObjects(); }); SetRender(); _htmlLoaded = true; }