Exemple #1
0
        public void LoadCustomEnergyBars(string[] assetBundlePaths)
        {
            EnergyBar defaultEnergyBar = new EnergyBar("", PrefabPool);

            defaultEnergyBar.descriptor             = new EnergyBarDescriptor();
            defaultEnergyBar.descriptor.name        = "Default";
            defaultEnergyBar.descriptor.author      = "Beat Saber";
            defaultEnergyBar.descriptor.description = "The default energy bar.";
            defaultEnergyBar.descriptor.bundleId    = "defaultEnergyBar";
            defaultEnergyBar.descriptor.icon        = ResourceUtilities.LoadSpriteFromResource("CustomEnergyBar.Resources.icon.png");

            AssetBundlePaths.Add("");
            CustomEnergyBars.Add(defaultEnergyBar);

            foreach (string path in assetBundlePaths)
            {
                EnergyBar energyBar = new EnergyBar(path, PrefabPool);
                if (energyBar != null)
                {
                    AssetBundlePaths.Add(path);
                    CustomEnergyBars.Add(energyBar);
                }
            }
        }
        public void InstantiateEnergyBar(EnergyBar energyBar)
        {
            if (_gameEnergyUIPanel.gameObject.activeInHierarchy)
            {
                GameObject prefab = energyBar.energyBarPrefab;
                GameObject go     = UnityEngine.Object.Instantiate(prefab, _gameEnergyUIPanel.transform.position, _gameEnergyUIPanel.transform.rotation, _gameEnergyUIPanel.transform.parent);
                if (_gameEnergyUIPanel.transform.parent.parent.name == "FlyingGameHUD")
                {
                    // 360 and 90 degree levels need the bar to be scaled up
                    go.transform.localScale *= 50;
                }
                AddManagers(go);
                EnergyBarDescriptor descriptor = go.GetComponent <EnergyBarDescriptor>();
                switch (_gameEnergyCounter.energyType)
                {
                case GameplayModifiers.EnergyType.Bar:
                    descriptor.standardBar.gameObject.SetActive(true);
                    break;

                case GameplayModifiers.EnergyType.Battery:
                    int        lives      = _gameEnergyCounter.batteryLives;
                    GameObject batteryBar = descriptor.GetBatteryBar(lives);
                    descriptor.standardBar.gameObject.SetActive(batteryBar == null);
                    batteryBar?.SetActive(true);
                    break;
                }
                foreach (ImageView iv in _gameEnergyUIPanel.GetComponentsInChildren <ImageView>())
                {
                    iv.enabled = false;
                }
                foreach (Canvas ca in _gameEnergyUIPanel.GetComponentsInChildren <Canvas>())
                {
                    ca.enabled = false;
                }
            }
        }
Exemple #3
0
 public void AddAPIEnergyBar(EnergyBar energyBar)
 {
     APIEnergyBars.Add(energyBar);
 }