decisions decisions decisions

This commit is contained in:
2026-06-22 23:15:09 +02:00
parent f2fd147c19
commit 9a6566a178
14 changed files with 174 additions and 156 deletions

View File

@@ -1,7 +1,6 @@
using Godot;
using Slimepire.Core;
using Slimepire.Data;
using Slimepire.Gameplay.Nodules;
using Slimepire.Gameplay.Nodules.Components;
namespace Slimepire.Gameplay;
@@ -11,33 +10,30 @@ public partial class BuildGhost : Node2D
private Tube? _tube;
private readonly Dictionary<Nodule, Tube> _connectedTubes = [];
[Export]
private TubeConnectionArea _tubeConnectionArea = null!;
public override void _Ready()
{
TubeConnectionArea.AreaEntered += TubeConnectionAreaOnAreaEntered;
TubeConnectionArea.AreaExited += TubeConnectionAreaOnAreaExited;
_tubeConnectionArea.ConnectionAdded += ConnectionAdded;
_tubeConnectionArea.ConnectionRemoved += ConnectionRemoved;
}
private void TubeConnectionAreaOnAreaEntered(Area2D area)
private void ConnectionAdded(Nodule nodule)
{
if (area.GetParent() is Nodule nodule)
{
CreateGhostTube(nodule, area.GlobalPosition);
ConnectTubePlayer.Play();
}
CreateGhostTube(nodule, nodule.GlobalPosition);
ConnectTubePlayer.Play();
}
private void TubeConnectionAreaOnAreaExited(Area2D area)
private void ConnectionRemoved(Nodule nodule)
{
if (area.GetParent() is Nodule nodule)
{
var tube = _connectedTubes.GetValueOrDefault(nodule);
if (tube == null)
return;
var tube = _connectedTubes.GetValueOrDefault(nodule);
if (tube == null)
return;
_connectedTubes.Remove(nodule);
tube.QueueFree();
DisconnectTubePlayer.Play();
}
_connectedTubes.Remove(nodule);
tube.QueueFree();
DisconnectTubePlayer.Play();
}
private void CreateGhostTube(Nodule connectedNodule, Vector2 pos)
@@ -83,9 +79,9 @@ public partial class BuildGhost : Node2D
var nodule = Instantiator.Instantiate<Nodule>();
nodule.Position = Position;
nodule.NoduleResource = GD.Load<NoduleResource>(
GameResources.SimpleNoduleTres.ResourcePath
);
// nodule.NoduleResource = GD.Load<NoduleResource>(
// GameResources.SimpleNoduleTres.ResourcePath
// );
GetParent()?.AddChild(nodule);