49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using Mine2d.engine;
|
|
using Mine2d.engine.system.annotations;
|
|
using Mine2d.game.backend.network.packets;
|
|
using Mine2d.game.core;
|
|
|
|
namespace Mine2d.game.backend.interactor;
|
|
|
|
[Interactor]
|
|
public class Audio
|
|
{
|
|
[Interaction(InteractorKind.Client, PacketType.BlockBroken)]
|
|
public static void BlockBroken()
|
|
{
|
|
var ctx = Context.Get();
|
|
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
|
|
};
|
|
}
|
|
}
|