From 78412528091b9bd182b34c907db77e7871327be3 Mon Sep 17 00:00:00 2001 From: jonathan Date: Wed, 4 Feb 2026 20:40:50 +0100 Subject: [PATCH] Make Vesna entity save current position --- .../CSharp/Common/CharacterControls/PlayerMovement.cs | 10 ++++++++++ scripts/CSharp/GameEntity/Entities/VesnaEntity.cs | 2 +- scripts/CSharp/GameEntity/Management/EntityManager.cs | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) 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}") };