|
extends "res://scripts/player.gd"
|
|
|
|
const wallride_speed = 0.5
|
|
const wallride_speed_necessary = 15
|
|
|
|
func control_player(delta):
|
|
wallride(delta)
|
|
.control_player(delta)
|
|
|
|
func wallride(delta):
|
|
# If our feet aren't touching, but we are colliding, we are wall-riding
|
|
if is_on_wall() and velocity.length() > wallride_speed_necessary:
|
|
var aim = get_node("Yaw").get_global_transform().basis
|
|
var direction = Vector3()
|
|
if Input.is_action_pressed("move_forwards"):
|
|
direction -= aim[2]
|
|
if Input.is_action_pressed("move_backwards"):
|
|
direction += aim[2]
|
|
velocity += direction * wallride_speed
|
|
velocity.y = -gravity # So it's undone in super
|
|
else:
|
|
pass
|
|
# We need to return to falling (we aren't riding anymore)
|