particles/Particle.cs
2021-12-27 14:58:33 -05:00

49 lines
1.1 KiB
C#

using Godot;
public class Particle : Node2D
{
private Sprite _spriteNode;
private Label _labelNode;
private ParticleType _type;
private float _health = 0f;
private float _averageSpeed = 1f;
public Vector2 Velocity { get; set; }
public float AverageSpeed { get => _averageSpeed; }
public float Health
{
get => _health;
set
{
_health = Mathf.Clamp(value, 0f, 1f);
_spriteNode.Modulate = Color.FromHsv(_type.Hue, Health, 1);
}
}
public ParticleType Type
{
get => _type;
set
{
_type = value;
_spriteNode.Modulate = Color.FromHsv(_type.Hue, Health, 1);
}
}
public override void _Ready()
{
_spriteNode = GetNode<Sprite>("Sprite");
_labelNode = GetNode<Label>("Label");
}
public void AddAverageSpeedValue(float speed)
{
_averageSpeed = (0.99f * _averageSpeed) + (0.01f * speed);
}
public void SetLabelText(string text)
{
_labelNode.Text = text;
}
}