diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-08-28 14:25:50 -0400 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-08-28 14:25:50 -0400 |
| commit | 6fd6d493cd16b41bf88742ff6f4b7635ec3fa67c (patch) | |
| tree | 92bc0bc1559e550e48b507c0925d28f93962d06a /client/Archipelago/manager.gd | |
| parent | aaeb0a4074a58c906b26dac6ee610266062d88be (diff) | |
| download | lingo2-archipelago-6fd6d493cd16b41bf88742ff6f4b7635ec3fa67c.tar.gz lingo2-archipelago-6fd6d493cd16b41bf88742ff6f4b7635ec3fa67c.tar.bz2 lingo2-archipelago-6fd6d493cd16b41bf88742ff6f4b7635ec3fa67c.zip | |
Client is starting to work!
Diffstat (limited to 'client/Archipelago/manager.gd')
| -rw-r--r-- | client/Archipelago/manager.gd | 100 |
1 files changed, 100 insertions, 0 deletions
| diff --git a/client/Archipelago/manager.gd b/client/Archipelago/manager.gd new file mode 100644 index 0000000..35fc8e3 --- /dev/null +++ b/client/Archipelago/manager.gd | |||
| @@ -0,0 +1,100 @@ | |||
| 1 | extends Node | ||
| 2 | |||
| 3 | const my_version = "0.1.0" | ||
| 4 | |||
| 5 | var SCRIPT_client | ||
| 6 | var SCRIPT_locationListener | ||
| 7 | var SCRIPT_uuid | ||
| 8 | |||
| 9 | var ap_server = "" | ||
| 10 | var ap_user = "" | ||
| 11 | var ap_pass = "" | ||
| 12 | var connection_history = [] | ||
| 13 | |||
| 14 | var client | ||
| 15 | |||
| 16 | signal could_not_connect | ||
| 17 | signal connect_status | ||
| 18 | signal ap_connected | ||
| 19 | |||
| 20 | |||
| 21 | func _ready(): | ||
| 22 | client = SCRIPT_client.new() | ||
| 23 | client.SCRIPT_uuid = SCRIPT_uuid | ||
| 24 | |||
| 25 | client.connect("item_received", _process_item) | ||
| 26 | client.connect("could_not_connect", _client_could_not_connect) | ||
| 27 | client.connect("connect_status", _client_connect_status) | ||
| 28 | client.connect("client_connected", _client_connected) | ||
| 29 | |||
| 30 | add_child(client) | ||
| 31 | |||
| 32 | |||
| 33 | func saveSettings(): | ||
| 34 | pass | ||
| 35 | |||
| 36 | |||
| 37 | func connectToServer(): | ||
| 38 | client.connectToServer(ap_server, ap_user, ap_pass) | ||
| 39 | |||
| 40 | |||
| 41 | func getSaveFileName(): | ||
| 42 | return "zzAP_%s_%d" % [client._seed, client._slot] | ||
| 43 | |||
| 44 | |||
| 45 | func disconnect_from_ap(): | ||
| 46 | client.disconnect_from_ap() | ||
| 47 | |||
| 48 | |||
| 49 | func get_item_id_for_door(door_id): | ||
| 50 | var gamedata = global.get_node("Gamedata") | ||
| 51 | var door = gamedata.objects.get_doors()[door_id] | ||
| 52 | if ( | ||
| 53 | door.get_type() == gamedata.SCRIPT_proto.DoorType.EVENT | ||
| 54 | or door.get_type() == gamedata.SCRIPT_proto.DoorType.LOCATION_ONLY | ||
| 55 | or door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR | ||
| 56 | ): | ||
| 57 | return null | ||
| 58 | return gamedata.get_door_ap_id(door_id) | ||
| 59 | |||
| 60 | |||
| 61 | func has_item(item_id): | ||
| 62 | return client.hasItem(item_id) | ||
| 63 | |||
| 64 | |||
| 65 | func _process_item(item_id, _index, _player, _flags): | ||
| 66 | var gamedata = global.get_node("Gamedata") | ||
| 67 | var door_id = gamedata.door_id_by_ap_id.get(item_id, null) | ||
| 68 | if door_id != null and gamedata.get_door_map_name(door_id) == global.map: | ||
| 69 | var receivers = gamedata.get_door_receivers(door_id) | ||
| 70 | var scene = get_tree().get_root().get_node_or_null("scene") | ||
| 71 | if scene != null: | ||
| 72 | for receiver in receivers: | ||
| 73 | var rnode = scene.get_node_or_null(receiver) | ||
| 74 | if rnode != null: | ||
| 75 | rnode.handleTriggered() | ||
| 76 | for painting_id in gamedata.objects.get_doors()[door_id].get_move_paintings(): | ||
| 77 | var painting = gamedata.objects.get_paintings()[painting_id] | ||
| 78 | var pnode = scene.get_node_or_null(painting.get_path() + "/teleportListener") | ||
| 79 | if pnode != null: | ||
| 80 | pnode.handleTriggered() | ||
| 81 | |||
| 82 | |||
| 83 | func _process_message(_message): | ||
| 84 | pass | ||
| 85 | |||
| 86 | |||
| 87 | func _client_could_not_connect(): | ||
| 88 | emit_signal("could_not_connect") | ||
| 89 | |||
| 90 | |||
| 91 | func _client_connect_status(message): | ||
| 92 | emit_signal("connect_status", message) | ||
| 93 | |||
| 94 | |||
| 95 | func _client_connected(): | ||
| 96 | emit_signal("ap_connected") | ||
| 97 | |||
| 98 | |||
| 99 | func send_location(loc_id): | ||
| 100 | client.sendLocation(loc_id) | ||
