Plants flash and shovel alt

This commit is contained in:
Rendo 2025-07-23 16:07:55 +05:00
commit e4c25a1ca5
23 changed files with 451 additions and 195 deletions

View file

@ -0,0 +1,51 @@
using Godot;
using Newlon.Components;
public partial class FlashShaderController : Node
{
[Export] public float flashTime = 0.5f;
[Export]
private ShaderMaterial shaderMaterial;
private uint toggleStack = 0;
private Tween flashTween;
public void DamageFlash()
{
Flash();
}
public void Flash(float customFlashTime = 0)
{
if (flashTween != null)
flashTween.Kill();
var time = flashTime;
if (customFlashTime > 0)
time = customFlashTime;
flashTween = CreateTween();
flashTween.TweenMethod(Callable.From<float>(SetBlend), 1.0, 0.0, time);
}
public void Select()
{
toggleStack++;
UpdateSelected();
}
public void Deselect()
{
toggleStack--;
UpdateSelected();
}
private void SetBlend(float blend)
{
shaderMaterial.SetShaderParameter("blend", blend);
}
private void UpdateSelected()
{
if (toggleStack > 0)
{
shaderMaterial.SetShaderParameter("selected", true);
}
else
{
shaderMaterial.SetShaderParameter("selected", false);
}
}
}