43 lines
764 B
C#
43 lines
764 B
C#
using Godot;
|
|
using NodeWar.Scripts;
|
|
|
|
namespace NodeWar.scripts.components;
|
|
|
|
public partial class SpawnerComponent : Node
|
|
{
|
|
[Export]
|
|
public PackedScene Spawnee;
|
|
|
|
[Export]
|
|
public Faction Faction;
|
|
|
|
[Export]
|
|
public float BuildSpeed = 28;
|
|
|
|
[Export]
|
|
public float BuildProgress = 0;
|
|
|
|
[Export]
|
|
public float MaxBuildProgress = 100;
|
|
|
|
public Vector2 Target { get; set; }
|
|
|
|
public override void _Ready() { }
|
|
|
|
public override void _Process(double delta)
|
|
{
|
|
BuildProgress += BuildSpeed * delta.ToFloat();
|
|
if (BuildProgress >= MaxBuildProgress)
|
|
{
|
|
BuildProgress = 0;
|
|
var pip = Spawnee.Instantiate<Pip>();
|
|
|
|
pip.Faction = Faction;
|
|
pip.Target = Target;
|
|
|
|
GetParent().AddChild(pip);
|
|
pip.GlobalPosition = GetParent<Node2D>().GlobalPosition;
|
|
}
|
|
}
|
|
}
|