about summary refs log tree commit diff stats
path: root/data/maps/the_hinterlands/metadata.txtpb
blob: dd1e627b4988e65c752d6fb5adbf7a472435614e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
display_name: "The Hinterlands"
# I'm not currently planning on shuffling anything in here.
excluded_nodes: "Components/Paintings/C"
excluded_nodes: "Components/Paintings/E"
excluded_nodes: "Components/Paintings/F/F_0"
excluded_nodes: "Components/Paintings/F/F_1"
excluded_nodes: "Components/Paintings/U"
excluded_nodes: "Components/Paintings/U_1"
excluded_nodes: "Components/Paintings/X"
excluded_nodes: "Components/Paintings/z2_1"
excluded_nodes: "Components/Paintings/z2_2"
excluded_nodes: "Components/Warps/worldport3_deco"
excluded_nodes: "Components/Warps/worldport3_deco2"
excluded_nodes: "Components/Warps/worldport3_deco3"
excluded_nodes: "Components/Warps/worldport3_deco4"
excluded_nodes: "Components/Warps/worldport3_deco5"
excluded_nodes: "Panels/G/court"
excluded_nodes: "Panels/J/red"
excluded_nodes: "Panels/K/no"
excluded_nodes: "Panels/L/trick"
excluded_nodes: "Panels/Misc/hi"
excluded_nodes: "Panels/Misc/hint"
excluded_nodes: "Panels/O/oh"
excluded_nodes: "Panels/P/hint"
excluded_nodes: "Panels/Q/gray"
excluded_nodes: "Panels/V/grin"
excluded_nodes: "Panels/Z/art"
excluded_nodes: "Panels/k2/place"
excluded_nodes: "Panels/m2/green"
excluded_nodes: "Panels/o2/orange2"
excluded_nodes: "Panels/p2/foxes"
excluded_nodes: "Panels/u2/open"
excluded_nodes: "Panels/v2/snipe"
ss="k">func _ready(): # Undo the load screen removing our cursor get_tree().get_root().set_disable_input(false) Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) # Increase the WebSocket input buffer size so that we can download large # data packages. ProjectSettings.set_setting("network/limits/websocket_client/max_in_buffer_kb", 8192) # Create the global AP client, if it doesn't already exist. if not global.has_node("Archipelago"): var apclient_script = ResourceLoader.load("user://maps/Archipelago/client.gd") var apclient_instance = apclient_script.new() apclient_instance.name = "Archipelago" global.add_child(apclient_instance) var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") var apdata_instance = apdata.new() apdata_instance.name = "Gamedata" apclient_instance.add_child(apdata_instance) # Let's also inject any scripts we need to inject now. installScriptExtension("user://maps/Archipelago/doorControl.gd") installScriptExtension("user://maps/Archipelago/load.gd") installScriptExtension("user://maps/Archipelago/painting_eye.gd") installScriptExtension("user://maps/Archipelago/painting_scenery.gd") installScriptExtension("user://maps/Archipelago/panelLevelSwitch.gd") installScriptExtension("user://maps/Archipelago/panelEnd.gd") installScriptExtension("user://maps/Archipelago/panelInput.gd") installScriptExtension("user://maps/Archipelago/pause_menu.gd") installScriptExtension("user://maps/Archipelago/worldTransporter.gd") var apclient = global.get_node("Archipelago") apclient.connect("client_connected", self, "connectionSuccessful") apclient.connect("could_not_connect", self, "connectionUnsuccessful") apclient.connect("connect_status", self, "connectionStatus") # Populate textboxes with AP settings. self.get_node("Panel/server_box").text = apclient.ap_server self.get_node("Panel/player_box").text = apclient.ap_user self.get_node("Panel/password_box").text = apclient.ap_pass # Show client version. self.get_node("Panel/title").text = "ARCHIPELAGO (%s)" % apclient.my_version # Increase font size in text boxes. var field_font = DynamicFont.new() field_font.font_data = load("res://fonts/CutiveMono_Regular.ttf") field_font.size = 36 self.get_node("Panel/server_box").add_font_override("font", field_font) self.get_node("Panel/player_box").add_font_override("font", field_font) self.get_node("Panel/password_box").add_font_override("font", field_font) # Adapted from https://gitlab.com/Delta-V-Modding/Mods/-/blob/main/game/ModLoader.gd func installScriptExtension(childScriptPath: String): var childScript = ResourceLoader.load(childScriptPath) # Force Godot to compile the script now. # We need to do this here to ensure that the inheritance chain is # properly set up, and multiple mods can chain-extend the same # class multiple times. # This is also needed to make Godot instantiate the extended class # when creating singletons. # The actual instance is thrown away. childScript.new() var parentScript = childScript.get_base_script() var parentScriptPath = parentScript.resource_path global._print( "ModLoader: Installing script extension: %s <- %s" % [parentScriptPath, childScriptPath] ) childScript.take_over_path(parentScriptPath) func connectionStatus(message): var popup = self.get_node("Panel/AcceptDialog") popup.window_title = "Connecting to Archipelago" popup.dialog_text = message popup.popup_exclusive = true popup.get_ok().visible = false popup.popup_centered() func connectionSuccessful(): var apclient = global.get_node("Archipelago") # Switch to LL1 Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) global.map = "level1" global.save_file = apclient.getSaveFileName() var _discard = get_tree().change_scene("res://scenes/load_screen.tscn") func connectionUnsuccessful(error_message): self.get_node("Panel/connect_button").disabled = false var popup = self.get_node("Panel/AcceptDialog") popup.window_title = "Could not connect to Archipelago" popup.dialog_text = error_message popup.popup_exclusive = true popup.get_ok().visible = true popup.popup_centered()