Files
Super-Mario-Bros.-Remastere…/Scripts/Classes/Components/LedgeDetectionCast.gd
2025-09-13 16:30:32 +01:00

24 lines
549 B
GDScript

class_name LedgeDetectionCast
extends RayCast2D
@export var floor_normal := Vector2.UP
@export var ray_length := 24
var floor_direction := 1
var direction := 1
## Hypotenuse = floor_angle
## Opposite = ???
## Adjacent = position.x
func _physics_process(_delta: float) -> void:
target_position.y = ray_length
if floor_normal.x > 0:
floor_direction = 1
elif floor_normal.x < 0:
floor_direction = -1
else:
position.y = -(ray_length / 2.0)
return
position.y = ((-floor_normal.y * (position.x)) * (floor_direction)) - (ray_length / 2.0)