cirnogodot/Scripts/Components/Actors/Actor.cs
2025-02-20 18:26:53 +01:00

48 lines
No EOL
1.1 KiB
C#

using System.Collections.Generic;
using Cirno.Scripts;
using Cirno.Scripts.Components.Actors;
using Godot;
public partial class Actor : CharacterBody2D
{
[Export]
public float MovementSpeed { get; private set; }
public Vector2 MovementDirection { get; set; }
public Vector2 FacingDirection { get; set; }
private GameManager _gameManager;
private List<ActorModule> _modules = new();
public override void _Ready()
{
_gameManager = this.GetGameManager();
var children = GetChildren();
foreach (var child in children)
{
if (child is not ActorModule actorModule) continue;
_modules.Add(actorModule);
actorModule.Init(this);
}
}
public override void _Process(double delta)
{
foreach (var handler in _modules)
{
handler.Update(delta);
}
}
public override void _PhysicsProcess(double delta)
{
foreach (var handler in _modules)
{
handler.PhysicsUpdate(delta);
}
}
}