diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2023-11-22 22:13:32 -0500 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2023-11-22 22:13:32 -0500 |
| commit | 4549d52359eab2511cef1e3edd02c41eb34394c7 (patch) | |
| tree | 054b52e90de4d73bb60dcc08d5d33d873c8a1bd0 | |
| parent | 78a0212f1f63679e336630dc18f32d240a0d29bc (diff) | |
| download | lingo-archipelago-4549d52359eab2511cef1e3edd02c41eb34394c7.tar.gz lingo-archipelago-4549d52359eab2511cef1e3edd02c41eb34394c7.tar.bz2 lingo-archipelago-4549d52359eab2511cef1e3edd02c41eb34394c7.zip | |
Preload all scripts in settings_screen
| -rw-r--r-- | Archipelago/client.gd | 12 | ||||
| -rw-r--r-- | Archipelago/load.gd | 14 | ||||
| -rw-r--r-- | Archipelago/settings_screen.gd | 8 |
3 files changed, 24 insertions, 10 deletions
| diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 40fa4db..3cb46d3 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
| @@ -1,5 +1,13 @@ | |||
| 1 | extends Node | 1 | extends Node |
| 2 | 2 | ||
| 3 | var SCRIPT_doorControl | ||
| 4 | var SCRIPT_effects | ||
| 5 | var SCRIPT_location | ||
| 6 | var SCRIPT_mypainting | ||
| 7 | var SCRIPT_notifier | ||
| 8 | var SCRIPT_panel | ||
| 9 | var SCRIPT_uuid | ||
| 10 | |||
| 3 | var ap_server = "" | 11 | var ap_server = "" |
| 4 | var ap_user = "" | 12 | var ap_user = "" |
| 5 | var ap_pass = "" | 13 | var ap_pass = "" |
| @@ -71,8 +79,6 @@ var _location_name_to_id = {} # LINGO only | |||
| 71 | 79 | ||
| 72 | var _remote_version = {"major": 0, "minor": 0, "build": 0} | 80 | var _remote_version = {"major": 0, "minor": 0, "build": 0} |
| 73 | 81 | ||
| 74 | const uuid_util = preload("user://maps/Archipelago/vendor/uuid.gd") | ||
| 75 | |||
| 76 | # TODO: caching per MW/slot, reset between connections | 82 | # TODO: caching per MW/slot, reset between connections |
| 77 | var _authenticated = false | 83 | var _authenticated = false |
| 78 | var _seed = "" | 84 | var _seed = "" |
| @@ -518,7 +524,7 @@ func connectToRoom(): | |||
| 518 | "password": ap_pass, | 524 | "password": ap_pass, |
| 519 | "game": "Lingo", | 525 | "game": "Lingo", |
| 520 | "name": ap_user, | 526 | "name": ap_user, |
| 521 | "uuid": uuid_util.v4(), | 527 | "uuid": SCRIPT_uuid.v4(), |
| 522 | "version": ap_version, | 528 | "version": ap_version, |
| 523 | "items_handling": 0b111, # always receive our items | 529 | "items_handling": 0b111, # always receive our items |
| 524 | "tags": [], | 530 | "tags": [], |
| diff --git a/Archipelago/load.gd b/Archipelago/load.gd index b6d0fba..8360185 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd | |||
| @@ -41,7 +41,7 @@ func _load(): | |||
| 41 | set_gridmap_tile(-3.5, 6.5, 57.5, "MeshInstance5") | 41 | set_gridmap_tile(-3.5, 6.5, 57.5, "MeshInstance5") |
| 42 | 42 | ||
| 43 | var door_scene = load("res://nodes/door.tscn") | 43 | var door_scene = load("res://nodes/door.tscn") |
| 44 | var door_script = load("user://maps/Archipelago/doorControl.gd") | 44 | var door_script = apclient.SCRIPT_doorControl |
| 45 | var wanderer_entrance = door_scene.instance() | 45 | var wanderer_entrance = door_scene.instance() |
| 46 | wanderer_entrance.name = "Door_wanderer_entrance" | 46 | wanderer_entrance.name = "Door_wanderer_entrance" |
| 47 | wanderer_entrance.translation = Vector3(7.5, 5, 53) | 47 | wanderer_entrance.translation = Vector3(7.5, 5, 53) |
| @@ -113,7 +113,7 @@ func _load(): | |||
| 113 | # loaded but the panels haven't been solved from the save file yet. | 113 | # loaded but the panels haven't been solved from the save file yet. |
| 114 | var gamedata = apclient.get_node("Gamedata") | 114 | var gamedata = apclient.get_node("Gamedata") |
| 115 | var panels_parent = self.get_node("Panels") | 115 | var panels_parent = self.get_node("Panels") |
| 116 | var location_script = ResourceLoader.load("user://maps/Archipelago/location.gd") | 116 | var location_script = apclient.SCRIPT_location |
| 117 | for location_id in gamedata.panel_ids_by_location_id.keys(): | 117 | for location_id in gamedata.panel_ids_by_location_id.keys(): |
| 118 | if not (gamedata.classification_by_location_id[location_id] & apclient._location_classification_bit): | 118 | if not (gamedata.classification_by_location_id[location_id] & apclient._location_classification_bit): |
| 119 | continue | 119 | continue |
| @@ -296,7 +296,7 @@ func _load(): | |||
| 296 | 296 | ||
| 297 | if apclient._early_color_hallways: | 297 | if apclient._early_color_hallways: |
| 298 | var painting_scene = load("res://nodes/paintings/dan_L1_gate.tscn") | 298 | var painting_scene = load("res://nodes/paintings/dan_L1_gate.tscn") |
| 299 | var mypainting_script = ResourceLoader.load("user://maps/Archipelago/mypainting.gd") | 299 | var mypainting_script = apclient.SCRIPT_mypainting |
| 300 | 300 | ||
| 301 | var exit_painting = painting_scene.instance() | 301 | var exit_painting = painting_scene.instance() |
| 302 | exit_painting.set_name("color_exit_painting") | 302 | exit_painting.set_name("color_exit_painting") |
| @@ -413,7 +413,7 @@ func _load(): | |||
| 413 | get_node("Doors/Naps Room Doors").add_child(fearless_door) | 413 | get_node("Doors/Naps Room Doors").add_child(fearless_door) |
| 414 | 414 | ||
| 415 | # Set up notifiers for each achievement panel, for the tracker. | 415 | # Set up notifiers for each achievement panel, for the tracker. |
| 416 | var notifier_script = ResourceLoader.load("user://maps/Archipelago/notifier.gd") | 416 | var notifier_script = apclient.SCRIPT_notifier |
| 417 | for panel in gamedata.panels: | 417 | for panel in gamedata.panels: |
| 418 | if "achievement" in panel: | 418 | if "achievement" in panel: |
| 419 | var panel_node = panels_parent.get_node(panel["id"]) | 419 | var panel_node = panels_parent.get_node(panel["id"]) |
| @@ -431,7 +431,7 @@ func _load(): | |||
| 431 | 431 | ||
| 432 | # Attach a script to every panel so that we can do things like conditionally | 432 | # Attach a script to every panel so that we can do things like conditionally |
| 433 | # disable them. | 433 | # disable them. |
| 434 | var panel_script = ResourceLoader.load("user://maps/Archipelago/panel.gd") | 434 | var panel_script = apclient.SCRIPT_panel |
| 435 | for panel in gamedata.panels: | 435 | for panel in gamedata.panels: |
| 436 | var panel_node | 436 | var panel_node |
| 437 | if panel["id"].begins_with("EndPanel"): | 437 | if panel["id"].begins_with("EndPanel"): |
| @@ -462,7 +462,7 @@ func _load(): | |||
| 462 | ) | 462 | ) |
| 463 | 463 | ||
| 464 | # Create the effects node. | 464 | # Create the effects node. |
| 465 | var effects_script = ResourceLoader.load("user://maps/Archipelago/effects.gd") | 465 | var effects_script = apclient.SCRIPT_effects |
| 466 | var effects = effects_script.new() | 466 | var effects = effects_script.new() |
| 467 | effects.set_name("AP_Effects") | 467 | effects.set_name("AP_Effects") |
| 468 | self.add_child(effects) | 468 | self.add_child(effects) |
| @@ -515,7 +515,7 @@ func instantiate_painting(name, scene): | |||
| 515 | new_painting.translation = old_painting.translation | 515 | new_painting.translation = old_painting.translation |
| 516 | new_painting.rotation = old_painting.rotation | 516 | new_painting.rotation = old_painting.rotation |
| 517 | 517 | ||
| 518 | var mypainting_script = ResourceLoader.load("user://maps/Archipelago/mypainting.gd") | 518 | var mypainting_script = apclient.SCRIPT_mypainting |
| 519 | var mps_inst = mypainting_script.new() | 519 | var mps_inst = mypainting_script.new() |
| 520 | mps_inst.set_name("Script") | 520 | mps_inst.set_name("Script") |
| 521 | 521 | ||
| diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 3769809..213bc84 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd | |||
| @@ -17,6 +17,14 @@ func _ready(): | |||
| 17 | apclient_instance.name = "Archipelago" | 17 | apclient_instance.name = "Archipelago" |
| 18 | global.add_child(apclient_instance) | 18 | global.add_child(apclient_instance) |
| 19 | 19 | ||
| 20 | apclient_instance.SCRIPT_doorControl = load("user://maps/Archipelago/doorControl.gd") | ||
| 21 | apclient_instance.SCRIPT_effects = load("user://maps/Archipelago/effects.gd") | ||
| 22 | apclient_instance.SCRIPT_location = load("user://maps/Archipelago/location.gd") | ||
| 23 | apclient_instance.SCRIPT_mypainting = load("user://maps/Archipelago/mypainting.gd") | ||
| 24 | apclient_instance.SCRIPT_notifier = load("user://maps/Archipelago/notifier.gd") | ||
| 25 | apclient_instance.SCRIPT_panel = load("user://maps/Archipelago/panel.gd") | ||
| 26 | apclient_instance.SCRIPT_uuid = load("user://maps/Archipelago/vendor/uuid.gd") | ||
| 27 | |||
| 20 | var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") | 28 | var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") |
| 21 | var apdata_instance = apdata.new() | 29 | var apdata_instance = apdata.new() |
| 22 | apdata_instance.name = "Gamedata" | 30 | apdata_instance.name = "Gamedata" |
