using Godot; using System; using Cirno.Scripts; public partial class GameManager : Node2D { private Hud _hud; private PlayerMovement _player; private Node2D _cameraTarget; [Export] public PackedScene PlayerTemplate { get; set; } [Export] public Marker2D PlayerSpawnMarker { get; set; } // Called when the node enters the scene tree for the first time. public override void _Ready() { _hud = GetNode("HUD"); _cameraTarget = GetNode("CameraTarget"); if (PlayerSpawnMarker != null) { SpawnPlayer(); } } // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(double delta) { } public void SpawnPlayer() { if (_player == null) { //_player = this.CreateChild(PlayerTemplate, PlayerSpawnMarker.Position ); _player = PlayerTemplate.Instantiate(); this.CallDeferred("add_child", _player); _player.Transform = this.GlobalTransform; _player.GlobalPosition = PlayerSpawnMarker.Position; _cameraTarget.Reparent(_player, true); _cameraTarget.GlobalPosition = _player.Position; } } }