using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SynthySound; using EvilSatellites.Screens; using Microsoft.Xna.Framework; namespace EvilSatellites.Objects { public class Satellite : AbstractGameObject { private ISoundEffect3D Sound; public Satellite(IScreen screen, Vector3 pos) : base(screen) { Sound = Screen.Manager.Sound.Load3D(@"sfx/satellite/1/loop.wav"); Sound.Loop = true; Position = pos; Dimensions = new Vector3(5, 5, 5); Sound.Position = new System.Numerics.Vector3(pos.X, pos.Y, pos.Z); Sound.ConnectToEffect(Screen.Manager.EnvironmentEffect); Activate(); } public override void Activate() { Sound.Play(); } public override void Destroy() { Sound.Destroy(); } override public void Update(GameTime gameTime) { Sound.Position = new System.Numerics.Vector3(Position.X, Position.Y, Position.Z); } public override void OnCollision(IGameObject obj) { Sound.Stop(); } } }