From 6db427f39bf02e8617eeed2c0f59282e9c6a45b4 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sat, 4 Apr 2026 14:07:37 +0300 Subject: [PATCH] chore: converted PhysicsMaterial2D's to classes and renamed Default to be ReadOnly --- Engine.Physics2D/PhysicsMaterial2D.cs | 6 +++--- Engine.Physics2D/PhysicsMaterial2DDefault.cs | 8 -------- Engine.Physics2D/ReadOnlyPhysicsMaterial2D.cs | 9 +++++++++ Engine.Physics2D/RigidBody2D.cs | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) delete mode 100644 Engine.Physics2D/PhysicsMaterial2DDefault.cs create mode 100644 Engine.Physics2D/ReadOnlyPhysicsMaterial2D.cs diff --git a/Engine.Physics2D/PhysicsMaterial2D.cs b/Engine.Physics2D/PhysicsMaterial2D.cs index a3875ca..bb48c82 100644 --- a/Engine.Physics2D/PhysicsMaterial2D.cs +++ b/Engine.Physics2D/PhysicsMaterial2D.cs @@ -1,7 +1,7 @@ namespace Engine.Physics2D; -public readonly struct PhysicsMaterial2D(float Friction, float Restitution) : IPhysicsMaterial2D +public class PhysicsMaterial2D(float Friction, float Restitution) : IPhysicsMaterial2D { - public readonly float Friction { get; init; } = Friction; - public readonly float Restitution { get; init; } = Restitution; + public float Friction { get; set; } = Friction; + public float Restitution { get; set; } = Restitution; } diff --git a/Engine.Physics2D/PhysicsMaterial2DDefault.cs b/Engine.Physics2D/PhysicsMaterial2DDefault.cs deleted file mode 100644 index 1ed446e..0000000 --- a/Engine.Physics2D/PhysicsMaterial2DDefault.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Engine.Physics2D; - -public readonly struct PhysicsMaterial2DDefault : IPhysicsMaterial2D -{ - public readonly float Friction => .1f; - - public readonly float Restitution => .1f; -} diff --git a/Engine.Physics2D/ReadOnlyPhysicsMaterial2D.cs b/Engine.Physics2D/ReadOnlyPhysicsMaterial2D.cs new file mode 100644 index 0000000..fe3f79c --- /dev/null +++ b/Engine.Physics2D/ReadOnlyPhysicsMaterial2D.cs @@ -0,0 +1,9 @@ +namespace Engine.Physics2D; + +public readonly struct ReadOnlyPhysicsMaterial2D(float Friction, float Restitution) : IPhysicsMaterial2D +{ + public readonly float Friction { get; } = Friction; + public readonly float Restitution { get; } = Restitution; + + public readonly static ReadOnlyPhysicsMaterial2D Default = new(.1f, .1f); +} diff --git a/Engine.Physics2D/RigidBody2D.cs b/Engine.Physics2D/RigidBody2D.cs index 3c5a96e..dbf97be 100644 --- a/Engine.Physics2D/RigidBody2D.cs +++ b/Engine.Physics2D/RigidBody2D.cs @@ -6,7 +6,7 @@ public class RigidBody2D : Behaviour2D, IRigidBody2D { private const float LOWEST_ALLOWED_MASS = 0.00001f; - public IPhysicsMaterial2D Material { get; set; } = new PhysicsMaterial2DDefault(); + public IPhysicsMaterial2D Material { get; set; } = ReadOnlyPhysicsMaterial2D.Default; public Vector2D Velocity { get; set; } = Vector2D.Zero; public float AngularVelocity { get; set; } = 0f;