fx: input extracted to own node
This commit is contained in:
29
evolve-die-repeat/molecular/player_input.gd
Normal file
29
evolve-die-repeat/molecular/player_input.gd
Normal file
@@ -0,0 +1,29 @@
|
||||
extends Node
|
||||
|
||||
|
||||
var target = Vector2.ZERO # should be either Vector2 or Node2D
|
||||
var updating: bool = false
|
||||
var holding_lmb: bool = false
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if event.pressed:
|
||||
# start tracking
|
||||
target = owner.get_global_mouse_position()
|
||||
updating = true
|
||||
else:
|
||||
# stop tracking
|
||||
updating = false
|
||||
|
||||
func _process(delta):
|
||||
if typeof(target) == TYPE_VECTOR2 and updating:
|
||||
target = owner.get_global_mouse_position()
|
||||
|
||||
func get_target_position() -> Vector2:
|
||||
if typeof(target) == TYPE_VECTOR2 or typeof(target) == TYPE_VECTOR3:
|
||||
return target
|
||||
elif "position" in target:
|
||||
return target.position
|
||||
else:
|
||||
return Vector2.ZERO
|
||||
target = Vector2.ZERO # reset target to a Vector2
|
||||
Reference in New Issue
Block a user