diff --git a/src/Tools/Bucket.gd b/src/Tools/Bucket.gd index e4a9b34da..363cd853d 100644 --- a/src/Tools/Bucket.gd +++ b/src/Tools/Bucket.gd @@ -1,6 +1,7 @@ extends BaseTool +var _prev_mode := 0 var _pattern : Patterns.Pattern var _fill_area := 0 var _fill_with := 0 @@ -12,6 +13,19 @@ func _ready() -> void: update_pattern() +func _input(event: InputEvent) -> void: + var options : OptionButton = $FillAreaOptions + + if event.is_action_pressed("ctrl"): + _prev_mode = options.selected + if event.is_action("ctrl"): + options.selected = _prev_mode ^ 1 + _fill_area = options.selected + if event.is_action_released("ctrl"): + options.selected = _prev_mode + _fill_area = options.selected + + func _on_FillAreaOptions_item_selected(index : int) -> void: _fill_area = index update_config() diff --git a/src/Tools/ColorPicker.gd b/src/Tools/ColorPicker.gd index d37bc86ac..cf1e20a74 100644 --- a/src/Tools/ColorPicker.gd +++ b/src/Tools/ColorPicker.gd @@ -1,9 +1,23 @@ extends BaseTool +var _prev_mode := 0 var _color_slot := 0 +func _input(event: InputEvent) -> void: + var options : OptionButton = $ColorPicker/Options + + if event.is_action_pressed("ctrl"): + _prev_mode = options.selected + if event.is_action("ctrl"): + options.selected = _prev_mode ^ 1 + _color_slot = options.selected + if event.is_action_released("ctrl"): + options.selected = _prev_mode + _color_slot = options.selected + + func _on_Options_item_selected(id : int) -> void: _color_slot = id update_config() diff --git a/src/Tools/Pencil.gd b/src/Tools/Pencil.gd index 1e0e7a0e1..327ee78af 100644 --- a/src/Tools/Pencil.gd +++ b/src/Tools/Pencil.gd @@ -1,6 +1,7 @@ extends "res://src/Tools/Draw.gd" +var _prev_mode := false var _last_position := Vector2.INF var _changed := false var _overwrite := false @@ -35,6 +36,19 @@ func _on_FillInside_toggled(button_pressed): save_config() +func _input(event: InputEvent) -> void: + var overwrite_button : CheckBox = $Overwrite + + if event.is_action_pressed("ctrl"): + _prev_mode = overwrite_button.pressed + if event.is_action("ctrl"): + overwrite_button.pressed = !_prev_mode + _overwrite = overwrite_button.pressed + if event.is_action_released("ctrl"): + overwrite_button.pressed = _prev_mode + _overwrite = overwrite_button.pressed + + func get_config() -> Dictionary: var config := .get_config() config["overwrite"] = _overwrite diff --git a/src/Tools/Shading.gd b/src/Tools/Shading.gd index 671db4b23..d5e2b9523 100644 --- a/src/Tools/Shading.gd +++ b/src/Tools/Shading.gd @@ -5,6 +5,7 @@ enum ShadingMode {SIMPLE, HUE_SHIFTING} enum LightenDarken {LIGHTEN, DARKEN} +var _prev_mode := 0 var _last_position := Vector2.INF var _changed := false var _shading_mode : int = ShadingMode.SIMPLE @@ -35,10 +36,10 @@ class LightenDarkenOp extends Drawer.ColorOp: if dst.a == 0: return dst if shading_mode == ShadingMode.SIMPLE: - if strength > 0: + if lighten_or_darken == LightenDarken.LIGHTEN: dst = dst.lightened(strength) - elif strength < 0: - dst = dst.darkened(-strength) + else: + dst = dst.darkened(strength) else: var hue_shift := hue_amount / 360.0 var sat_shift := sat_amount / 100.0 @@ -112,6 +113,21 @@ func _init() -> void: _drawer.color_op = LightenDarkenOp.new() +func _input(event: InputEvent) -> void: + var options : OptionButton = $LightenDarken + + if event.is_action_pressed("ctrl"): + _prev_mode = options.selected + if event.is_action("ctrl"): + options.selected = _prev_mode ^ 1 + _mode = options.selected + _drawer.color_op.lighten_or_darken = _mode + if event.is_action_released("ctrl"): + options.selected = _prev_mode + _mode = options.selected + _drawer.color_op.lighten_or_darken = _mode + + func _on_ShadingMode_item_selected(id : int) -> void: _shading_mode = id _drawer.color_op.shading_mode = id @@ -191,8 +207,7 @@ func update_config() -> void: func update_strength() -> void: - var factor = 1 if _mode == 0 else -1 - _strength = _amount * factor / 100.0 + _strength = _amount / 100.0 _drawer.color_op.hue_amount = _hue_amount _drawer.color_op.sat_amount = _sat_amount diff --git a/src/Tools/Zoom.gd b/src/Tools/Zoom.gd index 1e737c50c..acef296f7 100644 --- a/src/Tools/Zoom.gd +++ b/src/Tools/Zoom.gd @@ -2,7 +2,7 @@ extends BaseTool var _relative : Vector2 -var _prev_zoom_mode := 0 +var _prev_mode := 0 var _zoom_mode := 0 @@ -11,12 +11,12 @@ func _input(event: InputEvent) -> void: _relative = event.relative if event.is_action_pressed("ctrl"): - _prev_zoom_mode = $ModeOptions.selected + _prev_mode = $ModeOptions.selected if event.is_action("ctrl"): - $ModeOptions.selected = _prev_zoom_mode ^ 1 + $ModeOptions.selected = _prev_mode ^ 1 _zoom_mode = $ModeOptions.selected if event.is_action_released("ctrl"): - $ModeOptions.selected = _prev_zoom_mode + $ModeOptions.selected = _prev_mode _zoom_mode = $ModeOptions.selected diff --git a/src/UI/UI.tscn b/src/UI/UI.tscn index ad40cf9e4..3a06e6d7f 100644 --- a/src/UI/UI.tscn +++ b/src/UI/UI.tscn @@ -136,9 +136,7 @@ size_flags_horizontal = 4 size_flags_vertical = 0 script = ExtResource( 1 ) -[node name="RectSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="RectSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_right = 24.0 margin_bottom = 24.0 rect_min_size = Vector2( 24, 24 ) @@ -189,9 +187,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="EllipseSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="EllipseSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 28.0 margin_right = 24.0 margin_bottom = 52.0 @@ -243,9 +239,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="PolygonSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="PolygonSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 56.0 margin_right = 24.0 margin_bottom = 80.0 @@ -297,9 +291,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="ColorSelect" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 84.0 margin_right = 24.0 margin_bottom = 108.0 @@ -351,9 +343,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="MagicWand" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="MagicWand" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 112.0 margin_right = 24.0 margin_bottom = 136.0 @@ -405,9 +395,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Lasso" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Lasso" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 140.0 margin_right = 24.0 margin_bottom = 164.0 @@ -459,9 +447,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Move" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Move" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 168.0 margin_right = 24.0 margin_bottom = 192.0 @@ -513,9 +499,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Zoom" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Zoom" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 196.0 margin_right = 24.0 margin_bottom = 220.0 @@ -567,9 +551,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Pan" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Pan" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 224.0 margin_right = 24.0 margin_bottom = 248.0 @@ -621,9 +603,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorPicker" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="ColorPicker" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 252.0 margin_right = 24.0 margin_bottom = 276.0 @@ -675,9 +655,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Pencil" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Pencil" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 280.0 margin_right = 24.0 margin_bottom = 304.0 @@ -728,9 +706,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Eraser" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Eraser" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 308.0 margin_right = 24.0 margin_bottom = 332.0 @@ -781,9 +757,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Bucket" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Bucket" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 336.0 margin_right = 24.0 margin_bottom = 360.0 @@ -835,9 +809,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Shading" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="Shading" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 364.0 margin_right = 24.0 margin_bottom = 388.0 @@ -889,9 +861,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="LineTool" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="LineTool" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 392.0 margin_right = 24.0 margin_bottom = 416.0 @@ -943,9 +913,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="RectangleTool" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="RectangleTool" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 420.0 margin_right = 24.0 margin_bottom = 444.0 @@ -997,9 +965,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="EllipseTool" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=[ -"UIButtons", -]] +[node name="EllipseTool" type="Button" parent="ToolsAndCanvas/ToolPanel/MarginContainer/PanelContainer/ToolButtons" groups=["UIButtons"]] margin_top = 448.0 margin_right = 24.0 margin_bottom = 472.0