forgot to push for a while, got drag-and-drop mostly working

This commit is contained in:
2024-04-19 01:31:01 -05:00
parent 978690c2c2
commit 885bc5ad6e
25 changed files with 1320 additions and 1 deletions

32
UnassignedCardPanel.cs Normal file
View File

@@ -0,0 +1,32 @@
using Godot;
using System;
public partial class UnassignedCardPanel : PanelContainer
{
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
}
public override bool _CanDropData(Vector2 atPosition, Variant data)
{
return data.As<card>() is not null;
}
public override void _DropData(Vector2 atPosition, Variant data)
{
card c = data.As<card>()
?? throw new Exception("invalid drag data");
var g = this.GetParentOfType<game>()
?? throw new Exception("game instance not found");
if (g.ClaimCard(c.CardId) is card _c)
{
if (!ReferenceEquals(c, _c))
throw new Exception($"card move mismatch");
GetNode<HFlowContainer>("%UnassignedCardContainer").AddChild(c);
}
}
}