public override void InitFromRawDecompressed(byte[] decompressedBytes) { using (var reader = new BinaryReader(new MemoryStream(decompressedBytes))) { this.Resource = Read_AudioMaterialResource(reader); } }
private AudioMaterial Read_AudioMaterialResource(BinaryReader reader) { var result = new AudioMaterial(); result.Version = ReadVersion(reader, 6, 0x14118B2F0); if (result.Version < 5) { result.Absorption0 = reader.ReadSingle(); result.Absorption1 = reader.ReadSingle(); result.Absorption2 = reader.ReadSingle(); } else { result.Absorpotion = ReadVectorF(reader, 4); } result.Scattering = reader.ReadSingle(); if (result.Version >= 2) { result.Name = ReadString(reader); if (result.Version < 6) { result.FootstepGraph = ReadUUID(reader); } } if (result.Version >= 3 && result.Version <= 5) { result.ImpactObjectLightGraph = ReadUUID(reader); result.ImpactObjectMediumGraph = ReadUUID(reader); result.ImpactObjectHeavyGraph = ReadUUID(reader); result.ImpactSurfaceLightGraph = ReadUUID(reader); result.ImpactSurfaceMediumGraph = ReadUUID(reader); result.ImpactSurfaceHeavyGraph = ReadUUID(reader); result.RollGraph = ReadUUID(reader); result.SlideGraph = ReadUUID(reader); } if (result.Version >= 4) { if (result.Version < 5) { result.Transmission0 = reader.ReadSingle(); result.Transmission1 = reader.ReadSingle(); result.Transmission2 = reader.ReadSingle(); } else { result.Transmission = ReadVectorF(reader, 4); } result.BankResource = ReadUUID(reader); result.FootstepEvent = ReadUUID_B(reader); result.ImpactEvent = ReadUUID_B(reader); result.SurfaceEvent = ReadUUID_B(reader); } return(result); }
private void StartTransition(MusicItem item) { AudioMaterial nextTrack = null; if (item != null) { nextTrack = new AudioMaterial(item); nextTrack.MasterVolume = Context.MasterVolume; } _transition = new LinearTransition(nextTrack, Context.MainTrack); _transition.StartTransition((int)Math.Min(Context.TransitionDuration, Context.MainTrack.TimeRemaining.TotalSeconds)); }
/// <summary> /// Sets audio material. /// </summary> /// <param name="material">The material.</param> public void SetAudioMaterial(AudioMaterial material = AudioMaterial.Default) { if (material != m_currentAudioMaterial) { AudioClip clip = GetAudioByName(material); m_currentAudioMaterial = material; if (clip != null && m_audioSource != null) { m_audioSource.clip = clip; } } }
/// <summary> /// Gets audio by name. /// </summary> /// <param name="material">The material.</param> private AudioClip GetAudioByName(AudioMaterial material) { AudioClip clip = null; foreach (var item in AudioList) { if (item.Material == material) { clip = item.Clip; } } return(clip); }
public AbstractTransition(AudioMaterial trackToPlay, AudioMaterial trackToStop) { if (trackToStop == null) { throw new ArgumentNullException("trackToStop"); } TrackToPlay = trackToPlay; TrackToStop = trackToStop; StepNumber = 0; ActuelSetp = 0; TargetVolume = 0; _inPause = false; Finished = false; }
public void LoadTrack(MusicItem item) { var currentVolume = 50; if (Track != null) { currentVolume = Track.Volume; Track.Dispose(); } Track = new AudioMaterial(item); OnRaiseEvent(new TrackChangedEventArgs(item), TrackChangedEvent); GeneratePositionChange(); Track.MasterVolume = Context.MasterVolume; SetVolume(currentVolume); _finished = false; }
public LinearTransition(AudioMaterial trackToPlay, AudioMaterial trackToStop) : base(trackToPlay, trackToStop) { }