Engine-Pong/Shared/Behaviours/TextScoreBehaviour.cs

35 lines
971 B
C#

using Microsoft.Xna.Framework.Graphics;
using Syntriax.Engine.Core;
using Syntriax.Engine.Integration.MonoGame;
namespace Pong.Behaviours;
public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
{
public readonly bool IsLeft = IsLeft;
private PongManagerBehaviour pongManager = null!;
public void FirstActiveFrame()
{
MonoGameWindow monoGameWindow = Universe.FindRequiredBehaviour<MonoGameWindowContainer>().Window;
Font = monoGameWindow.Content.Load<SpriteFont>("UbuntuMono");
pongManager = Universe.FindRequiredBehaviour<PongManagerBehaviour>();
pongManager.OnScored += UpdateScores;
pongManager.OnReset += UpdateScores;
UpdateScores(pongManager);
}
private void UpdateScores(PongManagerBehaviour pongManager)
{
if (IsLeft)
Text = pongManager.ScoreLeft.ToString();
else
Text = pongManager.ScoreRight.ToString();
}
}