mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-20 12:33:14 +00:00
Implement #429
This commit is contained in:
parent
0c1fcdea89
commit
24d25d49ea
6 changed files with 83 additions and 60 deletions
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue