refactor: removed noise from class names

This commit is contained in:
Syntriax 2025-07-09 22:21:01 +03:00
parent cd66eeeeef
commit 9bf6cabe23
13 changed files with 56 additions and 101 deletions

2
Engine

@ -1 +1 @@
Subproject commit bc1c76d746d01281ecaa3c6937e1990fd1dcdcfc
Subproject commit c8bb991865c8efc99786a9a10767f08ce7b8709c

View File

@ -43,7 +43,7 @@ Pong.PongUniverse.ApplyPongClient(universe, clientConfiguration.ServerAddress, c
Pong.PongUniverse.ApplyPongUniverse(universe);
universe.InstantiateUniverseObject().SetUniverseObject("Desktop HO")
.BehaviourController.AddBehaviour<KeyboardInputsBehaviour>();
.BehaviourController.AddBehaviour<KeyboardInputs>();
using MonoGameWindow monoGameWindow = new(universe);

View File

@ -5,9 +5,9 @@ using Syntriax.Engine.Systems.Tween;
namespace Pong.Behaviours;
public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INetworkEntity,
IPacketListenerClient<BallBehaviour.BallUpdatePacket>,
IPacketListenerClient<BallBehaviour.BallResetPacket>
public class Ball : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INetworkEntity,
IPacketListenerClient<Ball.BallUpdatePacket>,
IPacketListenerClient<Ball.BallResetPacket>
{
public float Speed { get; set; } = 500f;
public float SpeedUpMultiplier { get; set; } = .025f;
@ -62,8 +62,8 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe
networkServer?.SendToAll(new BallUpdatePacket(this));
}
public BallBehaviour() { }
public BallBehaviour(float speed) => Speed = speed;
public Ball() { }
public Ball(float speed) => Speed = speed;
void IPacketListenerClient<BallResetPacket>.OnClientPacketArrived(IConnection sender, BallResetPacket packet) => ResetBall();
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 BallUpdatePacket() { }
public BallUpdatePacket(BallBehaviour ballBehaviour)
public BallUpdatePacket(Ball ballBehaviour)
{
Position = ballBehaviour.Transform.Position;
Velocity = ballBehaviour.RigidBody.Velocity;

View File

@ -8,14 +8,14 @@ namespace Pong.Behaviours;
public class CameraController : Behaviour, IFirstFrameUpdate, IUpdate
{
private MonoGameCamera2DBehaviour cameraBehaviour = null!;
private MonoGameCamera2D cameraBehaviour = null!;
private IButtonInputs<Keys> buttonInputs = null!;
private float defaultZoomLevel = 1f;
public void FirstActiveFrame()
{
cameraBehaviour = BehaviourController.GetRequiredBehaviour<MonoGameCamera2DBehaviour>();
cameraBehaviour = BehaviourController.GetRequiredBehaviour<MonoGameCamera2D>();
buttonInputs = Universe.FindRequiredBehaviour<IButtonInputs<Keys>>();
buttonInputs.RegisterOnPress(Keys.F, SwitchToFullScreen);

View File

@ -3,7 +3,7 @@ using Syntriax.Engine.Integration.MonoGame;
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;
@ -24,6 +24,6 @@ public class CircleBehaviour : Syntriax.Engine.Physics2D.Collider2DCircleBehavio
}
}
public CircleBehaviour(Circle circle) : base(circle) { }
public CircleBehaviour(Circle circle, ColorRGBA color) : base(circle) { Color = color; }
public DrawableColliderCircle(Circle circle) : base(circle) { }
public DrawableColliderCircle(Circle circle, ColorRGBA color) : base(circle) { Color = color; }
}

View File

@ -5,7 +5,7 @@ using Syntriax.Engine.Integration.MonoGame;
namespace Pong.Behaviours;
public class ShapeBehaviour : Syntriax.Engine.Physics2D.Collider2DShapeBehaviour, IDrawableTriangle
public class DrawableColliderShape : Syntriax.Engine.Physics2D.Collider2DShape, IDrawableTriangle
{
private readonly IList<Triangle> triangles = [];
@ -21,6 +21,6 @@ public class ShapeBehaviour : Syntriax.Engine.Physics2D.Collider2DShapeBehaviour
triangleBatch.Draw(triangle, Color);
}
public ShapeBehaviour(Shape2D shape) : base(shape) { }
public ShapeBehaviour(Shape2D shape, ColorRGBA color) : base(shape) { Color = color; }
public DrawableColliderShape(Shape2D shape) : base(shape) { }
public DrawableColliderShape(Shape2D shape, ColorRGBA color) : base(shape) { Color = color; }
}

View File

@ -6,7 +6,7 @@ using Syntriax.Engine.Integration.MonoGame;
namespace Pong.Behaviours;
public class TextBehaviour : Behaviour2D, IDrawableSprite
public class Label : Behaviour2D, IDrawableSprite
{
public SpriteFont? Font { get; set; } = null;
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);
}
public TextBehaviour() { }
public TextBehaviour(SpriteFont font) => Font = font;
public Label() { }
public Label(SpriteFont font) => Font = font;
}

View File

@ -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;
}
}

View File

@ -10,9 +10,9 @@ using Syntriax.Engine.Systems.Tween;
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,
IPacketListenerServer<PaddleBehaviour.PaddleKeyStatePacket>, IPacketListenerClient<PaddleBehaviour.PaddleKeyStatePacket>
IPacketListenerServer<Paddle.PaddleKeyStatePacket>, IPacketListenerClient<Paddle.PaddleKeyStatePacket>
{
private Keys Up { get; } = Up;
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 IsDownPressed { get; set; } = default!;
public PaddleKeyStatePacket Set(PaddleBehaviour paddleBehaviour)
public PaddleKeyStatePacket Set(Paddle paddleBehaviour)
{
EntityId = paddleBehaviour.Id;
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(PaddleBehaviour paddleBehaviour) => Set(paddleBehaviour);
public PaddleKeyStatePacket(Paddle paddleBehaviour) => Set(paddleBehaviour);
}
}

View File

@ -9,16 +9,16 @@ using Syntriax.Engine.Systems.Input;
namespace Pong.Behaviours;
public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate,
IPacketListenerServer<PongManagerBehaviour.RequestStartPacket>,
IPacketListenerClient<PongManagerBehaviour.ScorePacket>
public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
IPacketListenerServer<PongManager.RequestStartPacket>,
IPacketListenerClient<PongManager.ScorePacket>
{
public Action<PongManagerBehaviour>? OnReset { get; set; } = null;
public Action<PongManagerBehaviour>? OnFinished { get; set; } = null;
public Action<PongManagerBehaviour>? OnScoreUpdated { get; set; } = null;
public Action<PongManager>? OnReset { get; set; } = null;
public Action<PongManager>? OnFinished { get; set; } = null;
public Action<PongManager>? OnScoreUpdated { get; set; } = null;
private Random random = new();
private BallBehaviour ball = null!;
private Ball ball = null!;
private INetworkCommunicatorClient? networkClient = null!;
private INetworkCommunicatorServer? networkServer = null;
@ -30,15 +30,15 @@ public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate
public int WinScore { get; } = 5;
public PongManagerBehaviour() => WinScore = 5;
public PongManagerBehaviour(int winScore) => WinScore = winScore;
public PongManager() => WinScore = 5;
public PongManager(int winScore) => WinScore = winScore;
public void FirstActiveFrame()
{
IButtonInputs<Keys>? buttonInputs = Universe.FindBehaviour<IButtonInputs<Keys>>();
buttonInputs?.RegisterOnRelease(Keys.Space, (_, _1) => networkClient?.SendToServer(new RequestStartPacket()));
ball = Universe.FindRequiredBehaviour<BallBehaviour>();
ball = Universe.FindRequiredBehaviour<Ball>();
networkClient = Universe.FindBehaviour<INetworkCommunicatorClient>();
networkServer = Universe.FindBehaviour<INetworkCommunicatorServer>();
logger = Universe.FindBehaviour<ILogger>();
@ -125,7 +125,7 @@ public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate
public int Right { get; set; }
public ScorePacket() { }
public ScorePacket(PongManagerBehaviour pongManagerBehaviour)
public ScorePacket(PongManager pongManagerBehaviour)
{
Left = pongManagerBehaviour.ScoreLeft;
Right = pongManagerBehaviour.ScoreRight;

View File

@ -5,18 +5,18 @@ using Syntriax.Engine.Integration.MonoGame;
namespace Pong.Behaviours;
public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
public class ScoreLabel(bool IsLeft) : Label, IFirstFrameUpdate
{
public readonly bool IsLeft = IsLeft;
private PongManagerBehaviour pongManager = null!;
private PongManager pongManager = null!;
public void FirstActiveFrame()
{
MonoGameWindow monoGameWindow = Universe.FindRequiredBehaviour<MonoGameWindowContainer>().Window;
Font = monoGameWindow.Content.Load<SpriteFont>("UbuntuMono");
pongManager = Universe.FindRequiredBehaviour<PongManagerBehaviour>();
pongManager = Universe.FindRequiredBehaviour<PongManager>();
pongManager.OnScoreUpdated += UpdateScores;
pongManager.OnReset += UpdateScores;
@ -24,7 +24,7 @@ public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
UpdateScores(pongManager);
}
private void UpdateScores(PongManagerBehaviour pongManager)
private void UpdateScores(PongManager pongManager)
{
if (IsLeft)
Text = pongManager.ScoreLeft.ToString();

View File

@ -5,7 +5,7 @@ using Syntriax.Engine.Physics2D;
namespace Pong.Behaviours;
public class WallScoreBehaviour(Action OnCollision) : Behaviour2D, IFirstFrameUpdate
public class ScoreWall(Action OnCollision) : Behaviour2D, IFirstFrameUpdate
{
private Action OnCollision { get; } = OnCollision;

View File

@ -30,17 +30,17 @@ public static class PongUniverse
universe.InstantiateUniverseObject().SetUniverseObject("Camera")
.BehaviourController.AddBehaviour<Transform2D>()
.BehaviourController.AddBehaviour<CameraController>()
.BehaviourController.AddBehaviour<MonoGameCamera2DBehaviour>();
.BehaviourController.AddBehaviour<MonoGameCamera2D>();
////////////////////////////////////////////////////////////////////////////////////
universe.InstantiateUniverseObject().SetUniverseObject("Score Left")
.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")
.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f)
.BehaviourController.AddBehaviour<TextScoreBehaviour>(false);
.BehaviourController.AddBehaviour<ScoreLabel>(false);
return universe;
}
@ -63,33 +63,33 @@ public static class PongUniverse
////////////////////////////////////////////////////////////////////////////////////
PongManagerBehaviour pongManager = universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager")
.BehaviourController.AddBehaviour<PongManagerBehaviour>(5);
PongManager pongManager = universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager")
.BehaviourController.AddBehaviour<PongManager>(5);
////////////////////////////////////////////////////////////////////////////////////
universe.InstantiateUniverseObject().SetUniverseObject("Ball")
.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0, 0f), scale: new Vector2D(10f, 10f))
.BehaviourController.AddBehaviour<CircleBehaviour>(new Circle(Vector2D.Zero, 1f))
.BehaviourController.AddBehaviour<BallBehaviour>()
.BehaviourController.AddBehaviour<DrawableColliderCircle>(new Circle(Vector2D.Zero, 1f))
.BehaviourController.AddBehaviour<Ball>()
.BehaviourController.AddBehaviour<RigidBody2D>();
////////////////////////////////////////////////////////////////////////////////////
IUniverseObject leftPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Left Paddle");
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;
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";
leftPaddle.BehaviourController.AddBehaviour(leftPaddleBehaviour);
universe.Register(leftPaddle);
IUniverseObject rightPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Right Paddle");
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;
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";
rightPaddle.BehaviourController.AddBehaviour(rightPaddleBehaviour);
universe.Register(rightPaddle);
@ -98,24 +98,24 @@ public static class PongUniverse
universe.InstantiateUniverseObject().SetUniverseObject("Wall Top")
.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;
universe.InstantiateUniverseObject().SetUniverseObject("Wall Bottom")
.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;
universe.InstantiateUniverseObject().SetUniverseObject("Wall Right")
.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(532f, 0f), scale: new Vector2D(20f, 328f))
.BehaviourController.AddBehaviour<WallScoreBehaviour>((Action)pongManager.ScoreToLeft)
.BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
.BehaviourController.AddBehaviour<ScoreWall>((Action)pongManager.ScoreToLeft)
.BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
.BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
universe.InstantiateUniverseObject().SetUniverseObject("Wall Left")
.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-532f, 0f), scale: new Vector2D(20f, 328f))
.BehaviourController.AddBehaviour<WallScoreBehaviour>((Action)pongManager.ScoreToRight)
.BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
.BehaviourController.AddBehaviour<ScoreWall>((Action)pongManager.ScoreToRight)
.BehaviourController.AddBehaviour<DrawableColliderShape>(Shape2D.Square)
.BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
return universe;