2023-10-09 01:22:41 -07:00
|
|
|
using Godot;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace WacK.Things.TunnelObjects
|
|
|
|
|
{
|
|
|
|
|
[Tool]
|
|
|
|
|
public partial class SwipeArrow : Control
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
private ShaderMaterial shader;
|
|
|
|
|
|
|
|
|
|
public override void _EnterTree()
|
|
|
|
|
{
|
|
|
|
|
shader = (ShaderMaterial) Material;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetCW(bool isCW)
|
|
|
|
|
{
|
2023-10-09 23:22:48 -07:00
|
|
|
shader.SetShaderParameter("isCw", isCW);
|
2023-10-09 01:22:41 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetPosSize(int pos, int size)
|
|
|
|
|
{
|
|
|
|
|
var p = Position;
|
|
|
|
|
var s = Size;
|
2023-10-09 18:03:30 -07:00
|
|
|
|
|
|
|
|
if (size <= 59)
|
|
|
|
|
{
|
|
|
|
|
p.X = Constants.BASE_2D_RESOLUTION / 60 * pos + Constants.BASE_2D_RESOLUTION / 120;
|
|
|
|
|
s.Y = Constants.BASE_2D_RESOLUTION / 60 * size - Constants.BASE_2D_RESOLUTION / 60;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
p.X = Constants.BASE_2D_RESOLUTION / 60 * pos;
|
|
|
|
|
s.Y = Constants.BASE_2D_RESOLUTION;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Position = p;
|
2023-10-09 01:22:41 -07:00
|
|
|
Size = s;
|
|
|
|
|
shader.SetShaderParameter("TileMult", s.Y / 64);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|