PlayerGhost.gd 852 B

12345678910111213141516171819202122232425262728293031
  1. class_name PlayerGhost
  2. extends Node2D
  3. @onready var sprite: PlayerSprite = $PlayerSprite
  4. static var idx := 0
  5. var recording := []
  6. var current_power_state := ""
  7. func delete() -> void:
  8. idx = 0
  9. func apply_data(data := "") -> void:
  10. if Global.current_level == null:
  11. hide()
  12. return
  13. $Label.visible = SpeedrunHandler.ghost_idx < 60
  14. var values = data.split("=", false)
  15. global_position.x = int(values[0])
  16. global_position.y = int(values[1])
  17. sprite.force_power_state = ["Small", "Big", "Fire"][int(values[2])]
  18. if sprite.force_power_state != current_power_state:
  19. sprite.update()
  20. current_power_state = sprite.force_power_state
  21. sprite.animation = (SpeedrunHandler.anim_list[int(values[3])])
  22. sprite.frame = int(values[4])
  23. sprite.scale.x = int(values[5])
  24. visible = SpeedrunHandler.levels[int(values[6])] == Global.current_level.scene_file_path