30 lines
591 B
GDScript
30 lines
591 B
GDScript
extends CSGPolygon3D
|
|
|
|
|
|
@export var friction: float
|
|
|
|
@export_group("Node References")
|
|
@export var collision_polygon: CollisionPolygon3D
|
|
|
|
|
|
var _players: Array[Player] = []
|
|
|
|
|
|
func _ready() -> void:
|
|
collision_polygon.polygon = polygon
|
|
collision_polygon.depth = depth
|
|
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
for player in _players:
|
|
player.velocity = lerp(player.velocity, Vector3.ZERO, friction * delta)
|
|
|
|
|
|
func _on_body_entered(body: Node3D) -> void:
|
|
if body is Player:
|
|
_players.append(body)
|
|
|
|
|
|
func _on_body_exited(body: Node3D) -> void:
|
|
if body is Player:
|
|
_players.erase(body)
|