public static GameAudioSheets Get()
 {
     if ((Object)_Instance == (Object)null)
     {
         _Instance = Resources.Load <GameAudioSheets>("GameAudioSheets");
     }
     return(_Instance);
 }
 public override void CollectLoaders(List <AsyncLoader> loaders)
 {
     foreach (AudioSheet sheet in GameAudioSheets.Get().sheets)
     {
         loaders.Add(new SingleAudioSheetLoader
         {
             sheet = sheet,
             text  = sheet.asset.text,
             name  = sheet.asset.name
         });
     }
 }
Example #3
0
    public void PlayEvent(GameSoundEvents.Event ev)
    {
        if (AudioDebug.Get().debugGameEventSounds)
        {
            Debug.Log("GameSoundEvent: " + ev.Name);
        }
        List <AnimEvent> events = GameAudioSheets.Get().GetEvents(ev.Name);

        if (events != null)
        {
            Vector2 v = base.transform.GetPosition();
            for (int i = 0; i < events.Count; i++)
            {
                AnimEvent  animEvent  = events[i];
                SoundEvent soundEvent = animEvent as SoundEvent;
                if (soundEvent == null || soundEvent.sound == null)
                {
                    break;
                }
                if (CameraController.Instance.IsAudibleSound(v, soundEvent.sound))
                {
                    if (AudioDebug.Get().debugGameEventSounds)
                    {
                        Debug.Log("GameSound: " + soundEvent.sound);
                    }
                    float value = 0f;
                    if (lastTimePlayed.TryGetValue(soundEvent.soundHash, out value))
                    {
                        if (Time.time - value > soundEvent.minInterval)
                        {
                            SoundEvent.PlayOneShot(soundEvent.sound, v);
                        }
                    }
                    else
                    {
                        SoundEvent.PlayOneShot(soundEvent.sound, v);
                    }
                    lastTimePlayed[soundEvent.soundHash] = Time.time;
                }
            }
        }
    }
Example #4
0
        /// <summary>
        /// Copies the sounds from one animation to another animation.
        /// </summary>
        /// <param name="dstAnim">The destination anim file name.</param>
        /// <param name="srcAnim">The source anim file name.</param>
        public static void CopySoundsToAnim(string dstAnim, string srcAnim)
        {
            if (string.IsNullOrEmpty(dstAnim))
            {
                throw new ArgumentNullException("dstAnim");
            }
            if (string.IsNullOrEmpty(srcAnim))
            {
                throw new ArgumentNullException("srcAnim");
            }
            var anim = Assets.GetAnim(dstAnim);

            if (anim != null)
            {
                var audioSheet = GameAudioSheets.Get();
                var animData   = anim.GetData();
                // For each anim in the kanim, look for existing sound events under the old
                // anim's file name
                for (int i = 0; i < animData.animCount; i++)
                {
                    string animName = animData.GetAnim(i)?.name ?? "";
                    var    events   = audioSheet.GetEvents(srcAnim + "." + animName);
                    if (events != null)
                    {
#if DEBUG
                        LogDebug("Adding {0:D} audio event(s) to anim {1}.{2}".F(events.Count,
                                                                                 dstAnim, animName));
#endif
                        audioSheet.events[dstAnim + "." + animName] = events;
                    }
                }
            }
            else
            {
                LogWarning("Destination animation \"{0}\" not found!".F(dstAnim));
            }
        }
    protected override void OnPrefabInit()
    {
        instance = this;
        if (KPlayerPrefs.HasKey("TemperatureUnit"))
        {
            GameUtil.temperatureUnit = (GameUtil.TemperatureUnit)KPlayerPrefs.GetInt("TemperatureUnit");
        }
        if (KPlayerPrefs.HasKey("MassUnit"))
        {
            GameUtil.massUnit = (GameUtil.MassUnit)KPlayerPrefs.GetInt("MassUnit");
        }
        RecipeManager.DestroyInstance();
        RecipeManager.Get();
        AnimMaterial = AnimMaterialAsset;
        Prefabs      = new List <KPrefabID>(from x in PrefabAssets
                                            where (UnityEngine.Object)x != (UnityEngine.Object) null
                                            select x);
        PrefabsByTag.Clear();
        PrefabsByAdditionalTags.Clear();
        CountableTags.Clear();
        Sprites = new Dictionary <HashedString, Sprite>();
        foreach (Sprite spriteAsset in SpriteAssets)
        {
            if (!((UnityEngine.Object)spriteAsset == (UnityEngine.Object)null))
            {
                HashedString key = new HashedString(spriteAsset.name);
                Sprites.Add(key, spriteAsset);
            }
        }
        TintedSprites = (from x in TintedSpriteAssets
                         where x != null && (UnityEngine.Object)x.sprite != (UnityEngine.Object) null
                         select x).ToList();
        Materials = (from x in MaterialAssets
                     where (UnityEngine.Object)x != (UnityEngine.Object) null
                     select x).ToList();
        Textures = (from x in TextureAssets
                    where (UnityEngine.Object)x != (UnityEngine.Object) null
                    select x).ToList();
        TextureAtlases = (from x in TextureAtlasAssets
                          where (UnityEngine.Object)x != (UnityEngine.Object) null
                          select x).ToList();
        BlockTileDecorInfos = (from x in BlockTileDecorInfoAssets
                               where (UnityEngine.Object)x != (UnityEngine.Object) null
                               select x).ToList();
        Anims = (from x in AnimAssets
                 where (UnityEngine.Object)x != (UnityEngine.Object) null
                 select x).ToList();
        Anims.AddRange(ModLoadedKAnims);
        UIPrefabs = UIPrefabAssets;
        DebugFont = DebugFontAsset;
        AsyncLoadManager <IGlobalAsyncLoader> .Run();

        GameAudioSheets.Get().Initialize();
        SubstanceListHookup();
        BuildingDefs = new List <BuildingDef>();
        foreach (KPrefabID prefabAsset in PrefabAssets)
        {
            if (!((UnityEngine.Object)prefabAsset == (UnityEngine.Object)null))
            {
                AddPrefab(prefabAsset);
            }
        }
        AnimTable.Clear();
        foreach (KAnimFile anim in Anims)
        {
            if ((UnityEngine.Object)anim != (UnityEngine.Object)null)
            {
                HashedString key2 = anim.name;
                AnimTable[key2] = anim;
            }
        }
        CreatePrefabs();
    }