Cow_Life_Sim_RPG/ControllerManager.gd

39 lines
1.3 KiB
GDScript

extends Node2D
var cowMoveOffset = 20
var mouseMoveSpeed = 300
func _ready():
process_mode = Node.PROCESS_MODE_ALWAYS
func _process(delta):
cow_movement()
mouse_movement(delta)
if Input.is_action_just_released("mouse_click_simulate"):
click()
func mouse_movement(delta):
var mouseMovementVector = Input.get_vector("move_mouse_left", "move_mouse_right", "move_mouse_up", "move_mouse_down")
if mouseMovementVector.length_squared() > 0:
var currentMousePos = DisplayServer.mouse_get_position() - get_window().position
var newMousepos = Vector2(currentMousePos) + (mouseMovementVector * mouseMoveSpeed * delta)
Input.warp_mouse(newMousepos)
func cow_movement():
var cowMovementVector = Input.get_vector("move_cow_left", "move_cow_right", "move_cow_up", "move_cow_down")
if cowMovementVector.length_squared() > 0:
var cow = GameVariables.player
if is_instance_valid(cow) and cow != null:
cow.set_target_position(cow.global_position + (cowMovementVector * cowMoveOffset))
func click():
var mouseEvent = InputEventMouseButton.new()
mouseEvent.position = DisplayServer.mouse_get_position() - get_window().position
mouseEvent.button_index = MOUSE_BUTTON_LEFT
mouseEvent.pressed = true
Input.parse_input_event(mouseEvent)
await get_tree().process_frame
mouseEvent.pressed = false
Input.parse_input_event(mouseEvent)