39 lines
1.3 KiB
GDScript
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)
|