PlayerDetection.gd 554 B

1234567891011121314151617181920
  1. class_name PlayerDetection
  2. extends Area2D
  3. signal player_entered(player: Player)
  4. signal player_exited(player: Player)
  5. func _ready() -> void:
  6. area_entered.connect(on_area_entered)
  7. area_exited.connect(on_area_exited)
  8. func on_area_entered(area: Area2D) -> void:
  9. if area.owner is Player:
  10. player_entered.emit(area.owner)
  11. func on_area_exited(area: Area2D) -> void:
  12. if area.owner is Player:
  13. player_exited.emit(area.owner)
  14. func is_player_in_area() -> bool:
  15. return get_overlapping_areas().any(func(area: Area2D) -> bool: return area.owner is Player)