PickAPathTeleport.gd 600 B

12345678910111213141516171819202122232425
  1. extends Node2D
  2. @export var reset_pos := Vector2.ZERO
  3. signal player_teleported
  4. func on_player_entered(_player: Player) -> void:
  5. if get_child_count() <= 1:
  6. for i in get_tree().get_nodes_in_group("Players"):
  7. teleport_player(i)
  8. return
  9. for i in get_children():
  10. if i is PickAPathPoint:
  11. if not i.crossed:
  12. for x in get_tree().get_nodes_in_group("Players"):
  13. teleport_player(x)
  14. return
  15. queue_free()
  16. func teleport_player(player: Player) -> void:
  17. for i in get_children():
  18. if i is PickAPathPoint:
  19. i.crossed = false
  20. player.teleport_player(reset_pos)
  21. player_teleported.emit()