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 }); } }
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; } } } }
/// <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(); }