From b6b974feeb43f7439a80544d1897c17db18b471b Mon Sep 17 00:00:00 2001 From: Syntriax Date: Tue, 23 Jan 2024 12:17:49 +0300 Subject: [PATCH] feat: Default Physic Materials --- Game/Physics2D/PhysicsMaterial2D.cs | 5 +++++ Game/Physics2D/PhysicsMaterial2DDefault.cs | 6 ++++++ Game/Physics2D/RigidBody2D.cs | 5 ++--- 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 Game/Physics2D/PhysicsMaterial2D.cs create mode 100644 Game/Physics2D/PhysicsMaterial2DDefault.cs 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;