This commit is contained in:
2026-05-30 01:05:14 +02:00
parent 9c7c414bc9
commit f2b3989910
19 changed files with 266 additions and 144 deletions

69
ConnectionArea.cs Normal file
View File

@@ -0,0 +1,69 @@
using Godot;
namespace NodeWar;
[SceneTree]
public partial class ConnectionArea : Area2D
{
[Signal]
public delegate void NoduleEnteredEventHandler(Nodule nodule);
[Signal]
public delegate void NoduleExitedEventHandler(Nodule nodule);
public override void _Ready()
{
AreaEntered += OnAreaEntered;
AreaExited += OnAreaExited;
}
private void OnAreaEntered(Area2D area)
{
switch (area)
{
case Nodule nodule:
HandleNoduleEntered(nodule);
break;
case ConnectionArea connectionArea:
HandleNoduleEntered(connectionArea.GetParent() as Nodule);
break;
}
return;
void HandleNoduleEntered(Nodule newNodule)
{
if (newNodule.BuildMode)
{
return;
}
EmitSignalNoduleEntered(newNodule);
}
}
private void OnAreaExited(Area2D area)
{
switch (area)
{
case Nodule nodule:
HandleNoduleExited(nodule);
break;
case ConnectionArea connectionArea:
HandleNoduleExited(connectionArea.GetParent() as Nodule);
break;
}
return;
void HandleNoduleExited(Nodule newNodule)
{
if (newNodule.BuildMode)
{
return;
}
EmitSignalNoduleExited(newNodule);
}
}
}