diff --git a/app/scripts/loading/config_base.gd b/app/scripts/loading/config_base.gd index 3e7efea..271f2e9 100644 --- a/app/scripts/loading/config_base.gd +++ b/app/scripts/loading/config_base.gd @@ -3,11 +3,12 @@ class_name ConfigBase var config: ConfigFile var config_path: String +var load_result: Error func _init(path: String) -> void: config = ConfigFile.new() - config.load(path) + load_result = config.load(path) config_path = path diff --git a/app/scripts/loading/gate_loader.gd b/app/scripts/loading/gate_loader.gd index b1b5340..be9c20b 100644 --- a/app/scripts/loading/gate_loader.gd +++ b/app/scripts/loading/gate_loader.gd @@ -17,6 +17,7 @@ func load_gate(config_url: String) -> void: if config_path.is_empty(): return error(GateEvents.GateError.NOT_FOUND) c_gate = ConfigGate.new(config_path, config_url) + if c_gate.load_result != OK: return error(GateEvents.GateError.INVALID_CONFIG) gate_events.gate_config_loaded_emit(config_url, c_gate) var image_path = await FileDownloader.download(c_gate.image_url) diff --git a/app/scripts/resources/gate_events.gd b/app/scripts/resources/gate_events.gd index c8070ac..7ea852f 100644 --- a/app/scripts/resources/gate_events.gd +++ b/app/scripts/resources/gate_events.gd @@ -15,6 +15,7 @@ signal gate_error(code: GateError) enum GateError { NOT_FOUND, + INVALID_CONFIG, MISSING_PACK, MISSING_LIBS } diff --git a/app/scripts/ui/world/loading_status.gd b/app/scripts/ui/world/loading_status.gd index 86b463f..2ec0a80 100644 --- a/app/scripts/ui/world/loading_status.gd +++ b/app/scripts/ui/world/loading_status.gd @@ -28,6 +28,8 @@ func on_gate_error(code: GateEvents.GateError) -> void: match code: GateEvents.GateError.NOT_FOUND: set_text("Gate not found") + GateEvents.GateError.INVALID_CONFIG: + set_text("Invalid gate config") GateEvents.GateError.MISSING_PACK, GateEvents.GateError.MISSING_LIBS: set_text("Cannot load gate resources") _: