class_name Player
extends CharacterBody3D
-
# signals
signal camera_lockon
@export_range(0.0, 100.0) var camera_lockon_radius := 40.0
@export_enum("locked", "unlocked") var camera_mode: String
@export_range(0.0, 50.0) var lockon_sensitivity := 0.2
-@export_range(0.0, 1.0) var mouse_sensitivity := 0.25
+@export_range(0.0, 1.0) var mouse_sensitivity := 0.15
@export_range(0.0, 10.0) var joystick_sensitivity_x := 4.0
@export_range(0.0, 10.0) var joystick_sensitivity_y := 2.0
# class variables
var _player_speed := walk_speed
var _camera_input_direction := Vector2.ZERO
-var _last_movement_direction := rotation
+var _last_movement_direction := -rotation
var _idle_time := 0.0
var _camera_lockon_node: Node3D = null
var _lockon_direction: Vector3 = Vector3.ZERO
_debug.stats.add_property(self, "velocity", "")
_debug.stats.add_property(self, "_idle_time", "round")
_debug.stats.add_property(self, "_lockon_shift", "round")
- _debug.stats.add_property(self, "_head_track_to", "")
_debug.stats.add_property(self, "_head_track_arr", "")
elif event is InputEventJoypadMotion:
_camera_input_method = CAMERA_JOYSTICK_INPUT
_camera_input_direction = Input.get_vector("camera-left", "camera-right", "camera-up", "camera-down")
- if _camera_input_direction == Vector2.ZERO:
- _lockon_shift = LOCKON_CENTER
_camera_input_direction *= Vector2(joystick_sensitivity_x, -joystick_sensitivity_y)
+
+ if _camera_input_direction == Vector2.ZERO:
+ _lockon_shift = LOCKON_CENTER
# class functions
func _on_head_turn_area_entered(area: Area3D) -> void:
- for node in area.get_parent().get_children().filter(func(c): return c.is_in_group("player_head_turn")):
+ for node in area.get_parent().get_children().filter(func(c): return c.is_in_group("player-headTrack")):
var i = _head_track_arr.find(node)
if i < 0:
_head_track_arr.append(node)
func _on_head_turn_area_exited(area: Area3D) -> void:
- for node in area.get_parent().get_children().filter(func(c): return c.is_in_group("player_head_turn")):
+ for node in area.get_parent().get_children().filter(func(c): return c.is_in_group("player-headTrack")):
var i = _head_track_arr.find(node)
if i >= 0:
_head_track_arr.remove_at(i)