From d07a961de168dd64a4ce98d1e8a133d4df1587d5 Mon Sep 17 00:00:00 2001 From: MacDugRPG <57243055+MacDugRPG@users.noreply.github.com> Date: Sun, 14 May 2023 15:03:18 -0400 Subject: [PATCH] Experimental Code for Location Folders with Tabbed Canvas Test project that contains several variations. Current work in toolset_test_tabbed_merged folder. Contains canvas tab and ColorRect assets for place, WIP. --- .../.import/.gdignore | 1 + ...n.png-487276ed1e3a0c39cad0279d744ee560.md5 | 3 + ....png-487276ed1e3a0c39cad0279d744ee560.stex | Bin 0 -> 1496 bytes .../Cabin-VariableFont_wdth,wght.ttf | Bin 0 -> 153656 bytes .../README.md | 2 + .../default_env.tres | 7 + .../icon.png | Bin 0 -> 3305 bytes .../icon.png.import | 35 +++ .../project.godot | 43 ++++ .../toolset_test/drag_and_drop_demo_final.gd | 9 + .../drag_and_drop_demo_final.tscn | 213 ++++++++++++++++++ .../toolset_test/draggable.tscn | 26 +++ .../toolset_test/draggable_final.gd | 42 ++++ .../toolset_test/source_container.gd | 31 +++ .../toolset_test/target_container_final.gd | 26 +++ .../Control_Manual_MasterScript.gd | 16 ++ .../drag_and_drop_demo_final.tscn | 198 ++++++++++++++++ .../toolset_test_manual/source_container.gd | 31 +++ .../target_container_final.gd | 26 +++ .../Control_Manual_MasterScript.gd | 16 ++ .../toolset_test_tabbed/source_container.gd | 31 +++ .../tabbed_layout_test_2023_0514A.tscn | 33 +++ .../target_container_final.gd | 26 +++ .../AssetsContainer.gd | 33 +++ .../PanelCanvas_Temp.gd | 25 ++ .../draggable_assets.tscn | 23 ++ .../draggable_assets_final.gd | 42 ++++ .../source_container.gd | 31 +++ .../tabbed_merged_test_interface.tscn | 172 ++++++++++++++ .../target_container_final.gd | 26 +++ .../toolset_test_tabbed_merged.gd | 17 ++ 31 files changed, 1184 insertions(+) create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/.gdignore create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/Cabin-VariableFont_wdth,wght.ttf create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/README.md create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/default_env.tres create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png.import create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/project.godot create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.tscn create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable.tscn create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/source_container.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/target_container_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/Control_Manual_MasterScript.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/drag_and_drop_demo_final.tscn create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/source_container.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/target_container_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/Control_Manual_MasterScript.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/source_container.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/tabbed_layout_test_2023_0514A.tscn create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/target_container_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/AssetsContainer.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/PanelCanvas_Temp.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets.tscn create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/source_container.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/tabbed_merged_test_interface.tscn create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/target_container_final.gd create mode 100644 Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/toolset_test_tabbed_merged.gd diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/.gdignore b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/.gdignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/.gdignore @@ -0,0 +1 @@ + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 0000000..5328bc7 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="47313fa4c47a9963fddd764e1ec6e4a8" +dest_md5="26ea799ea0a3da9e753b3ebe822e0570" + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000000000000000000000000000000000000..71f69131f1bad5ac84f9f5fb77b8014d6f855868 GIT binary patch literal 1496 zcmV;}1t8#jQIRc$f~c)tQiw!~w%QUQ6exqX5cknk z0+d35DiDbTDuoE4>Lo>6B7>ey@m$S@5kjOuv{fWhh-@ho&(;2WkwS$K6`&Ldl|Us> zi4+J0k-+z7D#fx5bCy(4v8-W?7^7rF3d=UlIm}g3kr8v2*TVsYG0L(HsaUol6{$#J zzu%jyB(dI3x&O7SY0hEJfqi2jQf;@JF@lOwkr88**UM&PLd-R!kcy0;loU$Knm#_B zpssT<`uctM`T6EPm%A7K9*tSP|39fzMMT%Jh>GrWxv%zI|5WGxr!+(rs;IWI7+u$| ztA8kAM1hddg9IT6zY$?4T#831gq|cT869IJntT)|=01mwu*fe$Smy`ebi^HL+s-xg7chk284pq%~oy)o1W?`nc*zBC=zRt+_#M70<6PFG z6}tee5v>KVd&MI&-P+`h3e5&K^|-6M0EkEyjlf*9+`s@4^=sduefxeS9)KHW zxry#hT9*zlA+*bJIQpy4c0ZhsA-z^ z>#WBV&J`yU4D>m2?bqM)mFeH8@`b;@t{w3iXa*Wm8VHI_5p)5%2vTB$fYL+A6hukG z$!S`fHfaJP8lFT>jWhoL$`1ibnR*S{w;v;KO#Alr>y=RgAjwy$tV9ApAt(LXJMHJB z5CB9fl}q_biX|eNFsP!BlcI21)QL~UK@*6GVkMnytRt$6Bte>2l|jNPUTK0P)Fok~ z<8pRY5;Z~3$-3c)Ct*B>>n8U^6H%qzayG_@T0>t#DTYp>PAI07fWEaTdcB-^=q5<& z*tTB18j2DbF@k^@@+ev1QMg zL5#haz6F3%uU@HhjobH`e9qrvh%#pS={PAR-X0k%SWDWbr)+o y|M)fYRW9dto5g$WGgZ~$_?(~f&V283@;^HqstN$fY}?!b literal 0 HcmV?d00001 diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/Cabin-VariableFont_wdth,wght.ttf b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/Cabin-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..33b932a77a2bcfb6779b2c0f9570237da3df9491 GIT binary patch literal 153656 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 literal 0 HcmV?d00001 diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/README.md b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/README.md new file mode 100644 index 0000000..758293e --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/README.md @@ -0,0 +1,2 @@ +# Intro to Godot drag and drop for Controls + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/default_env.tres b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fbb601c83c81ec8c22b1dba7d1d57c62b323c GIT binary patch literal 3305 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 literal 0 HcmV?d00001 diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png.import b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/project.godot b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/project.godot new file mode 100644 index 0000000..6bd7cef --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/project.godot @@ -0,0 +1,43 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "ColorRect", +"class": "Draggable", +"language": "GDScript", +"path": "res://toolset_test/draggable_final.gd" +}, { +"base": "ColorRect", +"class": "Draggable_Assets", +"language": "GDScript", +"path": "res://toolset_test_tabbed_merged/draggable_assets_final.gd" +} ] +_global_script_class_icons={ +"Draggable": "", +"Draggable_Assets": "" +} + +[application] + +config/name="Experiment_Location_Folders" +run/main_scene="res://toolset_test/drag_and_drop_demo_final.tscn" +config/icon="res://icon.png" + +[gui] + +common/drop_mouse_on_gui_input_disabled=true + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +environment/default_environment="res://default_env.tres" diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.gd new file mode 100644 index 0000000..cd79a52 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.gd @@ -0,0 +1,9 @@ +extends PanelContainer + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + $VLayout/DragAndDropColumns/SourceContainer/FileDialog.popup() + + + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.tscn b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.tscn new file mode 100644 index 0000000..4093fd7 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/drag_and_drop_demo_final.tscn @@ -0,0 +1,213 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://Cabin-VariableFont_wdth,wght.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://toolset_test/source_container.gd" type="Script" id=2] +[ext_resource path="res://toolset_test/target_container_final.gd" type="Script" id=3] +[ext_resource path="res://toolset_test/drag_and_drop_demo_final.gd" type="Script" id=4] + +[sub_resource type="StyleBoxFlat" id=5] +bg_color = Color( 0, 0, 0, 1 ) + +[sub_resource type="DynamicFont" id=4] +size = 32 +font_data = ExtResource( 1 ) + +[sub_resource type="StyleBoxFlat" id=7] +bg_color = Color( 0.760784, 0.760784, 0.760784, 1 ) + +[sub_resource type="StyleBoxFlat" id=6] +bg_color = Color( 1, 1, 1, 1 ) + +[sub_resource type="StyleBoxFlat" id=2] + +[sub_resource type="StyleBoxFlat" id=3] +bg_color = Color( 1, 1, 1, 1 ) + +[node name="DragAndDropDemo" type="PanelContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 4 ) + +[node name="VLayout" type="VBoxContainer" parent="."] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 1017.0 +margin_bottom = 593.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DescriptionHeader" type="HBoxContainer" parent="VLayout"] +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 0, 50 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="M1H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_right = 250.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 50 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu One" type="Label" parent="VLayout/DescriptionHeader/M1H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 1" +align = 1 +valign = 1 + +[node name="M2H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 254.0 +margin_right = 502.0 +margin_bottom = 50.0 +size_flags_horizontal = 3 +custom_styles/panel = SubResource( 5 ) + +[node name="MenuTwo" type="Label" parent="VLayout/DescriptionHeader/M2H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 2" +align = 1 +valign = 1 + +[node name="M3H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 506.0 +margin_right = 756.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 0 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu3Label" type="Label" parent="VLayout/DescriptionHeader/M3H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 3" +align = 1 +valign = 1 + +[node name="M4H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 760.0 +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 0 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu4Label" type="Label" parent="VLayout/DescriptionHeader/M4H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 4" +align = 1 +valign = 1 + +[node name="ToolsOptions" type="HBoxContainer" parent="VLayout"] +margin_top = 54.0 +margin_right = 1010.0 +margin_bottom = 104.0 +rect_min_size = Vector2( 0, 50 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ToolsContainer" type="Panel" parent="VLayout/ToolsOptions"] +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 1010, 50 ) +custom_styles/panel = SubResource( 7 ) +script = ExtResource( 2 ) + +[node name="Padding" type="MarginContainer" parent="VLayout/ToolsOptions/ToolsContainer"] +margin_right = 1005.0 +margin_bottom = 47.0 +rect_min_size = Vector2( 1005, 0 ) + +[node name="Columns" type="HBoxContainer" parent="VLayout/ToolsOptions/ToolsContainer/Padding"] +margin_right = 1005.0 +margin_bottom = 47.0 +rect_min_size = Vector2( 1005, 0 ) + +[node name="DragAndDropColumns" type="HBoxContainer" parent="VLayout"] +margin_top = 108.0 +margin_right = 1010.0 +margin_bottom = 586.0 +size_flags_vertical = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="SourceContainer" type="Panel" parent="VLayout/DragAndDropColumns"] +margin_right = 175.0 +margin_bottom = 478.0 +rect_min_size = Vector2( 175, 0 ) +custom_styles/panel = SubResource( 6 ) + +[node name="FileDialog" type="FileDialog" parent="VLayout/DragAndDropColumns/SourceContainer"] +visible = true +margin_top = 19.0 +margin_right = 356.0 +margin_bottom = 477.0 +window_title = "Open a Directory" +mode = 2 +access = 2 + +[node name="Padding" type="MarginContainer" parent="VLayout/DragAndDropColumns/SourceContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = 30.0 +rect_clip_content = true +custom_constants/margin_right = 20 +custom_constants/margin_top = 20 +custom_constants/margin_left = 20 +custom_constants/margin_bottom = 20 + +[node name="Rows" type="VBoxContainer" parent="VLayout/DragAndDropColumns/SourceContainer/Padding"] +margin_left = 20.0 +margin_top = 20.0 +margin_right = 185.0 +margin_bottom = 458.0 +custom_constants/separation = 15 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CanvasContainer" type="Panel" parent="VLayout/DragAndDropColumns"] +margin_left = 179.0 +margin_right = 831.0 +margin_bottom = 478.0 +size_flags_horizontal = 3 +custom_styles/panel = SubResource( 2 ) +script = ExtResource( 3 ) + +[node name="Padding" type="MarginContainer" parent="VLayout/DragAndDropColumns/CanvasContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 33.0 +margin_top = -5.0 +margin_right = -2.0 +margin_bottom = -1.0 +mouse_filter = 1 +custom_constants/margin_right = 20 +custom_constants/margin_top = 20 +custom_constants/margin_left = 20 +custom_constants/margin_bottom = 20 + +[node name="Rows" type="VBoxContainer" parent="VLayout/DragAndDropColumns/CanvasContainer/Padding"] +margin_left = 20.0 +margin_top = 20.0 +margin_right = 597.0 +margin_bottom = 462.0 +custom_constants/separation = 15 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DetailsContainer" type="Panel" parent="VLayout/DragAndDropColumns"] +margin_left = 835.0 +margin_right = 1010.0 +margin_bottom = 478.0 +rect_min_size = Vector2( 175, 0 ) +custom_styles/panel = SubResource( 3 ) diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable.tscn b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable.tscn new file mode 100644 index 0000000..795e986 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Cabin-VariableFont_wdth,wght.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://toolset_test/draggable_final.gd" type="Script" id=2] + +[sub_resource type="DynamicFont" id=6] +size = 24 +font_data = ExtResource( 1 ) + +[node name="Draggable" type="ColorRect"] +margin_right = 210.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 210, 50 ) +color = Color( 0.752941, 0.305882, 0.305882, 1 ) +script = ExtResource( 2 ) + +[node name="Label" type="Label" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 6 ) +text = "Drag Me" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable_final.gd new file mode 100644 index 0000000..4cf86e4 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/draggable_final.gd @@ -0,0 +1,42 @@ +extends ColorRect +class_name Draggable + +var id: int +var label: String +# set this to true once we've been dropped on our target +var dropped_on_target: bool = false + + +func _ready() -> void: + add_to_group("DRAGGABLE") + $Label.text = label + + +func get_drag_data(_position: Vector2): + print("[Draggable] get_drag_data has run") + if not dropped_on_target: + set_drag_preview(_get_preview_control()) + return self + + +func _on_item_dropped_on_target(draggable): + print("[Draggable] Signal item_dropped_on_target received") + if draggable.get("id") != id: + return + print("[Draggable] Iven been dropped, removing myself from source container") + queue_free() + + +func _get_preview_control() -> Control: + """ + The preview control must not be in the scene tree. You should not free the control, and + you should not keep a reference to the control beyond the duration of the drag. + It will be deleted automatically after the drag has ended. + """ + var preview = ColorRect.new() + preview.rect_size = rect_size + var preview_color = color + preview_color.a = .5 + preview.color = preview_color + preview.set_rotation(.1) # in readians + return preview diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/source_container.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/source_container.gd new file mode 100644 index 0000000..7a08533 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/source_container.gd @@ -0,0 +1,31 @@ +extends Panel + +onready var drop_target = get_node("/root/DragAndDropDemo/VLayout/DragAndDropColumns/CanvasContainer") +onready var draggable_scene: PackedScene = preload("res://toolset_test/draggable.tscn") +onready var draggable_container = $Padding/Columns + +var dragables = [ + {"id": 1, "label": "dialog"}, + {"id": 2, "label": "object"}, + {"id": 3, "label": "encounter"} +] + + +func _ready() -> void: + drop_target.connect("item_dropped_on_target", self, "_on_item_dropped_on_target") + _populate_dragables() + +func _populate_dragables(): + for dragable in dragables: + var drag_item = draggable_scene.instance() + drag_item.id = dragable["id"] + drag_item.label = dragable["label"] + draggable_container.add_child(drag_item) + +func _on_item_dropped_on_target(dropped_item: Draggable) -> void: + for drag_item in draggable_container.get_children(): + drag_item = (drag_item as Draggable) + if drag_item.id == dropped_item.id: + #draggable_container.remove_child(drag_item) + #drag_item.queue_free() + break diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/target_container_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/target_container_final.gd new file mode 100644 index 0000000..5f12d58 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test/target_container_final.gd @@ -0,0 +1,26 @@ +extends Panel + + +signal item_dropped_on_target(draggable) +var draggable: PackedScene = preload("res://toolset_test/draggable.tscn") + +func can_drop_data(position: Vector2, data) -> bool: + var can_drop: bool = data is Node and data.is_in_group("DRAGGABLE") + print("[TargetContainer] can_drop_data has run, returning %s" % can_drop) + return can_drop + +func drop_data(position: Vector2, data) -> void: + print("[TargetContainer] drop_data has run") + print("[TargetContainer] Emiting signal: item_dropped_on_target") + + #DKM TEMP: here we'd open wizard or create new item. + # How should this display when it's finalized? + var draggable_copy: ColorRect = draggable.instance() + draggable_copy.id = data.id + #Instantiate a new version of the specific item in this content capsule + draggable_copy.label = data.label + draggable_copy.dropped_on_target = true # disable further dragging + $Padding/Rows.add_child(draggable_copy) + + emit_signal("item_dropped_on_target", data) + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/Control_Manual_MasterScript.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/Control_Manual_MasterScript.gd new file mode 100644 index 0000000..eafe1fa --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/Control_Manual_MasterScript.gd @@ -0,0 +1,16 @@ +extends PanelContainer + + +# Declare member variables here. Examples: +# var a: int = 2 +# var b: String = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + var outputFolderStr = "Region\n\tLocation\n\t\tSpace\n\t\t\tScene" + "\n\t\tSpace" + $VLayout/HBoxContainer/TabContainer/Structural_Tab/TextEdit.text = outputFolderStr + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta: float) -> void: +# pass diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/drag_and_drop_demo_final.tscn b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/drag_and_drop_demo_final.tscn new file mode 100644 index 0000000..686030d --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/drag_and_drop_demo_final.tscn @@ -0,0 +1,198 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://Cabin-VariableFont_wdth,wght.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://toolset_test/source_container.gd" type="Script" id=2] +[ext_resource path="res://toolset_test/target_container_final.gd" type="Script" id=3] +[ext_resource path="res://toolset_test_manual/Control_Manual_MasterScript.gd" type="Script" id=4] + +[sub_resource type="StyleBoxFlat" id=5] +bg_color = Color( 0, 0, 0, 1 ) + +[sub_resource type="DynamicFont" id=4] +size = 32 +font_data = ExtResource( 1 ) + +[sub_resource type="StyleBoxFlat" id=7] +bg_color = Color( 0.760784, 0.760784, 0.760784, 1 ) + +[sub_resource type="StyleBoxFlat" id=6] +bg_color = Color( 1, 1, 1, 1 ) + +[sub_resource type="StyleBoxFlat" id=2] + +[sub_resource type="StyleBoxFlat" id=3] +bg_color = Color( 1, 1, 1, 1 ) + +[node name="DragAndDropDemo" type="PanelContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 4 ) + +[node name="VLayout" type="VBoxContainer" parent="."] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 1017.0 +margin_bottom = 593.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DescriptionHeader" type="HBoxContainer" parent="VLayout"] +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 0, 50 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="M1H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_right = 250.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 50 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu One" type="Label" parent="VLayout/DescriptionHeader/M1H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 1" +align = 1 +valign = 1 + +[node name="M2H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 254.0 +margin_right = 502.0 +margin_bottom = 50.0 +size_flags_horizontal = 3 +custom_styles/panel = SubResource( 5 ) + +[node name="MenuTwo" type="Label" parent="VLayout/DescriptionHeader/M2H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 2" +align = 1 +valign = 1 + +[node name="M3H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 506.0 +margin_right = 756.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 0 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu3Label" type="Label" parent="VLayout/DescriptionHeader/M3H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 3" +align = 1 +valign = 1 + +[node name="M4H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 760.0 +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 0 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu4Label" type="Label" parent="VLayout/DescriptionHeader/M4H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 4" +align = 1 +valign = 1 + +[node name="ToolsOptions" type="HBoxContainer" parent="VLayout"] +margin_top = 54.0 +margin_right = 1010.0 +margin_bottom = 104.0 +rect_min_size = Vector2( 0, 50 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ToolsContainer" type="Panel" parent="VLayout/ToolsOptions"] +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 1010, 50 ) +custom_styles/panel = SubResource( 7 ) +script = ExtResource( 2 ) + +[node name="Padding" type="MarginContainer" parent="VLayout/ToolsOptions/ToolsContainer"] +margin_right = 1005.0 +margin_bottom = 47.0 +rect_min_size = Vector2( 1005, 0 ) + +[node name="Columns" type="HBoxContainer" parent="VLayout/ToolsOptions/ToolsContainer/Padding"] +margin_right = 1005.0 +margin_bottom = 47.0 +rect_min_size = Vector2( 1005, 0 ) + +[node name="DragAndDropColumns" type="HBoxContainer" parent="VLayout"] +margin_top = 108.0 +margin_right = 1010.0 +margin_bottom = 586.0 +size_flags_vertical = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="SourceContainer" type="Panel" parent="VLayout/DragAndDropColumns"] +margin_right = 175.0 +margin_bottom = 478.0 +rect_min_size = Vector2( 175, 0 ) +custom_styles/panel = SubResource( 6 ) + +[node name="Padding" type="MarginContainer" parent="VLayout/DragAndDropColumns/SourceContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = 30.0 +rect_clip_content = true +custom_constants/margin_right = 20 +custom_constants/margin_top = 20 +custom_constants/margin_left = 20 +custom_constants/margin_bottom = 20 + +[node name="TextEdit" type="TextEdit" parent="VLayout/DragAndDropColumns/SourceContainer"] +margin_right = 175.0 +margin_bottom = 478.0 + +[node name="CanvasContainer" type="Panel" parent="VLayout/DragAndDropColumns"] +margin_left = 179.0 +margin_right = 831.0 +margin_bottom = 478.0 +size_flags_horizontal = 3 +custom_styles/panel = SubResource( 2 ) +script = ExtResource( 3 ) + +[node name="Padding" type="MarginContainer" parent="VLayout/DragAndDropColumns/CanvasContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 33.0 +margin_top = -5.0 +margin_right = -2.0 +margin_bottom = -1.0 +mouse_filter = 1 +custom_constants/margin_right = 20 +custom_constants/margin_top = 20 +custom_constants/margin_left = 20 +custom_constants/margin_bottom = 20 + +[node name="Rows" type="VBoxContainer" parent="VLayout/DragAndDropColumns/CanvasContainer/Padding"] +margin_left = 20.0 +margin_top = 20.0 +margin_right = 597.0 +margin_bottom = 462.0 +custom_constants/separation = 15 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DetailsContainer" type="Panel" parent="VLayout/DragAndDropColumns"] +margin_left = 835.0 +margin_right = 1010.0 +margin_bottom = 478.0 +rect_min_size = Vector2( 175, 0 ) +custom_styles/panel = SubResource( 3 ) diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/source_container.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/source_container.gd new file mode 100644 index 0000000..7a08533 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/source_container.gd @@ -0,0 +1,31 @@ +extends Panel + +onready var drop_target = get_node("/root/DragAndDropDemo/VLayout/DragAndDropColumns/CanvasContainer") +onready var draggable_scene: PackedScene = preload("res://toolset_test/draggable.tscn") +onready var draggable_container = $Padding/Columns + +var dragables = [ + {"id": 1, "label": "dialog"}, + {"id": 2, "label": "object"}, + {"id": 3, "label": "encounter"} +] + + +func _ready() -> void: + drop_target.connect("item_dropped_on_target", self, "_on_item_dropped_on_target") + _populate_dragables() + +func _populate_dragables(): + for dragable in dragables: + var drag_item = draggable_scene.instance() + drag_item.id = dragable["id"] + drag_item.label = dragable["label"] + draggable_container.add_child(drag_item) + +func _on_item_dropped_on_target(dropped_item: Draggable) -> void: + for drag_item in draggable_container.get_children(): + drag_item = (drag_item as Draggable) + if drag_item.id == dropped_item.id: + #draggable_container.remove_child(drag_item) + #drag_item.queue_free() + break diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/target_container_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/target_container_final.gd new file mode 100644 index 0000000..5f12d58 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_manual/target_container_final.gd @@ -0,0 +1,26 @@ +extends Panel + + +signal item_dropped_on_target(draggable) +var draggable: PackedScene = preload("res://toolset_test/draggable.tscn") + +func can_drop_data(position: Vector2, data) -> bool: + var can_drop: bool = data is Node and data.is_in_group("DRAGGABLE") + print("[TargetContainer] can_drop_data has run, returning %s" % can_drop) + return can_drop + +func drop_data(position: Vector2, data) -> void: + print("[TargetContainer] drop_data has run") + print("[TargetContainer] Emiting signal: item_dropped_on_target") + + #DKM TEMP: here we'd open wizard or create new item. + # How should this display when it's finalized? + var draggable_copy: ColorRect = draggable.instance() + draggable_copy.id = data.id + #Instantiate a new version of the specific item in this content capsule + draggable_copy.label = data.label + draggable_copy.dropped_on_target = true # disable further dragging + $Padding/Rows.add_child(draggable_copy) + + emit_signal("item_dropped_on_target", data) + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/Control_Manual_MasterScript.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/Control_Manual_MasterScript.gd new file mode 100644 index 0000000..7195219 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/Control_Manual_MasterScript.gd @@ -0,0 +1,16 @@ +extends PanelContainer + + +# Declare member variables here. Examples: +# var a: int = 2 +# var b: String = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + var outputFolderStr = "Region\n\tLocation\n\t\tSpace\n\t\t\tScene" + "\n\t\tSpace" + $VLayout/DragAndDropColumns/SourceContainer/TextEdit.text = outputFolderStr + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta: float) -> void: +# pass diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/source_container.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/source_container.gd new file mode 100644 index 0000000..7a08533 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/source_container.gd @@ -0,0 +1,31 @@ +extends Panel + +onready var drop_target = get_node("/root/DragAndDropDemo/VLayout/DragAndDropColumns/CanvasContainer") +onready var draggable_scene: PackedScene = preload("res://toolset_test/draggable.tscn") +onready var draggable_container = $Padding/Columns + +var dragables = [ + {"id": 1, "label": "dialog"}, + {"id": 2, "label": "object"}, + {"id": 3, "label": "encounter"} +] + + +func _ready() -> void: + drop_target.connect("item_dropped_on_target", self, "_on_item_dropped_on_target") + _populate_dragables() + +func _populate_dragables(): + for dragable in dragables: + var drag_item = draggable_scene.instance() + drag_item.id = dragable["id"] + drag_item.label = dragable["label"] + draggable_container.add_child(drag_item) + +func _on_item_dropped_on_target(dropped_item: Draggable) -> void: + for drag_item in draggable_container.get_children(): + drag_item = (drag_item as Draggable) + if drag_item.id == dropped_item.id: + #draggable_container.remove_child(drag_item) + #drag_item.queue_free() + break diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/tabbed_layout_test_2023_0514A.tscn b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/tabbed_layout_test_2023_0514A.tscn new file mode 100644 index 0000000..c7ff77e --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/tabbed_layout_test_2023_0514A.tscn @@ -0,0 +1,33 @@ +[gd_scene format=2] + +[node name="Node2D" type="Node2D"] + +[node name="TabContainer" type="TabContainer" parent="."] +margin_right = 1027.0 +margin_bottom = 604.0 + +[node name="Visual_Tab" type="Tabs" parent="TabContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 4.0 +margin_top = 32.0 +margin_right = -4.0 +margin_bottom = -4.0 + +[node name="ColorPicker" type="ColorPicker" parent="TabContainer/Visual_Tab"] +margin_left = 4.0 +margin_top = 4.0 +margin_right = 312.0 +margin_bottom = 466.0 + +[node name="Structural_Tab" type="Tabs" parent="TabContainer"] +visible = false +margin_right = 40.0 +margin_bottom = 24.0 + +[node name="TextEdit" type="TextEdit" parent="TabContainer/Structural_Tab"] +margin_left = 4.0 +margin_top = 32.0 +margin_right = 1023.0 +margin_bottom = 600.0 +text = "Location folder data loads here" diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/target_container_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/target_container_final.gd new file mode 100644 index 0000000..5f12d58 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed/target_container_final.gd @@ -0,0 +1,26 @@ +extends Panel + + +signal item_dropped_on_target(draggable) +var draggable: PackedScene = preload("res://toolset_test/draggable.tscn") + +func can_drop_data(position: Vector2, data) -> bool: + var can_drop: bool = data is Node and data.is_in_group("DRAGGABLE") + print("[TargetContainer] can_drop_data has run, returning %s" % can_drop) + return can_drop + +func drop_data(position: Vector2, data) -> void: + print("[TargetContainer] drop_data has run") + print("[TargetContainer] Emiting signal: item_dropped_on_target") + + #DKM TEMP: here we'd open wizard or create new item. + # How should this display when it's finalized? + var draggable_copy: ColorRect = draggable.instance() + draggable_copy.id = data.id + #Instantiate a new version of the specific item in this content capsule + draggable_copy.label = data.label + draggable_copy.dropped_on_target = true # disable further dragging + $Padding/Rows.add_child(draggable_copy) + + emit_signal("item_dropped_on_target", data) + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/AssetsContainer.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/AssetsContainer.gd new file mode 100644 index 0000000..726e1a2 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/AssetsContainer.gd @@ -0,0 +1,33 @@ +extends Panel + +onready var drop_target = get_node("/root/Tabbed_merged_test/VLayout/HBoxContainer/TabContainer/Structural_Tab/PanelCanvas_Temp") + +onready var draggable_assets_scene: PackedScene = preload("res://toolset_test_tabbed_merged/draggable_assets.tscn") +onready var draggable_assets_container = $Padding/AssetsRows + +var dragables = [ + {"id": 1, "label": "region"}, + {"id": 2, "label": "location"}, + {"id": 3, "label": "space"}, + {"id": 4, "label": "scene"}, +] + + +func _ready() -> void: + drop_target.connect("item_dropped_on_target", self, "_on_item_dropped_on_target") + _populate_dragables() + +func _populate_dragables(): + for dragable in dragables: + var drag_item = draggable_assets_scene.instance() + drag_item.id = dragable["id"] + drag_item.label = dragable["label"] + draggable_assets_container.add_child(drag_item) + +func _on_item_dropped_on_target(dropped_item: Draggable_Assets) -> void: + for drag_item in draggable_assets_container.get_children(): + drag_item = (drag_item as Draggable_Assets) + if drag_item.id == dropped_item.id: + #draggable_container.remove_child(drag_item) + #drag_item.queue_free() + break diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/PanelCanvas_Temp.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/PanelCanvas_Temp.gd new file mode 100644 index 0000000..ee54fcd --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/PanelCanvas_Temp.gd @@ -0,0 +1,25 @@ +extends Panel + + +signal item_dropped_on_target(draggable_assets) +var draggable_assets: PackedScene = preload("res://toolset_test_tabbed_merged/draggable_assets.tscn") + +func can_drop_data(position: Vector2, data) -> bool: + var can_drop: bool = data is Node and data.is_in_group("DRAGGABLE_ASSETS") + print("[TargetContainer] can_drop_data has run, returning %s" % can_drop) + return can_drop + +func drop_data(position: Vector2, data) -> void: + print("[TargetContainer] drop_data has run") + print("[TargetContainer] Emiting signal: item_dropped_on_target") + + #DKM TEMP: here we'd open wizard or create new item. + # How should this display when it's finalized? + var draggable_copy: ColorRect = draggable_assets.instance() + draggable_copy.id = data.id + #Instantiate a new version of the specific item in this content capsule + draggable_copy.label = data.label + draggable_copy.dropped_on_target = true # disable further dragging + $Padding/Rows.add_child(draggable_copy) + + emit_signal("item_dropped_on_target", data) diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets.tscn b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets.tscn new file mode 100644 index 0000000..a8f07e6 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Cabin-VariableFont_wdth,wght.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://toolset_test/draggable_final.gd" type="Script" id=2] + +[sub_resource type="DynamicFont" id=6] +size = 24 +font_data = ExtResource( 1 ) + +[node name="Draggable" type="ColorRect"] +margin_right = 150.0 +margin_bottom = 35.0 +rect_min_size = Vector2( 150, 35 ) +color = Color( 0.752941, 0.305882, 0.305882, 1 ) +script = ExtResource( 2 ) + +[node name="Label" type="Label" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 6 ) +text = "Drag Me" +align = 1 +valign = 1 diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets_final.gd new file mode 100644 index 0000000..2630041 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/draggable_assets_final.gd @@ -0,0 +1,42 @@ +extends ColorRect +class_name Draggable_Assets + +var id: int +var label: String +# set this to true once we've been dropped on our target +var dropped_on_target: bool = false + + +func _ready() -> void: + add_to_group("DRAGGABLE_ASSETS") + $Label.text = label + + +func get_drag_data(_position: Vector2): + print("[Draggable_Assets] get_drag_data has run") + if not dropped_on_target: + set_drag_preview(_get_preview_control()) + return self + + +func _on_item_dropped_on_target(draggable_assets): + print("[Draggable_Assets] Signal item_dropped_on_target received") + if draggable_assets.get("id") != id: + return + print("[Draggable_Assets] Iven been dropped, removing myself from source container") + queue_free() + + +func _get_preview_control() -> Control: + """ + The preview control must not be in the scene tree. You should not free the control, and + you should not keep a reference to the control beyond the duration of the drag. + It will be deleted automatically after the drag has ended. + """ + var preview = ColorRect.new() + preview.rect_size = rect_size + var preview_color = color + preview_color.a = .5 + preview.color = preview_color + preview.set_rotation(.1) # in readians + return preview diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/source_container.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/source_container.gd new file mode 100644 index 0000000..7a08533 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/source_container.gd @@ -0,0 +1,31 @@ +extends Panel + +onready var drop_target = get_node("/root/DragAndDropDemo/VLayout/DragAndDropColumns/CanvasContainer") +onready var draggable_scene: PackedScene = preload("res://toolset_test/draggable.tscn") +onready var draggable_container = $Padding/Columns + +var dragables = [ + {"id": 1, "label": "dialog"}, + {"id": 2, "label": "object"}, + {"id": 3, "label": "encounter"} +] + + +func _ready() -> void: + drop_target.connect("item_dropped_on_target", self, "_on_item_dropped_on_target") + _populate_dragables() + +func _populate_dragables(): + for dragable in dragables: + var drag_item = draggable_scene.instance() + drag_item.id = dragable["id"] + drag_item.label = dragable["label"] + draggable_container.add_child(drag_item) + +func _on_item_dropped_on_target(dropped_item: Draggable) -> void: + for drag_item in draggable_container.get_children(): + drag_item = (drag_item as Draggable) + if drag_item.id == dropped_item.id: + #draggable_container.remove_child(drag_item) + #drag_item.queue_free() + break diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/tabbed_merged_test_interface.tscn b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/tabbed_merged_test_interface.tscn new file mode 100644 index 0000000..39d4be1 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/tabbed_merged_test_interface.tscn @@ -0,0 +1,172 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://Cabin-VariableFont_wdth,wght.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://toolset_test_tabbed_merged/toolset_test_tabbed_merged.gd" type="Script" id=2] +[ext_resource path="res://toolset_test_tabbed_merged/AssetsContainer.gd" type="Script" id=3] +[ext_resource path="res://toolset_test_tabbed_merged/PanelCanvas_Temp.gd" type="Script" id=4] + +[sub_resource type="StyleBoxFlat" id=5] +bg_color = Color( 0, 0, 0, 1 ) + +[sub_resource type="DynamicFont" id=4] +size = 32 +font_data = ExtResource( 1 ) + +[sub_resource type="StyleBoxFlat" id=3] +bg_color = Color( 1, 1, 1, 1 ) + +[node name="Tabbed_merged_test" type="PanelContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 2 ) + +[node name="VLayout" type="VBoxContainer" parent="."] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 1017.0 +margin_bottom = 596.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DescriptionHeader" type="HBoxContainer" parent="VLayout"] +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 0, 50 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="M1H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_right = 250.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 50 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu One" type="Label" parent="VLayout/DescriptionHeader/M1H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 1" +align = 1 +valign = 1 + +[node name="M2H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 254.0 +margin_right = 502.0 +margin_bottom = 50.0 +size_flags_horizontal = 3 +custom_styles/panel = SubResource( 5 ) + +[node name="MenuTwo" type="Label" parent="VLayout/DescriptionHeader/M2H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 2" +align = 1 +valign = 1 + +[node name="M3H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 506.0 +margin_right = 756.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 0 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu3Label" type="Label" parent="VLayout/DescriptionHeader/M3H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 3" +align = 1 +valign = 1 + +[node name="M4H" type="Panel" parent="VLayout/DescriptionHeader"] +margin_left = 760.0 +margin_right = 1010.0 +margin_bottom = 50.0 +rect_min_size = Vector2( 250, 0 ) +custom_styles/panel = SubResource( 5 ) + +[node name="Menu4Label" type="Label" parent="VLayout/DescriptionHeader/M4H"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 4 ) +text = "Menu 4" +align = 1 +valign = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VLayout"] +margin_top = 54.0 +margin_right = 1010.0 +margin_bottom = 589.0 + +[node name="AssetsContainer" type="Panel" parent="VLayout/HBoxContainer"] +margin_right = 175.0 +margin_bottom = 535.0 +rect_min_size = Vector2( 175, 0 ) +script = ExtResource( 3 ) + +[node name="Padding" type="MarginContainer" parent="VLayout/HBoxContainer/AssetsContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 34.0 +rect_clip_content = true +custom_constants/margin_right = 20 +custom_constants/margin_top = 20 +custom_constants/margin_left = 20 +custom_constants/margin_bottom = 20 + +[node name="AssetsRows" type="VBoxContainer" parent="VLayout/HBoxContainer/AssetsContainer/Padding"] +margin_left = 20.0 +margin_top = 20.0 +margin_right = 155.0 +margin_bottom = 481.0 + +[node name="Label" type="Label" parent="VLayout/HBoxContainer/AssetsContainer"] +margin_right = 172.0 +margin_bottom = 31.0 +text = "Assets:" + +[node name="TabContainer" type="TabContainer" parent="VLayout/HBoxContainer"] +margin_left = 179.0 +margin_right = 829.0 +margin_bottom = 535.0 +rect_min_size = Vector2( 650, 535 ) + +[node name="Visual_Tab" type="Tabs" parent="VLayout/HBoxContainer/TabContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 4.0 +margin_top = 32.0 +margin_right = -4.0 +margin_bottom = -4.0 + +[node name="Structural_Tab" type="Tabs" parent="VLayout/HBoxContainer/TabContainer"] +margin_right = 40.0 +margin_bottom = 24.0 + +[node name="TextEdit" type="TextEdit" parent="VLayout/HBoxContainer/TabContainer/Structural_Tab"] +margin_left = -1.0 +margin_top = 20.0 +margin_right = 648.0 +margin_bottom = 529.0 + +[node name="PanelCanvas_Temp" type="Panel" parent="VLayout/HBoxContainer/TabContainer/Structural_Tab"] +margin_left = 3.0 +margin_top = 274.0 +margin_right = 643.0 +margin_bottom = 525.0 +script = ExtResource( 4 ) + +[node name="DetailsContainer" type="Panel" parent="VLayout/HBoxContainer"] +margin_left = 833.0 +margin_right = 1008.0 +margin_bottom = 535.0 +rect_min_size = Vector2( 175, 0 ) +custom_styles/panel = SubResource( 3 ) + +[node name="Text_Details" type="TextEdit" parent="VLayout/HBoxContainer/DetailsContainer"] +margin_right = 177.0 +margin_bottom = 537.0 +text = "Details:" diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/target_container_final.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/target_container_final.gd new file mode 100644 index 0000000..5f12d58 --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/target_container_final.gd @@ -0,0 +1,26 @@ +extends Panel + + +signal item_dropped_on_target(draggable) +var draggable: PackedScene = preload("res://toolset_test/draggable.tscn") + +func can_drop_data(position: Vector2, data) -> bool: + var can_drop: bool = data is Node and data.is_in_group("DRAGGABLE") + print("[TargetContainer] can_drop_data has run, returning %s" % can_drop) + return can_drop + +func drop_data(position: Vector2, data) -> void: + print("[TargetContainer] drop_data has run") + print("[TargetContainer] Emiting signal: item_dropped_on_target") + + #DKM TEMP: here we'd open wizard or create new item. + # How should this display when it's finalized? + var draggable_copy: ColorRect = draggable.instance() + draggable_copy.id = data.id + #Instantiate a new version of the specific item in this content capsule + draggable_copy.label = data.label + draggable_copy.dropped_on_target = true # disable further dragging + $Padding/Rows.add_child(draggable_copy) + + emit_signal("item_dropped_on_target", data) + diff --git a/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/toolset_test_tabbed_merged.gd b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/toolset_test_tabbed_merged.gd new file mode 100644 index 0000000..7054c8a --- /dev/null +++ b/Phase2/Godot_Toolset/CodeSandboxes/Experiment_Location_Folders_2023_0430/toolset_test_tabbed_merged/toolset_test_tabbed_merged.gd @@ -0,0 +1,17 @@ +extends PanelContainer + + +# Declare member variables here. Examples: +# var a: int = 2 +# var b: String = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + var outputFolderStr = "Region\n\tLocation\n\t\tSpace\n\t\t\tScene" + "\n\t\tSpace" + $VLayout/HBoxContainer/TabContainer/Structural_Tab/TextEdit.text = outputFolderStr + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta: float) -> void: +# pass +