class_name RoomTemplate extends Node3D var initialised: bool = false var id: State.rooms = State.rooms.NULL var is_active: bool: set(value): is_active = value if is_active and not initialised: start_room() var save_game:SaveGame = null signal proceed(next_scene_path: String) func _ready() -> void: State.room = self State.current_room = id func disable()-> void: is_active = false set_process_input(false) set_process(false) func get_ready(): pass func load(): # Override this function to load the state of the chapter from State.save_game pass func play() -> String: start_room() return await proceed func start_room(): pass func pull_save_state(_save: SaveGame) -> void: pass func save_room(): save_game.save_to_file(get_tree().root.get_texture()) func prepare_transition(): pass func unload(): pass