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; } private InventoryManager _inventoryManager { get; set; } public InventoryManager Inventory => _inventoryManager; private Node2D _bulletsContainer; public Node2D BulletsContainer => _bulletsContainer; // Called when the node enters the scene tree for the first time. public override void _Ready() { _hud = GetNode("HUD"); _cameraTarget = GetNode("CameraTarget"); _inventoryManager = GetNode("InventoryManager"); SpawnBulletsContainer(); 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; } } private void SpawnBulletsContainer() { _bulletsContainer = new Node2D(); _bulletsContainer.Name = "BulletsContainer"; AddChild(_bulletsContainer); } }