From 863c3a8d7a1fc5532a71bac95df57d49448c6b3f Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sat, 26 Jul 2025 12:33:45 +0300 Subject: [PATCH] refactor: moved font loading to label --- Engine | 2 +- Shared/Behaviours/Label.cs | 12 +++++++++--- Shared/Behaviours/ScoreLabel.cs | 11 +---------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Engine b/Engine index ad365dc..37aca44 160000 --- a/Engine +++ b/Engine @@ -1 +1 @@ -Subproject commit ad365dc7225df5df0d8be0729f6c62490c845f77 +Subproject commit 37aca44e45923511500ee1e6a8f39a30810b7f63 diff --git a/Shared/Behaviours/Label.cs b/Shared/Behaviours/Label.cs index ba41582..30b6b34 100644 --- a/Shared/Behaviours/Label.cs +++ b/Shared/Behaviours/Label.cs @@ -1,4 +1,4 @@ -using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Syntriax.Engine.Core; @@ -6,9 +6,10 @@ using Syntriax.Engine.Integration.MonoGame; namespace Pong.Behaviours; -public class Label : Behaviour2D, IDrawableSprite +public class Label : Behaviour2D, IDrawableSprite, ILoadContent { public SpriteFont? Font { get; set; } = null; + public ColorRGBA Color { get; set; } = new ColorRGBA(255, 255, 255, 255); public int Size { get; set; } = 16; public string Text { get; set; } = string.Empty; @@ -17,7 +18,12 @@ public class Label : Behaviour2D, IDrawableSprite if (Font is null) return; - spriteBatch.DrawString(Font, Text, Transform.Position, Color.White, Transform.Rotation, Vector2D.One * .5f, Transform.Scale.Magnitude, SpriteEffects.None, 0f); + spriteBatch.DrawString(Font, Text, Transform.Position, Color.ToPreMultipliedColor(), Transform.Rotation, Vector2D.One * .5f, Transform.Scale.Magnitude, SpriteEffects.None, 0f); + } + + public void LoadContent(ContentManager content) + { + Font ??= content.Load("UbuntuMono"); } public Label() { } diff --git a/Shared/Behaviours/ScoreLabel.cs b/Shared/Behaviours/ScoreLabel.cs index c709c6d..25a1c5a 100644 --- a/Shared/Behaviours/ScoreLabel.cs +++ b/Shared/Behaviours/ScoreLabel.cs @@ -1,12 +1,8 @@ -using Microsoft.Xna.Framework.Content; -using Microsoft.Xna.Framework.Graphics; - using Syntriax.Engine.Core; -using Syntriax.Engine.Integration.MonoGame; namespace Pong.Behaviours; -public class ScoreLabel(bool IsLeft) : Label, IFirstFrameUpdate, ILoadContent +public class ScoreLabel(bool IsLeft) : Label, IFirstFrameUpdate { public readonly bool IsLeft = IsLeft; @@ -22,11 +18,6 @@ public class ScoreLabel(bool IsLeft) : Label, IFirstFrameUpdate, ILoadContent UpdateScores(pongManager); } - public void LoadContent(ContentManager content) - { - Font = content.Load("UbuntuMono"); - } - private void UpdateScores(PongManager pongManager) { if (IsLeft)