Entity movement improvements
This commit is contained in:
@@ -27,6 +27,7 @@ size = Vector3(1.3, 1.3, 1.3)
|
||||
|
||||
[node name="Entity" type="CharacterBody3D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 3
|
||||
script = ExtResource("1_8e8ef")
|
||||
entityId = "35ce980f-3df9-4e09-b365-1a228948cf78"
|
||||
metadata/_custom_type_script = "uid://c8146flooxeue"
|
||||
|
||||
@@ -2,17 +2,13 @@ class_name EntityMovement extends Node
|
||||
|
||||
const GRAVITY = Vector3.DOWN * 100
|
||||
const FRICTION = 0.01
|
||||
const WALK_SPEED_DEFAULT = 8
|
||||
const RUN_SPEED_DEFAULT = 12
|
||||
|
||||
# var _inputDir:Vector2 = Vector2.ZERO
|
||||
# var _running:bool = false
|
||||
const SPEED_DEFAULT = 8
|
||||
const ROTATION_SPEED_DEFAULT = 15.0
|
||||
|
||||
@export var entity:Entity
|
||||
@export var interactingArea:EntityInteractingArea
|
||||
# @export var rotate:Node3D
|
||||
@export var walkSpeed:float = WALK_SPEED_DEFAULT
|
||||
# @export var runSpeed:float = RUN_SPEED_DEFAULT
|
||||
@export var speed:float = SPEED_DEFAULT
|
||||
@export var rotationSpeed:float = ROTATION_SPEED_DEFAULT
|
||||
|
||||
#
|
||||
# Private Methods
|
||||
@@ -21,7 +17,7 @@ func _applyGravity() -> void:
|
||||
if !entity.is_on_floor():
|
||||
entity.velocity += GRAVITY * get_process_delta_time()
|
||||
|
||||
func _applyPlayerMovement(_delta:float):
|
||||
func _applyPlayerMovement(delta:float):
|
||||
# Interactions, may move
|
||||
if Input.is_action_just_pressed("interact") && interactingArea && interactingArea.hasInteraction():
|
||||
interactingArea.interact()
|
||||
@@ -48,9 +44,9 @@ func _applyPlayerMovement(_delta:float):
|
||||
if directionAdjusted.length() <= 0.01:
|
||||
return
|
||||
|
||||
entity.look_at(entity.global_position + directionAdjusted, Vector3.UP)
|
||||
var targetYaw:float = atan2(-directionAdjusted.x, -directionAdjusted.z)
|
||||
entity.rotation.y = lerp_angle(entity.rotation.y, targetYaw, rotationSpeed * delta)
|
||||
|
||||
var speed = walkSpeed
|
||||
entity.velocity.x = directionAdjusted.x * speed
|
||||
entity.velocity.z = directionAdjusted.z * speed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user