Skip to content

Commit

Permalink
Implement #429
Browse files Browse the repository at this point in the history
  • Loading branch information
OverloadedOrama committed Nov 11, 2021
1 parent 0c1fcde commit 24d25d4
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 60 deletions.
14 changes: 14 additions & 0 deletions src/Tools/Bucket.gd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
extends BaseTool


var _prev_mode := 0
var _pattern : Patterns.Pattern
var _fill_area := 0
var _fill_with := 0
Expand All @@ -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()
Expand Down
14 changes: 14 additions & 0 deletions src/Tools/ColorPicker.gd
Original file line number Diff line number Diff line change
@@ -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()
Expand Down
14 changes: 14 additions & 0 deletions src/Tools/Pencil.gd
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down
25 changes: 20 additions & 5 deletions src/Tools/Shading.gd
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions src/Tools/Zoom.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ extends BaseTool


var _relative : Vector2
var _prev_zoom_mode := 0
var _prev_mode := 0
var _zoom_mode := 0


Expand All @@ -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


Expand Down
68 changes: 17 additions & 51 deletions src/UI/UI.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 24d25d4

Please sign in to comment.