small racing game im working on
Diffstat (limited to 'ui/editor/duplicate.gd')
| -rw-r--r-- | ui/editor/duplicate.gd | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ui/editor/duplicate.gd b/ui/editor/duplicate.gd new file mode 100644 index 0000000..142d0f9 --- /dev/null +++ b/ui/editor/duplicate.gd @@ -0,0 +1,23 @@ +extends Button + +@onready var editor: TrackEditor = owner + +func _on_selection_changed(nodes: Array[TrackObject]): + disabled = nodes.size() == 0 + +func _pressed() -> void: + var links: Array[FileItem] = [] # map doesnt work with typed arrays + var selected_dup: Array[TrackObject] = [] + var positions: PackedVector3Array = [] + selected_dup.resize(len(editor.selected)) + positions.resize(len(editor.selected)) + links.resize(len(editor.selected)) + var first_p := editor.selected[0].live_node.global_position + for i in len(editor.selected): + positions[i] = editor.selected[i].live_node.global_position - first_p + links[i] = editor.selected[i].link + selected_dup[i] = editor.selected[i].dup() + force_drag( + [selected_dup, positions], + %items.make_drag_preview(Items.get_thumbs(links)) + ) |