generated from krampus/template-godot4
Save-state loading doesn't use cached versions
This commit is contained in:
parent
d14ed8e9ad
commit
37ac6a6461
@ -60,18 +60,26 @@ func _initial_load() -> void:
|
|||||||
## The loading screen will be shown until the scene is loaded.
|
## The loading screen will be shown until the scene is loaded.
|
||||||
func queue_scene(path: String) -> Promise:
|
func queue_scene(path: String) -> Promise:
|
||||||
_unload_content()
|
_unload_content()
|
||||||
return queue_load(path, ScenePromise.new(), "PackedScene").finally(_finish_scene_load)
|
return (
|
||||||
|
queue_load(path, ResourceLoader.CACHE_MODE_REUSE, ScenePromise.new(), "PackedScene")
|
||||||
|
. finally(_finish_scene_load)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
## Queue a resource to be loaded in the background.
|
## Queue a resource to be loaded in the background.
|
||||||
##
|
##
|
||||||
## Returns a `Promise` which can be used to attach callbacks
|
## Returns a `Promise` which can be used to attach callbacks
|
||||||
## which will be called with the resource after it is loaded.
|
## which will be called with the resource after it is loaded.
|
||||||
func queue_load(path: String, promise: Promise = null, type_hint: String = "") -> Promise:
|
func queue_load(
|
||||||
|
path: String,
|
||||||
|
cache_mode: ResourceLoader.CacheMode = ResourceLoader.CACHE_MODE_REUSE,
|
||||||
|
promise: Promise = null,
|
||||||
|
type_hint: String = ""
|
||||||
|
) -> Promise:
|
||||||
if not promise:
|
if not promise:
|
||||||
promise = Promise.new()
|
promise = Promise.new()
|
||||||
_loading_resources[path] = promise
|
_loading_resources[path] = promise
|
||||||
ResourceLoader.load_threaded_request(path, type_hint)
|
ResourceLoader.load_threaded_request(path, type_hint, false, cache_mode)
|
||||||
return promise
|
return promise
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,4 +19,4 @@ static func load_level(level_path: String, save: SaveState = null) -> void:
|
|||||||
|
|
||||||
static func load_save(save_path: String) -> void:
|
static func load_save(save_path: String) -> void:
|
||||||
var chain_load := func(save: SaveState) -> void: load_level(save.level_path, save)
|
var chain_load := func(save: SaveState) -> void: load_level(save.level_path, save)
|
||||||
Game.instance.queue_load(save_path).then(chain_load)
|
Game.instance.queue_load(save_path, ResourceLoader.CACHE_MODE_REPLACE_DEEP).then(chain_load)
|
||||||
|
@ -79,7 +79,9 @@ func on_game_over() -> void:
|
|||||||
# reload the level from the last save
|
# reload the level from the last save
|
||||||
var save_path := current_level.get_save_path()
|
var save_path := current_level.get_save_path()
|
||||||
if FileAccess.file_exists(save_path):
|
if FileAccess.file_exists(save_path):
|
||||||
Game.instance.queue_load(save_path).finally(_reload_saved)
|
Game.instance.queue_load(save_path, ResourceLoader.CACHE_MODE_REPLACE_DEEP).finally(
|
||||||
|
_reload_saved
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
load_level(current_level_scene)
|
load_level(current_level_scene)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user