SpinningTurnBlock.gd 542 B

12345678910111213141516171819202122
  1. extends Node2D
  2. const TURN_BLOCK = ("uid://bn651dli8j2rj")
  3. var can_turn_back := false
  4. func _ready() -> void:
  5. $Sprite.frame = 1
  6. func _physics_process(_delta: float) -> void:
  7. if can_turn_back:
  8. if $PlayerDetectionArea.get_overlapping_areas().any(func(area: Area2D) -> bool: return area.owner is Player) == false:
  9. spawn_block()
  10. can_turn_back = false
  11. func on_timeout() -> void:
  12. can_turn_back = true
  13. func spawn_block() -> void:
  14. var block = load(TURN_BLOCK).instantiate()
  15. block.position = position
  16. add_sibling(block)
  17. queue_free()