X Tutup
Skip to content

Commit 8a17780

Browse files
Add a MouseMovementInputAction class
1 parent 7df1d98 commit 8a17780

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

addons/keychain/Keychain.gd

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,32 @@ class InputAction:
3131
var group := ""
3232
var global := true
3333

34-
func _init(_display_name := "", _group := "", _global := true):
34+
func _init(_display_name := "", _group := "", _global := true) -> void:
3535
display_name = _display_name
3636
group = _group
3737
global = _global
3838

3939

40+
class MouseMovementInputAction:
41+
extends InputAction
42+
43+
var action_name := &""
44+
var mouse_dir := Vector2.RIGHT
45+
var distance := 1.0:
46+
set(value):
47+
if is_zero_approx(value):
48+
distance = 1.0
49+
else:
50+
distance = value
51+
52+
func get_action_distance(event: InputEvent, exact_match := false) -> float:
53+
if event is InputEventMouseMotion and Input.is_action_pressed(action_name, exact_match):
54+
var relative := (event as InputEventMouseMotion).relative
55+
var relative_dist := relative.length() / distance
56+
return relative.normalized().dot(mouse_dir) * relative_dist
57+
return 0.0
58+
59+
4060
class InputGroup:
4161
var parent_group := ""
4262
var folded := true

0 commit comments

Comments
 (0)
X Tutup