public ThemeSelectionForm(ThemeDatabase db, BoardTheme currentBoardTheme, PieceTheme currentPieceTheme) { InitializeComponent(); Icon = Properties.Resources.application_icon; Themes = db; SelectedBoardTheme = currentBoardTheme; SelectedPieceTheme = currentPieceTheme; chessBoard.SetThemes(SelectedBoardTheme, SelectedPieceTheme); confirmButton.DialogResult = DialogResult.OK; cancelButton.DialogResult = DialogResult.Cancel; foreach (var kv in Themes.BoardThemes) { boardThemesListBox.Items.Add(kv.Key); } foreach (var kv in Themes.PieceThemes) { pieceThemesListBox.Items.Add(kv.Key); } boardThemesListBox.SelectedItem = SelectedBoardTheme.Name; pieceThemesListBox.SelectedItem = SelectedPieceTheme.Name; }
// File management static public void Create() { if (m_Instance == null) { m_Instance = new PlayerData(); //if we create the PlayerData, mean it's the very first call, so we use that to init the database //this allow to always init the database at the earlier we can, i.e. the start screen if started normally on device //or the Loadout screen if testing in editor CoroutineHandler.StartStaticCoroutine(CharacterDatabase.LoadDatabase()); CoroutineHandler.StartStaticCoroutine(ThemeDatabase.LoadDatabase()); } m_Instance.saveFile = Application.persistentDataPath + "/save.bin"; if (File.Exists(m_Instance.saveFile)) { // If we have a save, we read it. m_Instance.Read(); } else { // If not we create one with default data. NewSave(); } m_Instance.CheckMissionsCount(); }
static IEnumerator AsyncLoad() { // Android store streams assets in a compressed archive, so different file system. #if !UNITY_EDITOR #if UNITY_ANDROID AssetBundleManager.BaseDownloadingURL = Application.streamingAssetsPath + "/AssetBundles/" + Utility.GetPlatformName() + "/"; #else AssetBundleManager.BaseDownloadingURL = "file://" + Application.streamingAssetsPath + "/AssetBundles/" + Utility.GetPlatformName() + "/"; #endif #else AssetBundleManager.BaseDownloadingURL = "file://" + Application.streamingAssetsPath + "/AssetBundles/" + Utility.GetPlatformName() + "/"; #endif var request = AssetBundleManager.Initialize(); if (request != null) { yield return(CoroutineHandler.StartStaticCoroutine(request)); } // In editor we can directly get all the bundles but in final build, we need to read them from the manifest. #if UNITY_EDITOR string[] bundles; if (AssetBundleManager.SimulateAssetBundleInEditor) { bundles = AssetDatabase.GetAllAssetBundleNames(); } else { bundles = AssetBundleManager.AssetBundleManifestObject.GetAllAssetBundles(); } #else string[] bundles = AssetBundleManager.AssetBundleManifestObject.GetAllAssetBundles(); #endif List <string> characterPackage = new List <string>(); List <string> themePackage = new List <string>(); for (int i = 0; i < bundles.Length; ++i) { if (bundles[i].StartsWith("characters/")) { characterPackage.Add(bundles[i]); } else if (bundles[i].StartsWith("themes/")) { themePackage.Add(bundles[i]); } } yield return(CoroutineHandler.StartStaticCoroutine(CharacterDatabase.LoadDatabase(characterPackage))); yield return(CoroutineHandler.StartStaticCoroutine(ThemeDatabase.LoadDatabase(themePackage))); }
public IEnumerator PopulateTheme() { ThemeData t = null; while (t == null) { t = ThemeDatabase.GetThemeData(PlayerData.instance.themes[PlayerData.instance.usedTheme]); yield return(null); } themeNameDisplay.text = t.themeName; themeIcon.sprite = t.themeIcon; skyMeshFilter.sharedMesh = t.skyMesh; UIGroundFilter.sharedMesh = t.UIGroundMesh; }
public IEnumerator PopulateTheme() { ThemeData t = null; while (t == null) { t = ThemeDatabase.GetThemeData("default"); yield return(null); } //themeNameDisplay.text = t.themeName; //themeIcon.sprite = t.themeIcon; skyMeshFilter.sharedMesh = t.skyMesh; //UIGroundFilter.sharedMesh = t.UIGroundMesh; }
public IEnumerator PopulateTheme() { ThemeData t = null; while (t == null) { t = ThemeDatabase.GetThemeData(PlayerData.instance.themes[PlayerData.instance.usedTheme]); yield return(null); } LocalizationSettings.StringDatabase.GetLocalizedString("UI", t.themeName).Completed += (obj) => themeNameDisplay.text = obj.Result; LocalizationSettings.AssetDatabase.GetLocalizedAssetAsync <Font>("UI Fonts", "LuckiestGuy").Completed += (obj) => themeNameDisplay.font = obj.Result; themeIcon.sprite = t.themeIcon; skyMeshFilter.sharedMesh = t.skyMesh; UIGroundFilter.sharedMesh = t.UIGroundMesh; }
void Start() { PlayerData.Create(); consumableDatabase.Load(); CoroutineHandler.StartStaticCoroutine(CharacterDatabase.LoadDatabase()); CoroutineHandler.StartStaticCoroutine(ThemeDatabase.LoadDatabase()); #if UNITY_ANALYTICS AnalyticsEvent.StoreOpened(StoreType.Soft); #endif #if !UNITY_EDITOR && !DEVELOPMENT_BUILD //Disable cheating on non dev build outside of the editor cheatButton.interactable = false; #else cheatButton.interactable = true; #endif m_OpenList = itemList; itemList.Open(); }
public IEnumerator Begin() { if (!m_Rerun) { firstObstacle = true; m_CameraOriginalPos = Camera.main.transform.position; if (m_TrackSeed != -1) { Random.InitState(m_TrackSeed); } else { Random.InitState((int)System.DateTime.Now.Ticks); } // Since this is not a rerun, init the whole system (on rerun we want to keep the states we had on death) m_CurrentSegmentDistance = k_StartingSegmentDistance; m_TotalWorldDistance = 0.0f; characterController.gameObject.SetActive(true); //Addressables 1.0.1-preview // Spawn the player var op = Addressables.InstantiateAsync(PlayerData.instance.characters[PlayerData.instance.usedCharacter], Vector3.zero, Quaternion.identity); yield return(op); if (op.Result == null || !(op.Result is GameObject)) { Debug.LogWarning(string.Format("Unable to load character {0}.", PlayerData.instance.characters[PlayerData.instance.usedCharacter])); yield break; } Character player = op.Result.GetComponent <Character>(); player.SetupAccesory(PlayerData.instance.usedAccessory); characterController.character = player; characterController.trackManager = this; characterController.Init(); characterController.CheatInvincible(invincible); //Instantiate(CharacterDatabase.GetCharacter(PlayerData.instance.characters[PlayerData.instance.usedCharacter]), Vector3.zero, Quaternion.identity); player.transform.SetParent(characterController.characterCollider.transform, false); Camera.main.transform.SetParent(characterController.transform, true); if (m_IsTutorial) { m_CurrentThemeData = tutorialThemeData; } else { m_CurrentThemeData = ThemeDatabase.GetThemeData(PlayerData.instance.themes[PlayerData.instance.usedTheme]); } m_CurrentZone = 0; m_CurrentZoneDistance = 0; skyMeshFilter.sharedMesh = m_CurrentThemeData.skyMesh; RenderSettings.fogColor = m_CurrentThemeData.fogColor; RenderSettings.fog = true; gameObject.SetActive(true); characterController.gameObject.SetActive(true); characterController.coins = 0; characterController.premium = 0; m_Score = 0; m_ScoreAccum = 0; m_SafeSegementLeft = m_IsTutorial ? 0 : k_StartingSafeSegments; Coin.coinPool = new Pooler(currentTheme.collectiblePrefab, k_StartingCoinPoolSize); PlayerData.instance.StartRunMissions(this); #if UNITY_ANALYTICS AnalyticsEvent.GameStart(new Dictionary <string, object> { { "theme", m_CurrentThemeData.themeName }, { "character", player.characterName }, { "accessory", PlayerData.instance.usedAccessory >= 0 ? player.accessories[PlayerData.instance.usedAccessory].accessoryName : "none" } }); #endif } characterController.Begin(); StartCoroutine(WaitToStart()); isLoaded = true; }
public void Begin() { if (!m_Rerun) { if (m_TrackSeed != -1) { Random.InitState(m_TrackSeed); } else { Random.InitState((int)System.DateTime.Now.Ticks); } // Since this is not a rerun, init the whole system (on rerun we want to keep the states we had on death) m_CurrentSegmentDistance = k_StartingSegmentDistance; m_TotalWorldDistance = 0.0f; characterController.gameObject.SetActive(true); // Spawn the player Character player = Instantiate(CharacterDatabase.GetCharacter(PlayerData.instance.characters[PlayerData.instance.usedCharacter]), Vector3.zero, Quaternion.identity); player.transform.SetParent(characterController.characterCollider.transform, false); Camera.main.transform.SetParent(characterController.transform, true); player.SetupAccesory(PlayerData.instance.usedAccessory); characterController.character = player; characterController.trackManager = this; characterController.Init(); characterController.CheatInvincible(invincible); if (m_IsTutorial) { m_CurrentThemeData = tutorialThemeData; } else { m_CurrentThemeData = ThemeDatabase.GetThemeData(PlayerData.instance.themes[PlayerData.instance.usedTheme]); } m_CurrentZone = 0; m_CurrentZoneDistance = 0; skyMeshFilter.sharedMesh = m_CurrentThemeData.skyMesh; RenderSettings.fogColor = m_CurrentThemeData.fogColor; RenderSettings.fog = true; gameObject.SetActive(true); characterController.gameObject.SetActive(true); characterController.coins = 0; characterController.premium = 0; m_Score = 0; m_ScoreAccum = 0; m_SafeSegementLeft = m_IsTutorial ? 0 : k_StartingSafeSegments; Coin.coinPool = new Pooler(currentTheme.collectiblePrefab, k_StartingCoinPoolSize); PlayerData.instance.StartRunMissions(this); #if UNITY_ANALYTICS AnalyticsEvent.GameStart(new Dictionary <string, object> { { "theme", m_CurrentThemeData.themeName }, { "character", player.characterName }, { "accessory", PlayerData.instance.usedAccessory >= 0 ? player.accessories[PlayerData.instance.usedAccessory].accessoryName : "none" } }); #endif } characterController.Begin(); StartCoroutine(WaitToStart()); }