Now also implemented rotation tool.
This commit is contained in:
parent
1e77a3868d
commit
831145dda8
|
@ -4,6 +4,7 @@ class_name SummerDayHandCanvasTool
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
priority = 1
|
priority = 1
|
||||||
|
modifier_layer = 1
|
||||||
|
|
||||||
|
|
||||||
var hand_grabbed = false
|
var hand_grabbed = false
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
extends SummerDayTool
|
||||||
|
class_name SummerDayRotationCanvasTool
|
||||||
|
|
||||||
|
|
||||||
|
var rotation_activated := false
|
||||||
|
var initial_transform: Transform2D
|
||||||
|
var initial_angle: float
|
||||||
|
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
priority = 1
|
||||||
|
modifier_layer = 2
|
||||||
|
|
||||||
|
|
||||||
|
func _check_for_use(event: InputEvent, tool_context: SummerDayToolContext):
|
||||||
|
if event is InputEventMouseButton:
|
||||||
|
if event.button_index == BUTTON_LEFT:
|
||||||
|
if event.is_pressed() and event.shift and event.control:
|
||||||
|
initial_transform = tool_context.canvas_state.canvas_transform
|
||||||
|
var canvas_center = tool_context.canvas_state.rect_size * 0.5
|
||||||
|
initial_angle = event.position.angle_to_point(canvas_center)
|
||||||
|
rotation_activated = true
|
||||||
|
else:
|
||||||
|
rotation_activated = false
|
||||||
|
|
||||||
|
if event is InputEventMouseMotion:
|
||||||
|
return rotation_activated
|
||||||
|
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _run(event: InputEvent, tool_context: SummerDayToolContext):
|
||||||
|
var canvas_center = tool_context.canvas_state.rect_size * 0.5
|
||||||
|
var canvas_transform = initial_transform
|
||||||
|
canvas_transform.origin -= canvas_center
|
||||||
|
var current_angle = event.position.angle_to_point(canvas_center)
|
||||||
|
var rotation_angle = current_angle - initial_angle
|
||||||
|
canvas_transform = canvas_transform.rotated(rotation_angle)
|
||||||
|
canvas_transform.origin += canvas_center
|
||||||
|
tool_context.canvas_state.canvas_transform = canvas_transform
|
|
@ -9,6 +9,7 @@ var initial_mouse_position: Vector2
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
priority = 1
|
priority = 1
|
||||||
|
modifier_layer = 1
|
||||||
|
|
||||||
|
|
||||||
func _check_for_use(event: InputEvent, tool_context: SummerDayToolContext):
|
func _check_for_use(event: InputEvent, tool_context: SummerDayToolContext):
|
||||||
|
|
|
@ -7,6 +7,7 @@ func _init():
|
||||||
SummerDayFreeTransformCanvasTool.new(),
|
SummerDayFreeTransformCanvasTool.new(),
|
||||||
SummerDayHandCanvasTool.new(),
|
SummerDayHandCanvasTool.new(),
|
||||||
SummerDayZoomCanvasTool.new(),
|
SummerDayZoomCanvasTool.new(),
|
||||||
|
SummerDayRotationCanvasTool.new(),
|
||||||
]
|
]
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
|
|
@ -79,6 +79,11 @@ _global_script_classes=[ {
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/summer_day/utilities/math_helper.gd"
|
"path": "res://addons/summer_day/utilities/math_helper.gd"
|
||||||
}, {
|
}, {
|
||||||
|
"base": "SummerDayTool",
|
||||||
|
"class": "SummerDayRotationCanvasTool",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/summer_day/tool/canvas/tools/general_use/rotation.gd"
|
||||||
|
}, {
|
||||||
"base": "Resource",
|
"base": "Resource",
|
||||||
"class": "SummerDayScene",
|
"class": "SummerDayScene",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
|
@ -129,6 +134,7 @@ _global_script_class_icons={
|
||||||
"SummerDayHandCanvasTool": "",
|
"SummerDayHandCanvasTool": "",
|
||||||
"SummerDayMainScreen": "",
|
"SummerDayMainScreen": "",
|
||||||
"SummerDayMathHelper": "",
|
"SummerDayMathHelper": "",
|
||||||
|
"SummerDayRotationCanvasTool": "",
|
||||||
"SummerDayScene": "",
|
"SummerDayScene": "",
|
||||||
"SummerDayTimeline": "",
|
"SummerDayTimeline": "",
|
||||||
"SummerDayTool": "",
|
"SummerDayTool": "",
|
||||||
|
@ -148,10 +154,6 @@ config/icon="res://icon.png"
|
||||||
|
|
||||||
Util="res://addons/summer_day/utilities/math_helper.gd"
|
Util="res://addons/summer_day/utilities/math_helper.gd"
|
||||||
|
|
||||||
[editor_plugins]
|
|
||||||
|
|
||||||
enabled=PoolStringArray( "res://addons/summer_day/plugin.cfg" )
|
|
||||||
|
|
||||||
[gdnative]
|
[gdnative]
|
||||||
|
|
||||||
singletons=[ "res://addons/godot-git-plugin/git_api.gdnlib" ]
|
singletons=[ "res://addons/godot-git-plugin/git_api.gdnlib" ]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user