Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1.  
  2. extends Node
  3.  
  4. #The currently active scene
  5. var currentScene = null
  6. var resource_queue = null
  7. var settings_config_file = null setget , get_config_file
  8.  
  9. var SETTINGS_CONFIG_NAME = "user://settings.cfg"
  10.  
  11. var INTRO_SCENE_NAME = "res://scenes/intro_scene.tscn"
  12. var MENU_SCENE_NAME = "res://scenes/menu_scene.tscn"
  13. var GAME_SCENE_NAME = "res://scenes/game_scene.tscn"
  14.  
  15. func _ready():
  16. #On load set the current scene to the last scene available
  17. currentScene = get_tree().get_root().get_child(get_tree().get_root().get_child_count() -1)
  18. #Demonstrate setting a global variable.
  19. #Globals.set("MAX_POWER_LEVEL",9000)
  20. resource_queue = preload("res://scripts/resource_queue.gd").new()
  21. resource_queue.start()
  22.  
  23. var configFile = get_config_file()
  24.  
  25.  
  26. func queueScene(scene, is_front):
  27. resource_queue.queue_resource(scene, is_front)
  28.  
  29. func cancelScene(scene):
  30. resource_queue.cancel_resource(scene)
  31.  
  32. # create a function to switch between scenes
  33. func switchScene(scene):
  34. #clean up the current scene
  35. if "scene_name" in currentScene:
  36. cancelScene(currentScene.scene_name)
  37. currentScene.queue_free()
  38. #create an instance of our scene
  39. currentScene = resource_queue.get_resource(scene).instance()
  40. # add scene to root
  41. get_tree().get_root().add_child(currentScene)
  42.  
  43. func get_config_file():
  44. var settings_config_file = ConfigFile.new()
  45. var err = settings_config_file.load(SETTINGS_CONFIG_NAME)
  46.  
  47.  
  48.  
  49. return settings_config_file
  50.  
  51. func calculate_tilemap_size(tilemap):
  52. # Get list of all positions where there is a tile
  53. var used_cells = tilemap.get_used_cells()
  54.  
  55. # If there are none, return null result
  56. if used_cells.size() == 0:
  57. return {x=0, y=0, width=0, height=0}
  58.  
  59. # Take first cell as reference
  60. var min_x = used_cells[0].x
  61. var min_y = used_cells[0].y
  62. var max_x = min_x
  63. var max_y = min_y
  64.  
  65. # Find bounds
  66. for i in range(1, used_cells.size()):
  67.  
  68. var pos = used_cells[i]
  69.  
  70. if pos.x < min_x:
  71. min_x = pos.x
  72. elif pos.x > max_x:
  73. max_x = pos.x
  74.  
  75. if pos.y < min_y:
  76. min_y = pos.y
  77. elif pos.y > max_y:
  78. max_y = pos.y
  79.  
  80. # Return resulting bounds
  81. return {
  82. x = min_x,
  83. y = min_y,
  84. width = max_x - min_x + 1,
  85. height = max_y - min_y + 1
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement