From 1c49d6903fbf9ac4a1d2a7468fb68c3eb05b6579 Mon Sep 17 00:00:00 2001 From: Marco Eibensteiner Date: Sun, 17 Mar 2024 20:14:38 +0100 Subject: [PATCH] Code rework, removed multiple calls of Settings.getValue for GENERAL_TOOL_PRESSURE --- lorien/InfiniteCanvas/Tools/CircleTool.gd | 8 +++++--- lorien/InfiniteCanvas/Tools/LineTool.gd | 12 +++++++----- lorien/InfiniteCanvas/Tools/RectangleTool.gd | 8 +++++--- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/lorien/InfiniteCanvas/Tools/CircleTool.gd b/lorien/InfiniteCanvas/Tools/CircleTool.gd index 454ff787..6dba52e3 100644 --- a/lorien/InfiniteCanvas/Tools/CircleTool.gd +++ b/lorien/InfiniteCanvas/Tools/CircleTool.gd @@ -26,11 +26,13 @@ func tool_event(event: InputEvent) -> void: var should_draw_circle := Input.is_key_pressed(KEY_SHIFT) + var tool_pressure : float = Settings.get_value(Settings.GENERAL_TOOL_PRESSURE) + if event is InputEventMouseMotion: if performing_stroke: _cursor.set_pressure(event.pressure) remove_all_stroke_points() - _make_ellipse(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE), STEP_IN_MOTION, should_draw_circle) + _make_ellipse(tool_pressure, STEP_IN_MOTION, should_draw_circle) # Start + End elif event is InputEventMouseButton: @@ -39,10 +41,10 @@ func tool_event(event: InputEvent) -> void: start_stroke() _start_position_top_left = _cursor.global_position remove_all_stroke_points() - _make_ellipse(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE), STEP_IN_MOTION, should_draw_circle) + _make_ellipse(tool_pressure, STEP_IN_MOTION, should_draw_circle) elif !event.pressed && performing_stroke: remove_all_stroke_points() - _make_ellipse(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE), STEP_STATIC, should_draw_circle) + _make_ellipse(tool_pressure, STEP_STATIC, should_draw_circle) end_stroke() # ------------------------------------------------------------------------------------------------- diff --git a/lorien/InfiniteCanvas/Tools/LineTool.gd b/lorien/InfiniteCanvas/Tools/LineTool.gd index 73a0b261..5da86897 100644 --- a/lorien/InfiniteCanvas/Tools/LineTool.gd +++ b/lorien/InfiniteCanvas/Tools/LineTool.gd @@ -14,6 +14,8 @@ var _tail: Vector2 func tool_event(event: InputEvent) -> void: _cursor.set_pressure(1.0) + var tool_pressure = Settings.get_value(Settings.GENERAL_TOOL_PRESSURE) + # Snap modifier if event is InputEventKey: if event.scancode == KEY_SHIFT: @@ -25,20 +27,20 @@ func tool_event(event: InputEvent) -> void: _cursor.set_pressure(event.pressure) remove_last_stroke_point() if _snapping_enabled: - _tail = _add_point_at_snap_pos(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) + _tail = _add_point_at_snap_pos(tool_pressure) else: - _tail = _add_point_at_mouse_pos(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) + _tail = _add_point_at_mouse_pos(tool_pressure) # Start + End elif event is InputEventMouseButton: if event.button_index == BUTTON_LEFT: if event.pressed: start_stroke() - _head = _add_point_at_mouse_pos(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) - _tail = _add_point_at_mouse_pos(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) + _head = _add_point_at_mouse_pos(tool_pressure) + _tail = _add_point_at_mouse_pos(tool_pressure) elif !event.pressed && performing_stroke: remove_last_stroke_point() - add_subdivided_line(_head, _tail, pressure_curve.interpolate(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE))) + add_subdivided_line(_head, _tail, pressure_curve.interpolate(tool_pressure)) end_stroke() # ------------------------------------------------------------------------------------------------- diff --git a/lorien/InfiniteCanvas/Tools/RectangleTool.gd b/lorien/InfiniteCanvas/Tools/RectangleTool.gd index d205a584..4957b660 100644 --- a/lorien/InfiniteCanvas/Tools/RectangleTool.gd +++ b/lorien/InfiniteCanvas/Tools/RectangleTool.gd @@ -9,11 +9,13 @@ var _start_position_top_left: Vector2 func tool_event(event: InputEvent) -> void: _cursor.set_pressure(1.0) + var tool_pressure = Settings.get_value(Settings.GENERAL_TOOL_PRESSURE) + if event is InputEventMouseMotion: if performing_stroke: _cursor.set_pressure(event.pressure) remove_all_stroke_points() - _make_rectangle(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) + _make_rectangle(tool_pressure) # Start + End elif event is InputEventMouseButton: @@ -21,10 +23,10 @@ func tool_event(event: InputEvent) -> void: if event.pressed: start_stroke() _start_position_top_left = _cursor.global_position - _make_rectangle(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) + _make_rectangle(tool_pressure) elif !event.pressed && performing_stroke: remove_all_stroke_points() - _make_rectangle(Settings.get_value(Settings.GENERAL_TOOL_PRESSURE)) + _make_rectangle(tool_pressure) end_stroke() # -------------------------------------------------------------------------------------------------