From 05d7df753ffdd89da3d990dfb01b9c35f26265e5 Mon Sep 17 00:00:00 2001 From: Nicola Date: Mon, 11 May 2026 21:18:25 +0200 Subject: [PATCH] Added movement to DSL nodes to allow repositioning. --- Assets/Images/ArrowDown.png | Bin 0 -> 229 bytes Assets/Images/ArrowDown.png.import | 40 +++++++++++++++++++++++ Assets/Images/ArrowUp.png | Bin 0 -> 226 bytes Assets/Images/ArrowUp.png.import | 40 +++++++++++++++++++++++ Assets/Images/Sources/arrowDown.aseprite | Bin 0 -> 430 bytes Assets/Images/Sources/arrowUp.aseprite | Bin 0 -> 436 bytes Prefabs/DSL/CraftNode.tscn | 18 +++++++++- Prefabs/DSL/ElseNode.tscn | 18 +++++++++- Prefabs/DSL/ExploreNode.tscn | 18 +++++++++- Prefabs/DSL/ForNode.tscn | 18 +++++++++- Prefabs/DSL/HarvestNode.tscn | 18 +++++++++- Prefabs/DSL/IfNode.tscn | 18 +++++++++- Prefabs/DSL/MaintainNode.tscn | 18 +++++++++- Prefabs/DSL/MoveNode.tscn | 18 +++++++++- Prefabs/DSL/SacrificeNode.tscn | 18 +++++++++- Prefabs/DSL/UntilNode.tscn | 18 +++++++++- Prefabs/DSL/WhileNode.tscn | 18 +++++++++- Scripts/UI/Common/UIHandler.cs | 1 - Scripts/UI/DSL/CodingWindow.cs | 9 +++++ Scripts/UI/DSL/NodeDisplay.cs | 13 +++++++- 20 files changed, 288 insertions(+), 13 deletions(-) create mode 100644 Assets/Images/ArrowDown.png create mode 100644 Assets/Images/ArrowDown.png.import create mode 100644 Assets/Images/ArrowUp.png create mode 100644 Assets/Images/ArrowUp.png.import create mode 100644 Assets/Images/Sources/arrowDown.aseprite create mode 100644 Assets/Images/Sources/arrowUp.aseprite diff --git a/Assets/Images/ArrowDown.png b/Assets/Images/ArrowDown.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff9ce354d800b3dafadc6139073025210b4cb61 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}^F3W0Ln2z= zPCLuhV8GLC{c$PlM}?+-+kB*L=ZYN2KkZjK|2pR? z`+!jE6AU~DKean^=7O`hSO$>u38eoWh&c_|VKn zcZNcz2XEsNrS6mvEw|+j`{uDWD9m^!)u6<3JBE8g%LS9^>uV1MJQvxrK40b~^N3{&7#|dAKjNJb zo9F1!kn~h)(JAMMn(uR#YsN4>S}wYWeaVu0j#Y`Rnk)Y+aXBzB2{bV5_}670^ZU3Z ZgGHK&?z?q@Gl1@7@O1TaS?83{1OPz`RDb{g literal 0 HcmV?d00001 diff --git a/Assets/Images/ArrowUp.png.import b/Assets/Images/ArrowUp.png.import new file mode 100644 index 0000000..6602599 --- /dev/null +++ b/Assets/Images/ArrowUp.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djxwweinn5c4i" +path="res://.godot/imported/ArrowUp.png-6639581e2ea32ca76adabf27de0fdb0d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Images/ArrowUp.png" +dest_files=["res://.godot/imported/ArrowUp.png-6639581e2ea32ca76adabf27de0fdb0d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Images/Sources/arrowDown.aseprite b/Assets/Images/Sources/arrowDown.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..b35d029ca522ec78bceda83d1b631e59d06d2c6b GIT binary patch literal 430 zcmZ3-$iVPmDIyADL{+>3Ji=OK?VUJqy^9en*Qq}3)of`pao(;%&q{o63MzO zAe)5&D5?NtC@Gk@YS^S%8uo`--!D|VxghP`;aR^wnaz9}khRaid`g~orhbsOijj?_ zy?u#6LQ{0!!{pij%z{4Ei z|4yai%`Q&9sL6H9#5R2k)X02m$@w&;}R@;MsMZ*?#E{3@bi`NLy8%9jhb uPMKe@(T-;`tHc&piJ5#Ul0EsS4+iMEKh9#6n0YRdRqA$959`H)&Hn&qf@XmL literal 0 HcmV?d00001 diff --git a/Assets/Images/Sources/arrowUp.aseprite b/Assets/Images/Sources/arrowUp.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..3b2a8d9695e32bf7e580f4bcd9c1762a4316846d GIT binary patch literal 436 zcmdnO$iVPmDIyADL{+>3Ji=OK?VUJqy;bmn*Qq}3)of`pao(;%&q{o63MzO zAe)5&D5?NtC@Gk@YS^S%8uo`--!D|VxghP`;aR^wnaz9}khRaid`g~orhbsOijj?_ zy?u#6LQ{0!!{pij`29_9-* zJ10L#51(+@_4U@hTP#c_Y|ZCny)*IRnG^eD!-d!0_SmL1r+s3=O16u$q*zYp=tPP3 z-R6i$Je;U2&DNdfvxciZZ%@P`(~4m2T;aC4TQB=rzx{KNao_(%&%+ + { + int targetIndex = Mathf.Clamp( + editorDisplay.GetIndex() + direction, + 0, + editorWindow.GetChildCount() - 1 + ); + editorWindow.MoveChild(editorDisplay, targetIndex); + }; } public void ClearWindow() diff --git a/Scripts/UI/DSL/NodeDisplay.cs b/Scripts/UI/DSL/NodeDisplay.cs index 20b9fcc..8768e16 100644 --- a/Scripts/UI/DSL/NodeDisplay.cs +++ b/Scripts/UI/DSL/NodeDisplay.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using Godot; - public partial class NodeDisplay : PanelContainer { [Export] PanelContainer editorDisplay; @@ -10,6 +9,8 @@ public partial class NodeDisplay : PanelContainer [Signal] public delegate void OnDeleteNodeEventHandler(); + [Signal] + public delegate void OnMoveNodeEventHandler(int direction); public void SetNode(ProgramNode node) { @@ -217,4 +218,14 @@ public partial class NodeDisplay : PanelContainer string amountString = parts[2].Replace("Amount:", "").Trim(); valueContainer.GetNode("./Amount").Value = int.Parse(amountString); } + + public void MoveNodeUp() + { + EmitSignal(SignalName.OnMoveNode, -1); + } + + public void MoveNodeDown() + { + EmitSignal(SignalName.OnMoveNode, 1); + } }