Dock.tscn 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. [gd_scene load_steps=32 format=3 uid="uid://de8b6h6ieal7r"]
  2. [ext_resource type="Script" uid="uid://ynajlxcomlkc" path="res://addons/better-terrain/editor/Dock.gd" id="1_raoha"]
  3. [ext_resource type="Texture2D" uid="uid://c6lxq2y7mpb18" path="res://addons/better-terrain/icons/EditType.svg" id="2_cpm2t"]
  4. [ext_resource type="Texture2D" uid="uid://y3xy6qdckht6" path="res://addons/better-terrain/icons/Replace.svg" id="2_fvmt6"]
  5. [ext_resource type="Texture2D" uid="uid://bo2cjv08jkvf8" path="res://addons/better-terrain/icons/EditTerrain.svg" id="3_pqb1p"]
  6. [ext_resource type="Texture2D" uid="uid://b0es228gfcykd" path="res://addons/better-terrain/icons/Warning.svg" id="4_6ahwe"]
  7. [ext_resource type="Script" uid="uid://cpm7dq6r0n0sn" path="res://addons/better-terrain/editor/TileView.gd" id="4_nqppq"]
  8. [ext_resource type="Texture2D" uid="uid://co6gwwmog0pjy" path="res://addons/better-terrain/icons/EditSymmetry.svg" id="5_kfjwu"]
  9. [ext_resource type="Texture2D" uid="uid://cs4mdmluiydj6" path="res://addons/better-terrain/icons/ShuffleRandom.svg" id="5_n3owo"]
  10. [ext_resource type="Texture2D" uid="uid://5hm3bfj3dvej" path="res://addons/better-terrain/icons/SymmetryMirror.svg" id="6_mofuh"]
  11. [ext_resource type="Texture2D" uid="uid://dqmc1jp56or8m" path="res://addons/better-terrain/icons/SymmetryFlip.svg" id="7_ojxs0"]
  12. [ext_resource type="Texture2D" uid="uid://cxoewno1cefua" path="res://addons/better-terrain/icons/SymmetryReflect.svg" id="8_8dhyg"]
  13. [ext_resource type="Texture2D" uid="uid://baxhjy28r1iqj" path="res://addons/better-terrain/icons/SymmetryRotateClockwise.svg" id="9_tq76a"]
  14. [ext_resource type="Texture2D" uid="uid://csbwdkr6bc2db" path="res://addons/better-terrain/icons/SymmetryRotateCounterClockwise.svg" id="10_o5h1f"]
  15. [ext_resource type="Texture2D" uid="uid://8mcycyl3e66r" path="res://addons/better-terrain/icons/SymmetryRotate180.svg" id="11_m6syp"]
  16. [ext_resource type="Texture2D" uid="uid://b7fx4mk18lmls" path="res://addons/better-terrain/icons/SymmetryRotateAll.svg" id="12_11vru"]
  17. [ext_resource type="Texture2D" uid="uid://cyjra4g05dwh" path="res://addons/better-terrain/icons/SymmetryAll.svg" id="13_lp5m2"]
  18. [sub_resource type="ButtonGroup" id="ButtonGroup_aon7c"]
  19. [sub_resource type="InputEventKey" id="InputEventKey_saph6"]
  20. device = -1
  21. keycode = 68
  22. unicode = 100
  23. [sub_resource type="Shortcut" id="Shortcut_3k2al"]
  24. events = [SubResource("InputEventKey_saph6")]
  25. [sub_resource type="SVGTexture" id="SVGTexture_nkf6h"]
  26. _source = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"><path fill=\"#ff5d5d\" d=\"M2 1v8.586l1.293-1.293a1 1 0 0 1 1.414 0L7 10.587l2.293-2.293a1 1 0 0 1 1.414 0L13 10.586l1-1V6H9V1H2zm8 0v4h4zm-6 9.414-2 2V15h12v-2.586l-.293.293a1 1 0 0 1-1.414 0L10 10.414l-2.293 2.293a1 1 0 0 1-1.414 0L4 10.414z\"/></svg>
  27. "
  28. [sub_resource type="InputEventKey" id="InputEventKey_q1v0d"]
  29. device = -1
  30. keycode = 76
  31. unicode = 108
  32. [sub_resource type="Shortcut" id="Shortcut_wc6bu"]
  33. events = [SubResource("InputEventKey_q1v0d")]
  34. [sub_resource type="InputEventKey" id="InputEventKey_68n3h"]
  35. device = -1
  36. keycode = 82
  37. unicode = 114
  38. [sub_resource type="InputEventKey" id="InputEventKey_qcu1e"]
  39. device = -1
  40. keycode = 67
  41. unicode = 99
  42. [sub_resource type="Shortcut" id="Shortcut_tcjet"]
  43. events = [SubResource("InputEventKey_68n3h"), SubResource("InputEventKey_qcu1e")]
  44. [sub_resource type="InputEventKey" id="InputEventKey_grxy4"]
  45. device = -1
  46. keycode = 66
  47. unicode = 98
  48. [sub_resource type="Shortcut" id="Shortcut_46fac"]
  49. events = [SubResource("InputEventKey_grxy4")]
  50. [sub_resource type="InputEventKey" id="InputEventKey_xd61m"]
  51. device = -1
  52. keycode = 80
  53. unicode = 112
  54. [sub_resource type="Shortcut" id="Shortcut_uwwa1"]
  55. events = [SubResource("InputEventKey_xd61m")]
  56. [sub_resource type="ButtonGroup" id="ButtonGroup_3wrxn"]
  57. allow_unpress = true
  58. [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mpeb7"]
  59. bg_color = Color(0, 0, 0, 0.4)
  60. [node name="Dock" type="Control" node_paths=PackedStringArray("shortcut_context")]
  61. custom_minimum_size = Vector2(0, 100)
  62. layout_mode = 3
  63. anchors_preset = 15
  64. anchor_right = 1.0
  65. anchor_bottom = 1.0
  66. grow_horizontal = 2
  67. grow_vertical = 2
  68. focus_mode = 2
  69. shortcut_context = NodePath(".")
  70. script = ExtResource("1_raoha")
  71. [node name="VBox" type="VBoxContainer" parent="."]
  72. layout_mode = 1
  73. anchors_preset = 15
  74. anchor_right = 1.0
  75. anchor_bottom = 1.0
  76. grow_horizontal = 2
  77. grow_vertical = 2
  78. [node name="Toolbar" type="HBoxContainer" parent="VBox"]
  79. layout_mode = 2
  80. [node name="Draw" type="Button" parent="VBox/Toolbar"]
  81. layout_mode = 2
  82. tooltip_text = "Draw terrain
  83. Shift: Draw line.
  84. Ctrl/Cmd+Shift: Draw rectangle."
  85. toggle_mode = true
  86. button_pressed = true
  87. button_group = SubResource("ButtonGroup_aon7c")
  88. shortcut = SubResource("Shortcut_3k2al")
  89. icon = SubResource("SVGTexture_nkf6h")
  90. flat = true
  91. [node name="Line" type="Button" parent="VBox/Toolbar"]
  92. layout_mode = 2
  93. tooltip_text = "Draw line"
  94. toggle_mode = true
  95. button_group = SubResource("ButtonGroup_aon7c")
  96. shortcut = SubResource("Shortcut_wc6bu")
  97. icon = SubResource("SVGTexture_nkf6h")
  98. flat = true
  99. [node name="Rectangle" type="Button" parent="VBox/Toolbar"]
  100. layout_mode = 2
  101. tooltip_text = "Fill a rectangle of terrain"
  102. toggle_mode = true
  103. button_group = SubResource("ButtonGroup_aon7c")
  104. shortcut = SubResource("Shortcut_tcjet")
  105. icon = SubResource("SVGTexture_nkf6h")
  106. flat = true
  107. [node name="Fill" type="Button" parent="VBox/Toolbar"]
  108. layout_mode = 2
  109. tooltip_text = "Bucket fill terrain"
  110. toggle_mode = true
  111. button_group = SubResource("ButtonGroup_aon7c")
  112. shortcut = SubResource("Shortcut_46fac")
  113. icon = SubResource("SVGTexture_nkf6h")
  114. flat = true
  115. [node name="Replace" type="Button" parent="VBox/Toolbar"]
  116. layout_mode = 2
  117. tooltip_text = "Toggle replace mode"
  118. toggle_mode = true
  119. shortcut = SubResource("Shortcut_uwwa1")
  120. icon = ExtResource("2_fvmt6")
  121. [node name="VSeparator" type="VSeparator" parent="VBox/Toolbar"]
  122. layout_mode = 2
  123. [node name="SelectTiles" type="Button" parent="VBox/Toolbar"]
  124. layout_mode = 2
  125. tooltip_text = "Select"
  126. toggle_mode = true
  127. button_group = SubResource("ButtonGroup_3wrxn")
  128. icon = SubResource("SVGTexture_nkf6h")
  129. flat = true
  130. [node name="PaintType" type="Button" parent="VBox/Toolbar"]
  131. layout_mode = 2
  132. tooltip_text = "Paint terrain types"
  133. toggle_mode = true
  134. button_group = SubResource("ButtonGroup_3wrxn")
  135. icon = ExtResource("2_cpm2t")
  136. flat = true
  137. [node name="PaintTerrain" type="Button" parent="VBox/Toolbar"]
  138. layout_mode = 2
  139. tooltip_text = "Paint terrain connecting types"
  140. toggle_mode = true
  141. button_group = SubResource("ButtonGroup_3wrxn")
  142. icon = ExtResource("3_pqb1p")
  143. flat = true
  144. [node name="PaintSymmetry" type="Button" parent="VBox/Toolbar"]
  145. layout_mode = 2
  146. tooltip_text = "Paint tile symmetry"
  147. toggle_mode = true
  148. button_group = SubResource("ButtonGroup_3wrxn")
  149. icon = ExtResource("5_kfjwu")
  150. flat = true
  151. [node name="SymmetryOptions" type="OptionButton" parent="VBox/Toolbar"]
  152. visible = false
  153. custom_minimum_size = Vector2(100, 0)
  154. layout_mode = 2
  155. selected = 0
  156. item_count = 9
  157. popup/item_0/text = "No symmetry"
  158. popup/item_0/id = 8
  159. popup/item_1/text = "Mirror"
  160. popup/item_1/icon = ExtResource("6_mofuh")
  161. popup/item_1/id = 1
  162. popup/item_2/text = "Flip"
  163. popup/item_2/icon = ExtResource("7_ojxs0")
  164. popup/item_2/id = 1
  165. popup/item_3/text = "Reflect"
  166. popup/item_3/icon = ExtResource("8_8dhyg")
  167. popup/item_3/id = 2
  168. popup/item_4/text = "Rotate clockwise"
  169. popup/item_4/icon = ExtResource("9_tq76a")
  170. popup/item_4/id = 3
  171. popup/item_5/text = "Rotate counter-clockwise"
  172. popup/item_5/icon = ExtResource("10_o5h1f")
  173. popup/item_5/id = 4
  174. popup/item_6/text = "Rotate 180"
  175. popup/item_6/icon = ExtResource("11_m6syp")
  176. popup/item_6/id = 5
  177. popup/item_7/text = "All rotations"
  178. popup/item_7/icon = ExtResource("12_11vru")
  179. popup/item_7/id = 6
  180. popup/item_8/text = "All reflections & rotations"
  181. popup/item_8/icon = ExtResource("13_lp5m2")
  182. popup/item_8/id = 7
  183. [node name="VSeparator3" type="VSeparator" parent="VBox/Toolbar"]
  184. layout_mode = 2
  185. [node name="ZoomContainer" type="VBoxContainer" parent="VBox/Toolbar"]
  186. layout_mode = 2
  187. alignment = 1
  188. [node name="Sources" type="MenuBar" parent="VBox/Toolbar"]
  189. layout_mode = 2
  190. [node name="Sources" type="PopupMenu" parent="VBox/Toolbar/Sources"]
  191. auto_translate_mode = 2
  192. auto_translate = false
  193. hide_on_item_selection = false
  194. hide_on_checkable_item_selection = false
  195. [node name="Spacer" type="Control" parent="VBox/Toolbar"]
  196. layout_mode = 2
  197. size_flags_horizontal = 3
  198. [node name="ShuffleRandom" type="Button" parent="VBox/Toolbar"]
  199. layout_mode = 2
  200. tooltip_text = "Shuffle random tiles each update"
  201. toggle_mode = true
  202. icon = ExtResource("5_n3owo")
  203. flat = true
  204. [node name="Clean" type="Button" parent="VBox/Toolbar"]
  205. layout_mode = 2
  206. text = "Clean tile data"
  207. icon = ExtResource("4_6ahwe")
  208. [node name="VSeparator2" type="VSeparator" parent="VBox/Toolbar"]
  209. layout_mode = 2
  210. [node name="LayerUp" type="Button" parent="VBox/Toolbar"]
  211. layout_mode = 2
  212. tooltip_text = "Select previous layer"
  213. icon = SubResource("SVGTexture_nkf6h")
  214. flat = true
  215. [node name="LayerDown" type="Button" parent="VBox/Toolbar"]
  216. layout_mode = 2
  217. tooltip_text = "Select next layer"
  218. icon = SubResource("SVGTexture_nkf6h")
  219. flat = true
  220. [node name="LayerHighlight" type="Button" parent="VBox/Toolbar"]
  221. layout_mode = 2
  222. tooltip_text = "Highlight selected layer"
  223. toggle_mode = true
  224. icon = SubResource("SVGTexture_nkf6h")
  225. flat = true
  226. [node name="LayerGrid" type="Button" parent="VBox/Toolbar"]
  227. layout_mode = 2
  228. tooltip_text = "Toggle grid visibility"
  229. toggle_mode = true
  230. icon = SubResource("SVGTexture_nkf6h")
  231. flat = true
  232. [node name="HSplit" type="HSplitContainer" parent="VBox"]
  233. layout_mode = 2
  234. size_flags_vertical = 3
  235. split_offset = 325
  236. [node name="Terrains" type="VBoxContainer" parent="VBox/HSplit"]
  237. layout_mode = 2
  238. [node name="Panel" type="PanelContainer" parent="VBox/HSplit/Terrains"]
  239. layout_mode = 2
  240. size_flags_vertical = 3
  241. theme_override_styles/panel = SubResource("StyleBoxFlat_mpeb7")
  242. [node name="ScrollContainer" type="ScrollContainer" parent="VBox/HSplit/Terrains/Panel"]
  243. layout_mode = 2
  244. horizontal_scroll_mode = 3
  245. [node name="TerrainList" type="HFlowContainer" parent="VBox/HSplit/Terrains/Panel/ScrollContainer"]
  246. layout_mode = 2
  247. size_flags_horizontal = 3
  248. size_flags_vertical = 3
  249. [node name="LowerToolbar" type="HBoxContainer" parent="VBox/HSplit/Terrains"]
  250. layout_mode = 2
  251. [node name="GridMode" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar"]
  252. layout_mode = 2
  253. tooltip_text = "Toggle grid view"
  254. toggle_mode = true
  255. icon = SubResource("SVGTexture_nkf6h")
  256. flat = true
  257. [node name="QuickMode" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar"]
  258. auto_translate_mode = 1
  259. layout_mode = 2
  260. tooltip_text = "Toggle quick mode. Only shows paintable terrain types."
  261. toggle_mode = true
  262. icon = SubResource("SVGTexture_nkf6h")
  263. flat = true
  264. [node name="VSeparator" type="VSeparator" parent="VBox/HSplit/Terrains/LowerToolbar"]
  265. layout_mode = 2
  266. [node name="EditTools" type="HBoxContainer" parent="VBox/HSplit/Terrains/LowerToolbar"]
  267. layout_mode = 2
  268. size_flags_horizontal = 3
  269. alignment = 2
  270. [node name="AddTerrain" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar/EditTools"]
  271. layout_mode = 2
  272. tooltip_text = "Add terrain type"
  273. icon = SubResource("SVGTexture_nkf6h")
  274. flat = true
  275. [node name="EditTerrain" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar/EditTools"]
  276. layout_mode = 2
  277. tooltip_text = "Edit terrain type"
  278. icon = SubResource("SVGTexture_nkf6h")
  279. flat = true
  280. [node name="PickIcon" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar/EditTools"]
  281. layout_mode = 2
  282. tooltip_text = "Pick terrain icon from tileset"
  283. toggle_mode = true
  284. icon = SubResource("SVGTexture_nkf6h")
  285. flat = true
  286. [node name="MoveUp" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar/EditTools"]
  287. layout_mode = 2
  288. tooltip_text = "Move selected terrain up"
  289. icon = SubResource("SVGTexture_nkf6h")
  290. flat = true
  291. [node name="MoveDown" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar/EditTools"]
  292. layout_mode = 2
  293. tooltip_text = "Move selected terrain down"
  294. icon = SubResource("SVGTexture_nkf6h")
  295. flat = true
  296. [node name="RemoveTerrain" type="Button" parent="VBox/HSplit/Terrains/LowerToolbar/EditTools"]
  297. layout_mode = 2
  298. tooltip_text = "Remove selected terrain type(s)"
  299. icon = SubResource("SVGTexture_nkf6h")
  300. flat = true
  301. [node name="Panel" type="Panel" parent="VBox/HSplit"]
  302. custom_minimum_size = Vector2(0, 80)
  303. layout_mode = 2
  304. [node name="ScrollArea" type="ScrollContainer" parent="VBox/HSplit/Panel"]
  305. layout_mode = 1
  306. anchors_preset = 15
  307. anchor_right = 1.0
  308. anchor_bottom = 1.0
  309. grow_horizontal = 2
  310. grow_vertical = 2
  311. size_flags_horizontal = 3
  312. [node name="TileView" type="Control" parent="VBox/HSplit/Panel/ScrollArea"]
  313. texture_filter = 1
  314. texture_repeat = 1
  315. layout_mode = 2
  316. size_flags_horizontal = 3
  317. size_flags_vertical = 3
  318. focus_mode = 2
  319. script = ExtResource("4_nqppq")
  320. [connection signal="item_selected" from="VBox/Toolbar/SymmetryOptions" to="." method="_on_symmetry_selected"]
  321. [connection signal="id_pressed" from="VBox/Toolbar/Sources/Sources" to="." method="_on_terrain_enable_id_pressed"]
  322. [connection signal="pressed" from="VBox/Toolbar/ShuffleRandom" to="." method="_on_shuffle_random_pressed"]
  323. [connection signal="pressed" from="VBox/Toolbar/Clean" to="." method="_on_clean_pressed"]
  324. [connection signal="pressed" from="VBox/Toolbar/LayerUp" to="." method="_on_layer_up_pressed"]
  325. [connection signal="pressed" from="VBox/Toolbar/LayerDown" to="." method="_on_layer_down_pressed"]
  326. [connection signal="toggled" from="VBox/Toolbar/LayerHighlight" to="." method="_on_layer_highlight_toggled"]
  327. [connection signal="toggled" from="VBox/Toolbar/LayerGrid" to="." method="_on_layer_grid_toggled"]
  328. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/GridMode" to="." method="_on_grid_mode_pressed"]
  329. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/QuickMode" to="." method="_on_quick_mode_pressed"]
  330. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/AddTerrain" to="." method="_on_add_terrain_pressed"]
  331. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/EditTerrain" to="." method="_on_edit_terrain_pressed"]
  332. [connection signal="focus_exited" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/PickIcon" to="." method="_on_pick_icon_focus_exited"]
  333. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/PickIcon" to="." method="_on_pick_icon_pressed"]
  334. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/MoveUp" to="." method="_on_move_pressed" binds= [false]]
  335. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/MoveDown" to="." method="_on_move_pressed" binds= [true]]
  336. [connection signal="pressed" from="VBox/HSplit/Terrains/LowerToolbar/EditTools/RemoveTerrain" to="." method="_on_remove_terrain_pressed"]
  337. [connection signal="mouse_exited" from="VBox/HSplit/Panel/ScrollArea/TileView" to="VBox/HSplit/Panel/ScrollArea/TileView" method="clear_highlighted_tile"]