refactor: removed noise from class names
This commit is contained in:
		
							
								
								
									
										2
									
								
								Engine
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								Engine
									
									
									
									
									
								
							 Submodule Engine updated: bc1c76d746...c8bb991865
									
								
							@@ -43,7 +43,7 @@ Pong.PongUniverse.ApplyPongClient(universe, clientConfiguration.ServerAddress, c
 | 
				
			|||||||
Pong.PongUniverse.ApplyPongUniverse(universe);
 | 
					Pong.PongUniverse.ApplyPongUniverse(universe);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
universe.InstantiateUniverseObject().SetUniverseObject("Desktop HO")
 | 
					universe.InstantiateUniverseObject().SetUniverseObject("Desktop HO")
 | 
				
			||||||
    .BehaviourController.AddBehaviour<KeyboardInputsBehaviour>();
 | 
					    .BehaviourController.AddBehaviour<KeyboardInputs>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using MonoGameWindow monoGameWindow = new(universe);
 | 
					using MonoGameWindow monoGameWindow = new(universe);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,9 +5,9 @@ using Syntriax.Engine.Systems.Tween;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INetworkEntity,
 | 
					public class Ball : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INetworkEntity,
 | 
				
			||||||
    IPacketListenerClient<BallBehaviour.BallUpdatePacket>,
 | 
					    IPacketListenerClient<Ball.BallUpdatePacket>,
 | 
				
			||||||
    IPacketListenerClient<BallBehaviour.BallResetPacket>
 | 
					    IPacketListenerClient<Ball.BallResetPacket>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public float Speed { get; set; } = 500f;
 | 
					    public float Speed { get; set; } = 500f;
 | 
				
			||||||
    public float SpeedUpMultiplier { get; set; } = .025f;
 | 
					    public float SpeedUpMultiplier { get; set; } = .025f;
 | 
				
			||||||
@@ -62,8 +62,8 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe
 | 
				
			|||||||
        networkServer?.SendToAll(new BallUpdatePacket(this));
 | 
					        networkServer?.SendToAll(new BallUpdatePacket(this));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public BallBehaviour() { }
 | 
					    public Ball() { }
 | 
				
			||||||
    public BallBehaviour(float speed) => Speed = speed;
 | 
					    public Ball(float speed) => Speed = speed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void IPacketListenerClient<BallResetPacket>.OnClientPacketArrived(IConnection sender, BallResetPacket packet) => ResetBall();
 | 
					    void IPacketListenerClient<BallResetPacket>.OnClientPacketArrived(IConnection sender, BallResetPacket packet) => ResetBall();
 | 
				
			||||||
    void IPacketListenerClient<BallUpdatePacket>.OnClientPacketArrived(IConnection sender, BallUpdatePacket packet)
 | 
					    void IPacketListenerClient<BallUpdatePacket>.OnClientPacketArrived(IConnection sender, BallUpdatePacket packet)
 | 
				
			||||||
@@ -85,7 +85,7 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe
 | 
				
			|||||||
        public Vector2D Velocity { get; set; } = Vector2D.Zero;
 | 
					        public Vector2D Velocity { get; set; } = Vector2D.Zero;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public BallUpdatePacket() { }
 | 
					        public BallUpdatePacket() { }
 | 
				
			||||||
        public BallUpdatePacket(BallBehaviour ballBehaviour)
 | 
					        public BallUpdatePacket(Ball ballBehaviour)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Position = ballBehaviour.Transform.Position;
 | 
					            Position = ballBehaviour.Transform.Position;
 | 
				
			||||||
            Velocity = ballBehaviour.RigidBody.Velocity;
 | 
					            Velocity = ballBehaviour.RigidBody.Velocity;
 | 
				
			||||||
@@ -8,14 +8,14 @@ namespace Pong.Behaviours;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class CameraController : Behaviour, IFirstFrameUpdate, IUpdate
 | 
					public class CameraController : Behaviour, IFirstFrameUpdate, IUpdate
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private MonoGameCamera2DBehaviour cameraBehaviour = null!;
 | 
					    private MonoGameCamera2D cameraBehaviour = null!;
 | 
				
			||||||
    private IButtonInputs<Keys> buttonInputs = null!;
 | 
					    private IButtonInputs<Keys> buttonInputs = null!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private float defaultZoomLevel = 1f;
 | 
					    private float defaultZoomLevel = 1f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void FirstActiveFrame()
 | 
					    public void FirstActiveFrame()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        cameraBehaviour = BehaviourController.GetRequiredBehaviour<MonoGameCamera2DBehaviour>();
 | 
					        cameraBehaviour = BehaviourController.GetRequiredBehaviour<MonoGameCamera2D>();
 | 
				
			||||||
        buttonInputs = Universe.FindRequiredBehaviour<IButtonInputs<Keys>>();
 | 
					        buttonInputs = Universe.FindRequiredBehaviour<IButtonInputs<Keys>>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        buttonInputs.RegisterOnPress(Keys.F, SwitchToFullScreen);
 | 
					        buttonInputs.RegisterOnPress(Keys.F, SwitchToFullScreen);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@ using Syntriax.Engine.Integration.MonoGame;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CircleBehaviour : Syntriax.Engine.Physics2D.Collider2DCircleBehaviour, IDrawableTriangle
 | 
					public class DrawableColliderCircle : Syntriax.Engine.Physics2D.Collider2DCircle, IDrawableTriangle
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private const float CIRCLE_SEGMENT_COUNT = 32f;
 | 
					    private const float CIRCLE_SEGMENT_COUNT = 32f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -24,6 +24,6 @@ public class CircleBehaviour : Syntriax.Engine.Physics2D.Collider2DCircleBehavio
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public CircleBehaviour(Circle circle) : base(circle) { }
 | 
					    public DrawableColliderCircle(Circle circle) : base(circle) { }
 | 
				
			||||||
    public CircleBehaviour(Circle circle, ColorRGBA color) : base(circle) { Color = color; }
 | 
					    public DrawableColliderCircle(Circle circle, ColorRGBA color) : base(circle) { Color = color; }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -5,7 +5,7 @@ using Syntriax.Engine.Integration.MonoGame;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ShapeBehaviour : Syntriax.Engine.Physics2D.Collider2DShapeBehaviour, IDrawableTriangle
 | 
					public class DrawableColliderShape : Syntriax.Engine.Physics2D.Collider2DShape, IDrawableTriangle
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private readonly IList<Triangle> triangles = [];
 | 
					    private readonly IList<Triangle> triangles = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -21,6 +21,6 @@ public class ShapeBehaviour : Syntriax.Engine.Physics2D.Collider2DShapeBehaviour
 | 
				
			|||||||
            triangleBatch.Draw(triangle, Color);
 | 
					            triangleBatch.Draw(triangle, Color);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ShapeBehaviour(Shape2D shape) : base(shape) { }
 | 
					    public DrawableColliderShape(Shape2D shape) : base(shape) { }
 | 
				
			||||||
    public ShapeBehaviour(Shape2D shape, ColorRGBA color) : base(shape) { Color = color; }
 | 
					    public DrawableColliderShape(Shape2D shape, ColorRGBA color) : base(shape) { Color = color; }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -6,7 +6,7 @@ using Syntriax.Engine.Integration.MonoGame;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class TextBehaviour : Behaviour2D, IDrawableSprite
 | 
					public class Label : Behaviour2D, IDrawableSprite
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public SpriteFont? Font { get; set; } = null;
 | 
					    public SpriteFont? Font { get; set; } = null;
 | 
				
			||||||
    public int Size { get; set; } = 16;
 | 
					    public int Size { get; set; } = 16;
 | 
				
			||||||
@@ -20,6 +20,6 @@ public class TextBehaviour : Behaviour2D, IDrawableSprite
 | 
				
			|||||||
        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.White, Transform.Rotation, Vector2D.One * .5f, Transform.Scale.Magnitude, SpriteEffects.None, 0f);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public TextBehaviour() { }
 | 
					    public Label() { }
 | 
				
			||||||
    public TextBehaviour(SpriteFont font) => Font = font;
 | 
					    public Label(SpriteFont font) => Font = font;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,45 +0,0 @@
 | 
				
			|||||||
using Syntriax.Engine.Core;
 | 
					 | 
				
			||||||
using Syntriax.Engine.Physics2D;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class MovementBallBehaviour : Behaviour2D, IFirstFrameUpdate, IUpdate
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public Vector2D StartDirection { get; private set; } = Vector2D.Zero;
 | 
					 | 
				
			||||||
    public float Speed { get; set; } = 500f;
 | 
					 | 
				
			||||||
    public float SpeedUpMultiplier { get; set; } = .0125f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private IRigidBody2D rigidBody = null!;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void FirstActiveFrame()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        rigidBody = BehaviourController.GetRequiredBehaviour<IRigidBody2D>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        rigidBody.Velocity = StartDirection * Speed;
 | 
					 | 
				
			||||||
        BehaviourController.GetRequiredBehaviour<ICollider2D>().OnCollisionDetected.AddListener(OnCollisionDetected);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void Update()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (rigidBody.Velocity.MagnitudeSquared <= 0.01f)
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Vector2D speedUp = rigidBody.Velocity.Normalized * Universe.Time.DeltaTime;
 | 
					 | 
				
			||||||
        rigidBody.Velocity += speedUp * SpeedUpMultiplier;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void OnCollisionDetected(ICollider2D collider2D, CollisionDetectionInformation information)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (Syntriax.Engine.Core.Math.Abs(information.Normal.Dot(Vector2D.Right)) > .25)
 | 
					 | 
				
			||||||
            rigidBody.Velocity = information.Detector.Transform.Position.FromTo(information.Detected.Transform.Position).Normalized * rigidBody.Velocity.Magnitude;
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            rigidBody.Velocity = rigidBody.Velocity.Reflect(information.Normal);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public MovementBallBehaviour() { }
 | 
					 | 
				
			||||||
    public MovementBallBehaviour(Vector2D startDirection, float speed)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        StartDirection = Vector2D.Normalize(startDirection);
 | 
					 | 
				
			||||||
        Speed = speed;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -10,9 +10,9 @@ using Syntriax.Engine.Systems.Tween;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Speed) : Behaviour2D,
 | 
					public class Paddle(Keys Up, Keys Down, float High, float Low, float Speed) : Behaviour2D,
 | 
				
			||||||
    IFirstFrameUpdate, IPhysicsIteration, IPostPhysicsUpdate,
 | 
					    IFirstFrameUpdate, IPhysicsIteration, IPostPhysicsUpdate,
 | 
				
			||||||
    IPacketListenerServer<PaddleBehaviour.PaddleKeyStatePacket>, IPacketListenerClient<PaddleBehaviour.PaddleKeyStatePacket>
 | 
					    IPacketListenerServer<Paddle.PaddleKeyStatePacket>, IPacketListenerClient<Paddle.PaddleKeyStatePacket>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private Keys Up { get; } = Up;
 | 
					    private Keys Up { get; } = Up;
 | 
				
			||||||
    private Keys Down { get; } = Down;
 | 
					    private Keys Down { get; } = Down;
 | 
				
			||||||
@@ -105,7 +105,7 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp
 | 
				
			|||||||
        public bool IsUpPressed { get; set; } = default!;
 | 
					        public bool IsUpPressed { get; set; } = default!;
 | 
				
			||||||
        public bool IsDownPressed { get; set; } = default!;
 | 
					        public bool IsDownPressed { get; set; } = default!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public PaddleKeyStatePacket Set(PaddleBehaviour paddleBehaviour)
 | 
					        public PaddleKeyStatePacket Set(Paddle paddleBehaviour)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            EntityId = paddleBehaviour.Id;
 | 
					            EntityId = paddleBehaviour.Id;
 | 
				
			||||||
            Position = paddleBehaviour.Transform.Position;
 | 
					            Position = paddleBehaviour.Transform.Position;
 | 
				
			||||||
@@ -116,6 +116,6 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public PaddleKeyStatePacket() { }
 | 
					        public PaddleKeyStatePacket() { }
 | 
				
			||||||
        public PaddleKeyStatePacket(PaddleBehaviour paddleBehaviour) => Set(paddleBehaviour);
 | 
					        public PaddleKeyStatePacket(Paddle paddleBehaviour) => Set(paddleBehaviour);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -9,16 +9,16 @@ using Syntriax.Engine.Systems.Input;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate,
 | 
					public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
 | 
				
			||||||
    IPacketListenerServer<PongManagerBehaviour.RequestStartPacket>,
 | 
					    IPacketListenerServer<PongManager.RequestStartPacket>,
 | 
				
			||||||
    IPacketListenerClient<PongManagerBehaviour.ScorePacket>
 | 
					    IPacketListenerClient<PongManager.ScorePacket>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public Action<PongManagerBehaviour>? OnReset { get; set; } = null;
 | 
					    public Action<PongManager>? OnReset { get; set; } = null;
 | 
				
			||||||
    public Action<PongManagerBehaviour>? OnFinished { get; set; } = null;
 | 
					    public Action<PongManager>? OnFinished { get; set; } = null;
 | 
				
			||||||
    public Action<PongManagerBehaviour>? OnScoreUpdated { get; set; } = null;
 | 
					    public Action<PongManager>? OnScoreUpdated { get; set; } = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Random random = new();
 | 
					    private Random random = new();
 | 
				
			||||||
    private BallBehaviour ball = null!;
 | 
					    private Ball ball = null!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private INetworkCommunicatorClient? networkClient = null!;
 | 
					    private INetworkCommunicatorClient? networkClient = null!;
 | 
				
			||||||
    private INetworkCommunicatorServer? networkServer = null;
 | 
					    private INetworkCommunicatorServer? networkServer = null;
 | 
				
			||||||
@@ -30,15 +30,15 @@ public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public int WinScore { get; } = 5;
 | 
					    public int WinScore { get; } = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public PongManagerBehaviour() => WinScore = 5;
 | 
					    public PongManager() => WinScore = 5;
 | 
				
			||||||
    public PongManagerBehaviour(int winScore) => WinScore = winScore;
 | 
					    public PongManager(int winScore) => WinScore = winScore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void FirstActiveFrame()
 | 
					    public void FirstActiveFrame()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        IButtonInputs<Keys>? buttonInputs = Universe.FindBehaviour<IButtonInputs<Keys>>();
 | 
					        IButtonInputs<Keys>? buttonInputs = Universe.FindBehaviour<IButtonInputs<Keys>>();
 | 
				
			||||||
        buttonInputs?.RegisterOnRelease(Keys.Space, (_, _1) => networkClient?.SendToServer(new RequestStartPacket()));
 | 
					        buttonInputs?.RegisterOnRelease(Keys.Space, (_, _1) => networkClient?.SendToServer(new RequestStartPacket()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ball = Universe.FindRequiredBehaviour<BallBehaviour>();
 | 
					        ball = Universe.FindRequiredBehaviour<Ball>();
 | 
				
			||||||
        networkClient = Universe.FindBehaviour<INetworkCommunicatorClient>();
 | 
					        networkClient = Universe.FindBehaviour<INetworkCommunicatorClient>();
 | 
				
			||||||
        networkServer = Universe.FindBehaviour<INetworkCommunicatorServer>();
 | 
					        networkServer = Universe.FindBehaviour<INetworkCommunicatorServer>();
 | 
				
			||||||
        logger = Universe.FindBehaviour<ILogger>();
 | 
					        logger = Universe.FindBehaviour<ILogger>();
 | 
				
			||||||
@@ -125,7 +125,7 @@ public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate
 | 
				
			|||||||
        public int Right { get; set; }
 | 
					        public int Right { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public ScorePacket() { }
 | 
					        public ScorePacket() { }
 | 
				
			||||||
        public ScorePacket(PongManagerBehaviour pongManagerBehaviour)
 | 
					        public ScorePacket(PongManager pongManagerBehaviour)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Left = pongManagerBehaviour.ScoreLeft;
 | 
					            Left = pongManagerBehaviour.ScoreLeft;
 | 
				
			||||||
            Right = pongManagerBehaviour.ScoreRight;
 | 
					            Right = pongManagerBehaviour.ScoreRight;
 | 
				
			||||||
@@ -5,18 +5,18 @@ using Syntriax.Engine.Integration.MonoGame;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
 | 
					public class ScoreLabel(bool IsLeft) : Label, IFirstFrameUpdate
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public readonly bool IsLeft = IsLeft;
 | 
					    public readonly bool IsLeft = IsLeft;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private PongManagerBehaviour pongManager = null!;
 | 
					    private PongManager pongManager = null!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void FirstActiveFrame()
 | 
					    public void FirstActiveFrame()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        MonoGameWindow monoGameWindow = Universe.FindRequiredBehaviour<MonoGameWindowContainer>().Window;
 | 
					        MonoGameWindow monoGameWindow = Universe.FindRequiredBehaviour<MonoGameWindowContainer>().Window;
 | 
				
			||||||
        Font = monoGameWindow.Content.Load<SpriteFont>("UbuntuMono");
 | 
					        Font = monoGameWindow.Content.Load<SpriteFont>("UbuntuMono");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pongManager = Universe.FindRequiredBehaviour<PongManagerBehaviour>();
 | 
					        pongManager = Universe.FindRequiredBehaviour<PongManager>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pongManager.OnScoreUpdated += UpdateScores;
 | 
					        pongManager.OnScoreUpdated += UpdateScores;
 | 
				
			||||||
        pongManager.OnReset += UpdateScores;
 | 
					        pongManager.OnReset += UpdateScores;
 | 
				
			||||||
@@ -24,7 +24,7 @@ public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
 | 
				
			|||||||
        UpdateScores(pongManager);
 | 
					        UpdateScores(pongManager);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void UpdateScores(PongManagerBehaviour pongManager)
 | 
					    private void UpdateScores(PongManager pongManager)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (IsLeft)
 | 
					        if (IsLeft)
 | 
				
			||||||
            Text = pongManager.ScoreLeft.ToString();
 | 
					            Text = pongManager.ScoreLeft.ToString();
 | 
				
			||||||
@@ -5,7 +5,7 @@ using Syntriax.Engine.Physics2D;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class WallScoreBehaviour(Action OnCollision) : Behaviour2D, IFirstFrameUpdate
 | 
					public class ScoreWall(Action OnCollision) : Behaviour2D, IFirstFrameUpdate
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private Action OnCollision { get; } = OnCollision;
 | 
					    private Action OnCollision { get; } = OnCollision;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -30,17 +30,17 @@ public static class PongUniverse
 | 
				
			|||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Camera")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Camera")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>()
 | 
					            .BehaviourController.AddBehaviour<Transform2D>()
 | 
				
			||||||
            .BehaviourController.AddBehaviour<CameraController>()
 | 
					            .BehaviourController.AddBehaviour<CameraController>()
 | 
				
			||||||
            .BehaviourController.AddBehaviour<MonoGameCamera2DBehaviour>();
 | 
					            .BehaviourController.AddBehaviour<MonoGameCamera2D>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
					        ////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Score Left")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Score Left")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-250f, 250f), scale: Vector2D.One * .25f)
 | 
					            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-250f, 250f), scale: Vector2D.One * .25f)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<TextScoreBehaviour>(true);
 | 
					            .BehaviourController.AddBehaviour<ScoreLabel>(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Score Right")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Score Right")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f)
 | 
					            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<TextScoreBehaviour>(false);
 | 
					            .BehaviourController.AddBehaviour<ScoreLabel>(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return universe;
 | 
					        return universe;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -63,33 +63,33 @@ public static class PongUniverse
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
					        ////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PongManagerBehaviour pongManager = universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager")
 | 
					        PongManager pongManager = universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<PongManagerBehaviour>(5);
 | 
					            .BehaviourController.AddBehaviour<PongManager>(5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
					        ////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Ball")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Ball")
 | 
				
			||||||
                .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0, 0f), scale: new Vector2D(10f, 10f))
 | 
					                .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0, 0f), scale: new Vector2D(10f, 10f))
 | 
				
			||||||
                .BehaviourController.AddBehaviour<CircleBehaviour>(new Circle(Vector2D.Zero, 1f))
 | 
					                .BehaviourController.AddBehaviour<DrawableColliderCircle>(new Circle(Vector2D.Zero, 1f))
 | 
				
			||||||
                .BehaviourController.AddBehaviour<BallBehaviour>()
 | 
					                .BehaviourController.AddBehaviour<Ball>()
 | 
				
			||||||
                .BehaviourController.AddBehaviour<RigidBody2D>();
 | 
					                .BehaviourController.AddBehaviour<RigidBody2D>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
					        ////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        IUniverseObject leftPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Left Paddle");
 | 
					        IUniverseObject leftPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Left Paddle");
 | 
				
			||||||
        leftPaddle.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-468f, 0f), scale: new Vector2D(15f, 60f))
 | 
					        leftPaddle.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-468f, 0f), scale: new Vector2D(15f, 60f))
 | 
				
			||||||
                .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
					                .BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
 | 
				
			||||||
                .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
					                .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
				
			||||||
        PaddleBehaviour leftPaddleBehaviour = BehaviourFactory.Instantiate<PaddleBehaviour>(Keys.W, Keys.S, 228f, -228f, 400f);
 | 
					        Paddle leftPaddleBehaviour = BehaviourFactory.Instantiate<Paddle>(Keys.W, Keys.S, 228f, -228f, 400f);
 | 
				
			||||||
        leftPaddleBehaviour.Id = "lp";
 | 
					        leftPaddleBehaviour.Id = "lp";
 | 
				
			||||||
        leftPaddle.BehaviourController.AddBehaviour(leftPaddleBehaviour);
 | 
					        leftPaddle.BehaviourController.AddBehaviour(leftPaddleBehaviour);
 | 
				
			||||||
        universe.Register(leftPaddle);
 | 
					        universe.Register(leftPaddle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        IUniverseObject rightPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Right Paddle");
 | 
					        IUniverseObject rightPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Right Paddle");
 | 
				
			||||||
        rightPaddle.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(468f, 0f), scale: new Vector2D(15f, 60f))
 | 
					        rightPaddle.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(468f, 0f), scale: new Vector2D(15f, 60f))
 | 
				
			||||||
                .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
					                .BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
 | 
				
			||||||
                .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
					                .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
				
			||||||
        PaddleBehaviour rightPaddleBehaviour = BehaviourFactory.Instantiate<PaddleBehaviour>(Keys.Up, Keys.Down, 228f, -228f, 400f);
 | 
					        Paddle rightPaddleBehaviour = BehaviourFactory.Instantiate<Paddle>(Keys.Up, Keys.Down, 228f, -228f, 400f);
 | 
				
			||||||
        rightPaddleBehaviour.Id = "rp";
 | 
					        rightPaddleBehaviour.Id = "rp";
 | 
				
			||||||
        rightPaddle.BehaviourController.AddBehaviour(rightPaddleBehaviour);
 | 
					        rightPaddle.BehaviourController.AddBehaviour(rightPaddleBehaviour);
 | 
				
			||||||
        universe.Register(rightPaddle);
 | 
					        universe.Register(rightPaddle);
 | 
				
			||||||
@@ -98,24 +98,24 @@ public static class PongUniverse
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Top")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Wall Top")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0f, 308f), scale: new Vector2D(552f, 20f))
 | 
					            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0f, 308f), scale: new Vector2D(552f, 20f))
 | 
				
			||||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
					            .BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
					            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Bottom")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Wall Bottom")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0f, -308f), scale: new Vector2D(552f, 20f))
 | 
					            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0f, -308f), scale: new Vector2D(552f, 20f))
 | 
				
			||||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
					            .BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
					            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Right")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Wall Right")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(532f, 0f), scale: new Vector2D(20f, 328f))
 | 
					            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(532f, 0f), scale: new Vector2D(20f, 328f))
 | 
				
			||||||
            .BehaviourController.AddBehaviour<WallScoreBehaviour>((Action)pongManager.ScoreToLeft)
 | 
					            .BehaviourController.AddBehaviour<ScoreWall>((Action)pongManager.ScoreToLeft)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
					            .BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
					            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Left")
 | 
					        universe.InstantiateUniverseObject().SetUniverseObject("Wall Left")
 | 
				
			||||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-532f, 0f), scale: new Vector2D(20f, 328f))
 | 
					            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-532f, 0f), scale: new Vector2D(20f, 328f))
 | 
				
			||||||
            .BehaviourController.AddBehaviour<WallScoreBehaviour>((Action)pongManager.ScoreToRight)
 | 
					            .BehaviourController.AddBehaviour<ScoreWall>((Action)pongManager.ScoreToRight)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
					            .BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
 | 
				
			||||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
					            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return universe;
 | 
					        return universe;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user