preload.gd 843 B

123456789101112131415161718192021222324252627282930313233
  1. extends Node
  2. var queue
  3. func _ready():
  4. # Initialize.
  5. queue = preload("res://resource_queue.gd").new()
  6. # Call after you instance the class to start the thread.
  7. queue.start()
  8. func _process(_delta):
  9. # Returns true if a resource is done loading and ready to be retrieved.
  10. if queue.is_ready("res://main.tscn"):
  11. set_process(false)
  12. # Returns the fully loaded resource.
  13. var next_scene = queue.get_resource("res://main.tscn").instance()
  14. get_node("/root").add_child(next_scene)
  15. get_node("/root").remove_child(self)
  16. queue_free()
  17. else:
  18. # Get the progress of a resource.
  19. var progress = round(queue.get_progress("res://main.tscn") * 100)
  20. get_node("ProgressBar").set_value(progress)
  21. func _on_Button_button_up():
  22. get_node("Button").hide()
  23. set_process(true)
  24. # Queue a resource.
  25. queue.queue_resource("res://main.tscn", true)