diff --git a/scripts/CSharp/Common/CharacterControls/PlayerMovement.cs b/scripts/CSharp/Common/CharacterControls/PlayerMovement.cs index bb95566..d40da0a 100644 --- a/scripts/CSharp/Common/CharacterControls/PlayerMovement.cs +++ b/scripts/CSharp/Common/CharacterControls/PlayerMovement.cs @@ -1,4 +1,5 @@ using Babushka.scripts.CSharp.Common.Services; +using Babushka.scripts.CSharp.GameEntity.Entities; using Godot; namespace Babushka.scripts.CSharp.Common.CharacterControls; @@ -8,6 +9,14 @@ public partial class PlayerMovement : CharacterBody2D [Export] private float _speed = 1000f; [Export] private Timer _stepTimer; + private PositionalEntity _entity; + + public void Initialize(PositionalEntity entity) + { + _entity = entity; + GlobalPosition = entity.position; + } + public override void _Process(double delta) { bool anyActionPressed = false; @@ -76,6 +85,7 @@ public partial class PlayerMovement : CharacterBody2D Velocity = currentVelocity; MoveAndSlide(); + _entity.position = GlobalPosition; } else { diff --git a/scripts/CSharp/GameEntity/Entities/VesnaEntity.cs b/scripts/CSharp/GameEntity/Entities/VesnaEntity.cs index 31c9d55..9a5aa5a 100644 --- a/scripts/CSharp/GameEntity/Entities/VesnaEntity.cs +++ b/scripts/CSharp/GameEntity/Entities/VesnaEntity.cs @@ -12,7 +12,7 @@ public class VesnaEntity : PositionalEntity public override void InstantiateEntityNode(Node2D parent) { var node = (VesnaBehaviour2D) EntityManager.Instance.NodeCreator.InstantiateNode(OWN_TYPE_NAME); - node.player2d.GlobalPosition = position; + node.player2d.Initialize(this); parent.AddChild(node); } } \ No newline at end of file diff --git a/scripts/CSharp/GameEntity/Management/EntityManager.cs b/scripts/CSharp/GameEntity/Management/EntityManager.cs index 3e14b1a..ee54350 100644 --- a/scripts/CSharp/GameEntity/Management/EntityManager.cs +++ b/scripts/CSharp/GameEntity/Management/EntityManager.cs @@ -93,6 +93,7 @@ public partial class EntityManager : Node { TrashEntity.OWN_TYPE_NAME => new TrashEntity(), LoadedScenesEntity.OWN_TYPE_NAME => new LoadedScenesEntity(), + VesnaEntity.OWN_TYPE_NAME => new VesnaEntity(), _ => throw new Exception($"Trying to load unknown entity type: {type}") };