|
|
@ -1,28 +0,0 @@ |
|
|
|
extends "res://player.gd" |
|
|
|
|
|
|
|
const wallride_speed = 2 |
|
|
|
|
|
|
|
master func _integrate_forces(state): |
|
|
|
._integrate_forces(state) |
|
|
|
wallride(state) |
|
|
|
|
|
|
|
func wallride(state): |
|
|
|
var ray = get_node("Ray") |
|
|
|
# If our feet aren't touching, but we are colliding, we are wall-riding |
|
|
|
if !ray.is_colliding() and get_colliding_bodies(): |
|
|
|
print("riding") |
|
|
|
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] |
|
|
|
#var n = -1 * (state.get_transform() * state.get_contact_local_normal(0)) |
|
|
|
#direction = n.slide(direction) * wallride_speed |
|
|
|
direction *= 0.1 |
|
|
|
set_gravity_scale(-0.1) |
|
|
|
apply_impulse(Vector3(), direction) |
|
|
|
state.integrate_forces() |
|
|
|
else: |
|
|
|
# We need to return to falling (we aren't riding anymore) |
|
|
|
set_gravity_scale(1) |