diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/level_gen.gd | 2 | ||||
-rw-r--r-- | scripts/player.gd | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/scripts/level_gen.gd b/scripts/level_gen.gd index 66f465a..988bace 100644 --- a/scripts/level_gen.gd +++ b/scripts/level_gen.gd @@ -155,6 +155,8 @@ func _ready(): collision_shape.set_shape(col_mesh) var static_body = StaticBody3D.new() + static_body.collision_layer = 0xb101 + static_body.collision_mask = 0xb101 static_body.add_child(collision_shape) static_body.add_child(m) diff --git a/scripts/player.gd b/scripts/player.gd index f6a63a0..2d4db99 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -1,6 +1,5 @@ extends CharacterBody3D - const SPEED = 5.0 const RUN_SPEED = 1.5 * SPEED const JUMP_VELOCITY = 4.5 @@ -90,7 +89,16 @@ func _physics_process(delta): var climb_direction_fwd = Vector3() var climb_direction_right = Vector3() - if is_on_wall() and stamina > 0: + + var valid_climb = false + if is_on_wall(): + for col in get_slide_collision_count(): + var col_obj = get_slide_collision(col) + print(col_obj.get_collider().collision_layer) + if col_obj.get_collider().collision_layer & 0b100: + valid_climb = true + + if valid_climb and stamina > 0: last_wall_direction = get_wall_normal() climbing = true stam_consumption += RUN_CONSUMPTION |