extends Node class_name PlayerAction @export var plr_sprite : Sprite2D @export var hand_pivot : Node2D @export var curr_weapon : Node2D @export var machette_pivot : Node2D @export var machette : Node2D var can_attack : bool = true var delta_pos : Vector2 func _process(_delta: float) -> void: if UIConnector.is_inv_open: return var hpos : Vector2 = hand_pivot.get_global_transform_with_canvas().get_origin() var mouse_position : Vector2 = get_viewport().get_mouse_position() delta_pos = mouse_position - hpos var angle = rad_to_deg(atan2(delta_pos.y, delta_pos.x)) - 90 hand_pivot.rotation_degrees = angle if angle <= 0 && angle >= -180: if machette_pivot.rotation_degrees < 0: machette_pivot.rotation_degrees *= -1 if machette.scale.x < 0: machette.scale.x *= -1 elif (angle <= -180 && angle >= -270) || (angle >= 0 && angle <= 90): if machette_pivot.rotation_degrees > 0: machette_pivot.rotation_degrees *= -1 if machette.scale.x > 0: machette.scale.x *= -1 func _input(_event: InputEvent) -> void: if UIConnector.is_inv_open: return if Input.is_action_just_pressed("action") && can_attack: if delta_pos.x < 0 && !plr_sprite.flip_h: $"../PlayerMovement".look_left(true) elif delta_pos.x > 0 && plr_sprite.flip_h: $"../PlayerMovement".look_right(true) curr_weapon.action() can_attack = false $"Cooldown".start() func _on_cooldown_timeout() -> void: can_attack = true