decisions decisions decisions
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user