Added Background Music

This commit is contained in:
MasterGordon 2023-01-04 14:53:51 +01:00
parent 82fddae704
commit 22b5f6e62d
12 changed files with 48 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -5,6 +5,13 @@ public enum Sound
BlockHit, BlockHit,
BlockBreak, BlockBreak,
ItemPickup, ItemPickup,
MusicLoop,
Step0,
Step1,
Step2,
Step3,
Step4,
Step5,
} }
public class AudioPlayer public class AudioPlayer

View File

@ -1,6 +1,7 @@
using Mine2d.engine; using Mine2d.engine;
using Mine2d.engine.system.annotations; using Mine2d.engine.system.annotations;
using Mine2d.game.backend.network.packets; using Mine2d.game.backend.network.packets;
using Mine2d.game.core;
namespace Mine2d.game.backend.interactor; namespace Mine2d.game.backend.interactor;
@ -13,4 +14,35 @@ public class Audio
var ctx = Context.Get(); var ctx = Context.Get();
ctx.GameAudio.Play(Sound.BlockBreak); ctx.GameAudio.Play(Sound.BlockBreak);
} }
[Interaction(InteractorKind.Client, PacketType.Tick)]
public static void Tick()
{
var ctx = Context.Get();
if (ctx.FrontendGameState.NextMusicPlay < DateTime.Now)
{
ctx.GameAudio.Play(Sound.MusicLoop);
ctx.FrontendGameState.NextMusicPlay = DateTime.Now.AddSeconds(130);
}
if (false && ctx.FrontendGameState.NextStepPlay < DateTime.Now && PlayerEntity.GetSelf().PlayerMovementState.CurrentVelocity != Vector2.Zero)
{
ctx.GameAudio.Play(GetRandomStepSound());
ctx.FrontendGameState.NextStepPlay = DateTime.Now.AddSeconds(0.2);
}
}
private static Sound GetRandomStepSound()
{
var sound = new Random().NextInt64(0, 6);
return sound switch
{
0 => Sound.Step0,
1 => Sound.Step1,
2 => Sound.Step2,
3 => Sound.Step3,
4 => Sound.Step4,
5 => Sound.Step5,
_ => Sound.Step0
};
}
} }

View File

@ -12,6 +12,13 @@ public class GameAudio
this.audioPlayer.Register(Sound.BlockBreak, "assets.audio.block_break.wav"); this.audioPlayer.Register(Sound.BlockBreak, "assets.audio.block_break.wav");
this.audioPlayer.Register(Sound.BlockHit, "assets.audio.block_hit_alt.wav"); this.audioPlayer.Register(Sound.BlockHit, "assets.audio.block_hit_alt.wav");
this.audioPlayer.Register(Sound.ItemPickup, "assets.audio.item_pickup.wav"); this.audioPlayer.Register(Sound.ItemPickup, "assets.audio.item_pickup.wav");
this.audioPlayer.Register(Sound.MusicLoop, "assets.audio.music-loop.wav");
this.audioPlayer.Register(Sound.Step0, "assets.audio.step0.wav");
this.audioPlayer.Register(Sound.Step1, "assets.audio.step1.wav");
this.audioPlayer.Register(Sound.Step2, "assets.audio.step2.wav");
this.audioPlayer.Register(Sound.Step3, "assets.audio.step3.wav");
this.audioPlayer.Register(Sound.Step4, "assets.audio.step4.wav");
this.audioPlayer.Register(Sound.Step5, "assets.audio.step5.wav");
} }
public void Play(Sound sound) public void Play(Sound sound)

View File

@ -20,6 +20,8 @@ public class FrontendGameState
public InventoryKind OpenInventory { get; set; } = InventoryKind.None; public InventoryKind OpenInventory { get; set; } = InventoryKind.None;
public InputState InputState { get; set; } = new(); public InputState InputState { get; set; } = new();
public DebugState DebugState { get; set; } = new(); public DebugState DebugState { get; set; } = new();
public DateTime NextMusicPlay { get; set; } = DateTime.MinValue;
public DateTime NextStepPlay { get; set; } = DateTime.MinValue;
} }
public class DebugState { public class DebugState {