diff --git a/Game/Physics2D/PhysicsMaterial2D.cs b/Game/Physics2D/PhysicsMaterial2D.cs new file mode 100644 index 0000000..878691a --- /dev/null +++ b/Game/Physics2D/PhysicsMaterial2D.cs @@ -0,0 +1,5 @@ +using Syntriax.Engine.Physics2D.Abstract; + +namespace Syntriax.Engine.Physics2D; + +public record PhysicsMaterial2D(float Friction, float Restitution) : IPhysicsMaterial2D { } diff --git a/Game/Physics2D/PhysicsMaterial2DDefault.cs b/Game/Physics2D/PhysicsMaterial2DDefault.cs new file mode 100644 index 0000000..61b4367 --- /dev/null +++ b/Game/Physics2D/PhysicsMaterial2DDefault.cs @@ -0,0 +1,6 @@ +namespace Syntriax.Engine.Physics2D; + +public record PhysicsMaterial2DDefault : PhysicsMaterial2D +{ + public PhysicsMaterial2DDefault() : base(.1f, .1f) { } +} diff --git a/Game/Physics2D/RigidBody2D.cs b/Game/Physics2D/RigidBody2D.cs index 454a3ab..ed4fb4a 100644 --- a/Game/Physics2D/RigidBody2D.cs +++ b/Game/Physics2D/RigidBody2D.cs @@ -1,7 +1,5 @@ using System; -using Microsoft.Xna.Framework; - using Syntriax.Engine.Core; using Syntriax.Engine.Core.Abstract; using Syntriax.Engine.Physics2D.Abstract; @@ -13,11 +11,12 @@ public class RigidBody2D : BehaviourOverride, IRigidBody2D public Action? OnTransformAssigned { get => GameObject.OnTransformAssigned; set => GameObject.OnTransformAssigned = value; } - public IPhysicsMaterial2D Material { get; set; } = null!; + public IPhysicsMaterial2D Material { get; set; } = new PhysicsMaterial2DDefault(); public Vector2D Velocity { get; set; } = Vector2D.Zero; public float AngularVelocity { get; set; } = 0f; public float Mass { get; set; } = 0f; + ITransform IAssignableTransform.Transform => Transform;