Example #1
0
    static public void MakeSprite(string image, string PATH, string name)
    {
        string str = Path.Combine(PATH, image);

        if (S.I.GetComponent <PowerMonoBehavior>() == null)
        {
            S.I.gameObject.AddComponent <PowerMonoBehavior>();
        }

        if (LuaPowerData.sprites.ContainsKey(name))
        {
            Debug.Log("ERROR: A Sprite exists with this name already.");
            return;
        }
        LuaPowerData.sprites[name] = null;
        S.I.GetComponent <PowerMonoBehavior>().StartCoroutine(
            PowerMonoBehavior.LoadSprite(str, (Texture2D content) => {
            if (content != null)
            {
                content.filterMode         = FilterMode.Point;
                LuaPowerData.sprites[name] = Sprite.Create(content, new Rect(0f, 0f, (float)content.width, (float)content.height), new Vector2(0.5f, 0.5f), 1f);
            }
            else
            {
                Debug.Log("ERROR: MakeSprite didn't find anything in content");
            }
        }));
    }
 static public void PlayCustomMusic(string MusicName)
 {
     if (LuaPowerData.customMusic.ContainsKey(MusicName))
     {
         S.I.StartCoroutine(PowerMonoBehavior.FadeAudioOut(S.I.muCtrl.audioSource, .3f, S.I.muCtrl.audioSource.volume));
         S.I.muCtrl.StopIntroLoop();
         S.I.muCtrl.audioSource.volume = 0;
         S.I.muCtrl.audioSource.time   = LuaPowerData.customMusic[MusicName].StartTime;
         S.I.StartCoroutine(PowerMonoBehavior.FadeAudioIn(S.I.muCtrl.audioSource, 1f, LuaPowerData.customMusic[MusicName].Volume));
         S.I.muCtrl.Play(LuaPowerData.customMusic[MusicName].AudioClip);
         S.I.muCtrl.audioSource.clip.name = MusicName;
         S.I.StartCoroutine(PowerMonoBehavior.CheckAudioLoops(S.I.muCtrl.audioSource, LuaPowerData.customMusic[MusicName].IntroBoundry, LuaPowerData.customMusic[MusicName].EndBoundry));
     }
 }
    static void Prefix(ref ModCtrl __instance, FileInfo[] fileInfo, string modsDir)
    {
        var AllAudioClips = Traverse.Create(S.I.itemMan).Field("allAudioClips").GetValue <Dictionary <String, AudioClip> >();

        FileInfo[] fileInfoArray = fileInfo;
        if (S.I.GetComponent <PowerMonoBehavior>() == null)
        {
            S.I.gameObject.AddComponent <PowerMonoBehavior>();
        }

        for (int index = 0; index < fileInfoArray.Length; ++index)
        {
            FileInfo file = fileInfoArray[index];
            if (!file.Name.Contains(".meta"))
            {
                if (file.Name.Contains(".ogg") || file.Name.Contains(".wav"))
                {
                    AudioType audioType = file.Name.Contains(".ogg") ? AudioType.OGGVORBIS : AudioType.WAV;

                    S.I.GetComponent <PowerMonoBehavior>().StartCoroutine(PowerMonoBehavior.LoadSound(file, audioType, (content) =>
                    {
                        if (content != null)
                        {
                            if (AllAudioClips.ContainsKey(file.Name.Split('.')[0]))
                            {
                                Debug.Log("Game already contains an Audiofile named: " + file.Name.Split('.')[0]);
                            }
                            else
                            {
                                AllAudioClips.Add(file.Name.Split('.')[0], content);
                            }
                        }
                    }));
                }
            }
        }
    }