a game about throwing hammers made for the github game off
Diffstat (limited to 'levels/LevelManager.gd')
| -rw-r--r-- | levels/LevelManager.gd | 92 |
1 files changed, 46 insertions, 46 deletions
diff --git a/levels/LevelManager.gd b/levels/LevelManager.gd index 02e3816..45bf640 100644 --- a/levels/LevelManager.gd +++ b/levels/LevelManager.gd @@ -32,36 +32,36 @@ var t: SceneTreeTimer var sorted := [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] func _init() -> void: - Globals.levelmanager = self + Globals.levelmanager = self func _exit_tree() -> void: - Globals.levelmanager = null + Globals.levelmanager = null func _ready() -> void: - gen_map() - lvl_position = size / 2 - Events.change_level.connect(go) - print_map_pretty() + gen_map() + lvl_position = size / 2 + Events.change_level.connect(go) + print_map_pretty() ## Goes to the next room in [param to] direction. func go(to: Vector2i) -> void: - completed_levels.append(lvl_position) - if t and t.time_left > 0: - print("skipping door enter") - return - t = get_tree().create_timer(0.1) - lvl_position += to - current_level.queue_free() - current_level = map[lvl_position.y][lvl_position.x].instantiate() as TileMap - var v := Vector2i(128, 128) # center - player.position = Vector2(v - (v * to)).move_toward(v, 24) - player.velocity = Vector2.ZERO - main.call_deferred(&"add_child", current_level) - if lvl_position in completed_levels: - current_level.completed = true - prints("welcome back to", current_level.name) - else: - prints("welcome to", current_level.name) + completed_levels.append(lvl_position) + if t and t.time_left > 0: + print("skipping door enter") + return + t = get_tree().create_timer(0.1) + lvl_position += to + current_level.queue_free() + current_level = map[lvl_position.y][lvl_position.x].instantiate() as TileMap + var v := Vector2i(128, 128) # center + player.position = Vector2(v - (v * to)).move_toward(v, 24) + player.velocity = Vector2.ZERO + main.call_deferred(&"add_child", current_level) + if lvl_position in completed_levels: + current_level.completed = true + prints("welcome back to", current_level.name) + else: + prints("welcome to", current_level.name) ## Prints out the map prettily. ## eg: [codeblock] @@ -73,32 +73,32 @@ func go(to: Vector2i) -> void: ## 15 08 07 08 07 09 ## [/codeblock] func print_map_pretty() -> void: - var string := "" - for row in map: - for item in row: - string += str(item.get_state().get_node_name(0)).substr(0, 2) + " " - string += "\n" - print(string) + var string := "" + for row in map: + for item in row: + string += str(item.get_state().get_node_name(0)).substr(0, 2) + " " + string += "\n" + print(string) ## Split levels into [url=https://kidscancode.org/blog/img/cells_4bit.png]4bit wall[/url] groups. func sort_levels(): - for level in levels: - # property idx 1 is the enabled walls - # if prop is not overriden, default to 0 - var n: int = 0 if level.get_state().get_node_property_count(0) == 1 else level.get_state().get_node_property_value(0, 1) - sorted[n].append(level) + for level in levels: + # property idx 1 is the enabled walls + # if prop is not overriden, default to 0 + var n: int = 0 if level.get_state().get_node_property_count(0) == 1 else level.get_state().get_node_property_value(0, 1) + sorted[n].append(level) ## Generates the maze. func gen_map() -> void: - sort_levels() - maze = Maze.new(size) - maze.image.save_png("res://maze.png") - lvl_position = size / 2 - map.clear() - for row in maze.maze: - var map_row: Array[PackedScene] = [] - for i in row: - map_row.append(sorted[i][randi() % len(sorted[i])]) - map.append(map_row) - map[lvl_position.x][lvl_position.y] = start - world_generated.emit(maze) + sort_levels() + maze = Maze.new(size) + maze.image.save_png("res://maze.png") + lvl_position = size / 2 + map.clear() + for row in maze.maze: + var map_row: Array[PackedScene] = [] + for i in row: + map_row.append(sorted[i][randi() % len(sorted[i])]) + map.append(map_row) + map[lvl_position.x][lvl_position.y] = start + world_generated.emit(maze) |