... Maybe I was thinking too hard about managing the levels.
I'm currently managing my levels for my platformer game. Right now, I'm using numbers to label the levels.
Why didn't I use themes? Because of how the level change function works.
SceneManager.gd
extends Node
export var start_menu: PackedScene
export var main_menu: PackedScene
export var settings: PackedScene
export (Array, PackedScene) var levels
func change_to_main_menu() -> void:
get_tree().change_scene_to(main_menu)
func change_to_settings() -> void:
get_tree().change_scene_to(settings)
func change_level(level_index: int) -> void:
var selected_level: PackedScene = levels[level_index]
get_tree().change_scene_to(selected_level)
BaseLevel.gd
extends Node2D
export var level_index: int
func level_clear() -> void:
SceneManager.change_level(level_index + 1)
Basically, the level change based on the index. If the level is level 1, it will change to level 2.
Because of that, I labeled the level by numbers (Level01, Level02, etc.).
Levels (array)
-Level01
-Level02
-Level03
...
But as I mentioned, I was thinking too hard. I should have just assigned level index 6 to Sand01 and be done with it.
Levels (array)
-Grass01 (Level Index 1)
-Grass02 (Level Index 2)
-Sand01 (Level Index 3)
Yeah... I can be so stubborn that I forget it's just a simple thing to do.