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