1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-31 15:39:49 +00:00
Pixelorama/src/UI/ToolButtons.gd
Kinwailo 4a668f71f5
Refactoring tools (#281)
* Refactoring tools

* Remove unused code

* Fixed some inferring errors and added translations

* Attempt to fix some Script Errors found in the CI workflow

* Fix bucket crash.

* Fix static type convert.

Co-authored-by: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com>
2020-07-09 15:22:17 +03:00

41 lines
1.2 KiB
GDScript

extends VBoxContainer
# Node, shortcut
onready var tools := [
[$RectSelect, "rectangle_select"],
[$Zoom, "zoom"],
[$ColorPicker, "colorpicker"],
[$Pencil, "pencil"],
[$Eraser, "eraser"],
[$Bucket, "fill"],
[$LightenDarken, "lightdark"],
]
func _ready() -> void:
for t in tools:
t[0].connect("pressed", self, "_on_Tool_pressed", [t[0]])
Global.update_hint_tooltips()
func _input(event : InputEvent) -> void:
if not Global.has_focus:
return
for action in ["undo", "redo", "redo_secondary"]:
if event.is_action_pressed(action):
return
for t in tools: # Handle tool shortcuts
if event.is_action_pressed("right_" + t[1] + "_tool"): # Shortcut for right button (with Alt)
Tools.assign_tool(t[0].name, BUTTON_RIGHT)
elif event.is_action_pressed("left_" + t[1] + "_tool"): # Shortcut for left button
Tools.assign_tool(t[0].name, BUTTON_LEFT)
func _on_Tool_pressed(tool_pressed : BaseButton) -> void:
var button := -1
button = BUTTON_LEFT if Input.is_action_just_released("left_mouse") else button
button = BUTTON_RIGHT if Input.is_action_just_released("right_mouse") else button
if button != -1:
Tools.assign_tool(tool_pressed.name, button)