public async void AddWeatherInfoMenu()
        {
            forecast.spacing = 0.01f;
            if (PluginConfig.Instance.showCityName)
            {
                var Header = BeatSaberUI.CreateText((RectTransform)forecast.transform, PluginConfig.Instance.WeatherFinder.cityName, Vector2.zero);
                Header.color     = Color.cyan;
                Header.fontSize  = 12f;
                Header.alignment = TMPro.TextAlignmentOptions.Center;
                ContentSizeFitter fitter = Header.gameObject.AddComponent <ContentSizeFitter>();
                fitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
                fitter.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;
            }
            WeatherDataRoot weatherInfo = await WeatherFinder.GetWeatherData();

            for (int i = 0; i < weatherInfo.weather.Length; i++)
            {
                WeatherData data        = weatherInfo.weather[i];
                GameObject  forecastObj = new GameObject("ForecastObject");
                forecastObj.transform.SetParent(forecast.transform);
                HorizontalLayoutGroup horiz = forecastObj.AddComponent <HorizontalLayoutGroup>();
                horiz.childAlignment = TextAnchor.MiddleCenter;
                var text = BeatSaberUI.CreateText((RectTransform)forecastObj.transform, data.main + "    -    " + data.description, Vector2.zero);
                text.fontSize  = 0.2f;
                text.alignment = TMPro.TextAlignmentOptions.Center;
                forecastObj.transform.localPosition = Vector3.zero;
            }
        }
Exemple #2
0
        public async void SetRefs()
        {
            hasFullSetRefs = true;
            Plugin.Log.Info("SetRefs " + CurrentScene.name);
            WeatherDataRoot weatherInfo = await WeatherFinder.GetWeatherData();

            MeshRenderer[] mrs = Resources.FindObjectsOfTypeAll <MeshRenderer>();
            //Plugin.Log.Info("SetRefs 1");
            if (CurrentScene.name == Plugin.menu)
            {
                BundleLoader.WeatherPrefab.SetActive(PluginConfig.Instance.enabledInMenu);
            }
            if (CurrentScene.name == Plugin.game)
            {
                BundleLoader.WeatherPrefab.SetActive(PluginConfig.Instance.enabledInGameplay);
            }
            BundleLoader.effects.Clear();
            for (int x = 0; x < weatherInfo.weather.Length; x++)
            {
                WeatherData data = weatherInfo.weather[x];
                EffectModel.EnableEffect(data.main, true);
            }
            for (int i = 0; i < gameObject.transform.childCount; i++)
            {
                //Plugin.Log.Info(i.ToString());
                Transform Child = gameObject.transform.GetChild(i);
                Child.gameObject.SetActive(true);

                EffectDiscriptor efd       = Child.gameObject.GetComponent <EffectDiscriptor>();
                string           NameToUse = EffectModel.GetNameWithoutSceneName(efd.EffectName);
                Child.gameObject.GetComponentsInChildren <AudioSource>().ToList().ForEach((AudioSource s) => { s.volume = PluginConfig.Instance.audioSFXVolume; });
                efd.gameObject.SetActive(true);
                efd.transform.GetChild(0).gameObject.SetActive(true);
                Effect eff = new Effect(efd, Child.gameObject, PluginConfig.Instance.enabledEffects.Any((string str) => { return(str == efd.EffectName); }));

                if (MiscConfig.hasObject(NameToUse))
                {
                    //Plugin.Log.Info("Misc Config has Object! " + NameToUse);
                    MiscConfigObject Object = MiscConfig.ReadObject(NameToUse);
                    eff.showInMenu = Object.showInMenu;
                    eff.showInGame = Object.showInGame;
                }
                else
                {
                    MiscConfig.Add(new MiscConfigObject(NameToUse, eff.showInMenu, eff.showInGame));
                    MiscConfig.Write();
                }
                eff.SetActiveRefs();
                BundleLoader.effects.Add(eff);
                //Plugin.Log.Info("Replacing " + mrs.Length.ToString    ());
                for (int x = 0; x < mrs.Length; x++)
                {
                    MeshRenderer mr = mrs[x];
                    if (mr.material.name.Contains("Note") || mr.gameObject.name.Contains("building") || mr.gameObject.name.Contains("speaker"))
                    {
                        eff.TrySetNoteMateral(mr);
                    }
                    else
                    {
                        continue;
                    }
                }
            }
        }
 async public static void LoadWeatherFinder()
 {
     WeatherDataRoot weatherData = await WeatherFinder.GetWeatherData();
 }