extends Spatial 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) apclient_instance.SCRIPT_doorControl = load("user://maps/Archipelago/doorControl.gd") apclient_instance.SCRIPT_effects = load("user://maps/Archipelago/effects.gd") apclient_instance.SCRIPT_location = load("user://maps/Archipelago/location.gd") apclient_instance.SCRIPT_multiplayer = load("user://maps/Archipelago/multiplayer.gd") apclient_instance.SCRIPT_mypainting = load("user://maps/Archipelago/mypainting.gd") apclient_instance.SCRIPT_notifier = load("user://maps/Archipelago/notifier.gd") apclient_instance.SCRIPT_panel = load("user://maps/Archipelago/panel.gd") apclient_instance.SCRIPT_pilgrimage_terminator = load("user://maps/Archipelago/pilgrimage_terminator.gd") apclient_instance.SCRIPT_uuid = load("user://maps/Archipelago/vendor/uuid.gd") var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") var apdata_instance = apdata.new() apdata_instance.name = "Gamedata" apclient_instance.add_child(apdata_instance) var extradata = ResourceLoader.load("user://maps/Archipelago/extradata.gd") var extradata_instance = extradata.new() extradata_instance.name = "Extradata" apclient_instance.add_child(extradata_instance) # Let's also inject any scripts we need to inject now. installScriptExtension(apclient_instance.SCRIPT_doorControl) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/load.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_eye.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_scenery.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelLevelSwitch.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelEnd.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelInput.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pause_menu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) installScriptExtension(ResourceLoader.load("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 self.get_node("Panel/confusing_box").pressed = apclient.confusify_world self.get_node("Panel/multiplayer_box").pressed = apclient.enable_multiplayer # 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(childScript: Resource): # 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 = ch
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
# git config --global core.excludesfile '~/.gitignore_global'
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep
/node_modules
/yarn-error.log
/tmux*.log
*.swp
tags
!tags/
.byebug_history
.DS_Store
*.swo
/public/uploads
config/database.yml