Add sound volume management and language selection
Not all translated yet though
This commit is contained in:
@@ -81,19 +81,22 @@ func _ready():
|
||||
|
||||
get_tree().set_auto_accept_quit(ProjectSettings.get('escoria/main/force_quit'))
|
||||
randomize()
|
||||
save_data.load_settings([self, "settings_loaded"])
|
||||
save_data.check_settings()
|
||||
var settings = save_data.load_settings(null)
|
||||
escoria.settings = parse_json(settings)
|
||||
escoria._on_settings_loaded(escoria.settings)
|
||||
|
||||
printt("Calling resource cache start")
|
||||
resource_cache.start()
|
||||
|
||||
if !ProjectSettings.get_setting("escoria/platform/skip_cache"):
|
||||
scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/curtain"))
|
||||
scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/hud"))
|
||||
|
||||
printt("Cache list ", [scenes_cache_list])
|
||||
for s in scenes_cache_list:
|
||||
if s != null:
|
||||
resource_cache.queue_resource(s, false, true)
|
||||
# if !ProjectSettings.get_setting("escoria/platform/skip_cache"):
|
||||
# scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/curtain"))
|
||||
# scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/hud"))
|
||||
#
|
||||
# printt("Cache list ", [scenes_cache_list])
|
||||
# for s in scenes_cache_list:
|
||||
# if s != null:
|
||||
# resource_cache.queue_resource(s, false, true)
|
||||
set_process(true)
|
||||
|
||||
func _process(delta : float):
|
||||
@@ -736,7 +739,9 @@ func object_exit_scene(name : String):
|
||||
func check_obj(name, cmd):
|
||||
var obj = escoria.esc_runner.get_object(name)
|
||||
if obj == null:
|
||||
escoria.logger.report_errors("", ["Global id "+name+" not found for " + cmd])
|
||||
escoria.logger.report_errors("esc_runner.gd:check_obj()",
|
||||
["Global id "+name+" not found for " + cmd])
|
||||
return false
|
||||
return true
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
extends Script
|
||||
class_name ESCScript
|
||||
|
||||
func get_class():
|
||||
return "ESCScript"
|
||||
|
||||
func _init():
|
||||
pass
|
||||
@@ -10,8 +10,8 @@ var settings
|
||||
|
||||
func save_settings(p_data, p_callback):
|
||||
var f = File.new()
|
||||
f.open("user://settings.bin", File.WRITE)
|
||||
f.store_var(p_data)
|
||||
f.open("user://settings.json", File.WRITE)
|
||||
f.store_string(to_json(p_data))
|
||||
f.close()
|
||||
|
||||
if typeof(p_callback) != typeof(null):
|
||||
@@ -19,21 +19,37 @@ func save_settings(p_data, p_callback):
|
||||
|
||||
return OK
|
||||
|
||||
|
||||
func check_settings():
|
||||
var f = File.new()
|
||||
var error = f.open("user://settings.json", File.READ)
|
||||
if !f.is_open() and error != OK:
|
||||
match error:
|
||||
ERR_FILE_NOT_FOUND:
|
||||
f.close()
|
||||
save_settings(escoria.settings_default, null)
|
||||
|
||||
|
||||
func load_settings(p_callback):
|
||||
var f = File.new()
|
||||
f.open("user://settings.bin", File.READ)
|
||||
if !f.is_open():
|
||||
var error = f.open("user://settings.json", File.READ)
|
||||
if !f.is_open() and error != OK:
|
||||
escoria.logger.report_warnings("save_data.gd:load_settings()",
|
||||
["Failed opening settings file user://settings.json.",
|
||||
"File.open() returned " + error])
|
||||
|
||||
if typeof(p_callback) != typeof(null):
|
||||
p_callback[0].call_deferred(p_callback[1], null)
|
||||
return FAILED
|
||||
|
||||
settings = f.get_var()
|
||||
settings = f.get_as_text()
|
||||
f.close()
|
||||
|
||||
if typeof(p_callback) != typeof(null):
|
||||
p_callback[0].call_deferred(p_callback[1], settings)
|
||||
|
||||
return OK
|
||||
return settings
|
||||
|
||||
|
||||
func _get_fname(p_slot):
|
||||
|
||||
@@ -118,6 +134,7 @@ func load_slot(p_slot, p_callback):
|
||||
|
||||
return OK
|
||||
|
||||
|
||||
func load_autosave(p_callback):
|
||||
if p_callback == null:
|
||||
return FAILED
|
||||
|
||||
Reference in New Issue
Block a user