43 lines
787 B
C#
43 lines
787 B
C#
using Godot;
|
|
using GodotUtilities;
|
|
|
|
namespace NodeWar;
|
|
|
|
[SceneTree]
|
|
public partial class Root : Node2D
|
|
{
|
|
private Nodule _a;
|
|
private Nodule _b;
|
|
|
|
public void ConnectNodules(Nodule a, Nodule b)
|
|
{
|
|
_a = a;
|
|
_b = b;
|
|
|
|
GlobalPosition = a.GlobalPosition;
|
|
GenerateLinePoints();
|
|
}
|
|
|
|
private void GenerateLinePoints()
|
|
{
|
|
var direction = _b.GlobalPosition - _a.GlobalPosition;
|
|
var sectionLength = direction.Length() / 5;
|
|
var points = new Vector2[5];
|
|
|
|
for (var i = 0; i < 5; i++)
|
|
{
|
|
var randomOffset = new Vector2(MathUtil.RNG.Randf(), MathUtil.RNG.Randf());
|
|
points[i] = i switch
|
|
{
|
|
0 => Vector2.Zero,
|
|
4 => direction,
|
|
_ => (direction.Normalized() + (randomOffset * 0.1f)).Normalized()
|
|
* sectionLength
|
|
* i,
|
|
};
|
|
}
|
|
|
|
_.Line2D.Points = points;
|
|
}
|
|
}
|