diff options
| -rw-r--r-- | client/Archipelago/client.gd | 4 | ||||
| -rw-r--r-- | client/Archipelago/manager.gd | 17 | ||||
| -rw-r--r-- | client/Archipelago/player.gd | 7 |
3 files changed, 27 insertions, 1 deletions
| diff --git a/client/Archipelago/client.gd b/client/Archipelago/client.gd index 4c34e91..7b690f5 100644 --- a/client/Archipelago/client.gd +++ b/client/Archipelago/client.gd | |||
| @@ -353,6 +353,10 @@ func sendLocation(loc_id): | |||
| 353 | sendMessage([{"cmd": "LocationChecks", "locations": [loc_id]}]) | 353 | sendMessage([{"cmd": "LocationChecks", "locations": [loc_id]}]) |
| 354 | 354 | ||
| 355 | 355 | ||
| 356 | func sendLocations(loc_ids): | ||
| 357 | sendMessage([{"cmd": "LocationChecks", "locations": loc_ids}]) | ||
| 358 | |||
| 359 | |||
| 356 | func setValue(key, value, operation = "replace"): | 360 | func setValue(key, value, operation = "replace"): |
| 357 | sendMessage( | 361 | sendMessage( |
| 358 | [ | 362 | [ |
| diff --git a/client/Archipelago/manager.gd b/client/Archipelago/manager.gd index 60b447a..f83d0cc 100644 --- a/client/Archipelago/manager.gd +++ b/client/Archipelago/manager.gd | |||
| @@ -16,6 +16,8 @@ var client | |||
| 16 | var _localdata_file = "" | 16 | var _localdata_file = "" |
| 17 | var _received_indexes = [] | 17 | var _received_indexes = [] |
| 18 | var _last_new_item = -1 | 18 | var _last_new_item = -1 |
| 19 | var _batch_locations = false | ||
| 20 | var _held_locations = [] | ||
| 19 | 21 | ||
| 20 | signal could_not_connect | 22 | signal could_not_connect |
| 21 | signal connect_status | 23 | signal connect_status |
| @@ -286,8 +288,21 @@ func _client_connected(): | |||
| 286 | emit_signal("ap_connected") | 288 | emit_signal("ap_connected") |
| 287 | 289 | ||
| 288 | 290 | ||
| 291 | func start_batching_locations(): | ||
| 292 | _batch_locations = true | ||
| 293 | |||
| 294 | |||
| 289 | func send_location(loc_id): | 295 | func send_location(loc_id): |
| 290 | client.sendLocation(loc_id) | 296 | if _batch_locations: |
| 297 | _held_locations.append(loc_id) | ||
| 298 | else: | ||
| 299 | client.sendLocation(loc_id) | ||
| 300 | |||
| 301 | |||
| 302 | func stop_batching_locations(): | ||
| 303 | _batch_locations = false | ||
| 304 | client.sendLocations(_held_locations) | ||
| 305 | _held_locations.clear() | ||
| 291 | 306 | ||
| 292 | 307 | ||
| 293 | func colorForItemType(flags): | 308 | func colorForItemType(flags): |
| diff --git a/client/Archipelago/player.gd b/client/Archipelago/player.gd index f6b2539..b23553c 100644 --- a/client/Archipelago/player.gd +++ b/client/Archipelago/player.gd | |||
| @@ -7,6 +7,8 @@ func _ready(): | |||
| 7 | var ap = global.get_node("Archipelago") | 7 | var ap = global.get_node("Archipelago") |
| 8 | var gamedata = global.get_node("Gamedata") | 8 | var gamedata = global.get_node("Gamedata") |
| 9 | 9 | ||
| 10 | ap.start_batching_locations() | ||
| 11 | |||
| 10 | # Set up door locations. | 12 | # Set up door locations. |
| 11 | var map_id = gamedata.map_id_by_name.get(global.map) | 13 | var map_id = gamedata.map_id_by_name.get(global.map) |
| 12 | for door in gamedata.objects.get_doors(): | 14 | for door in gamedata.objects.get_doors(): |
| @@ -124,6 +126,11 @@ func _ready(): | |||
| 124 | 126 | ||
| 125 | super._ready() | 127 | super._ready() |
| 126 | 128 | ||
| 129 | await get_tree().process_frame | ||
| 130 | await get_tree().process_frame | ||
| 131 | |||
| 132 | ap.stop_batching_locations() | ||
| 133 | |||
| 127 | 134 | ||
| 128 | func _set_up_invis_wall(x, y, z, sx, sy, sz): | 135 | func _set_up_invis_wall(x, y, z, sx, sy, sz): |
| 129 | var prefab = preload("res://objects/nodes/block.tscn") | 136 | var prefab = preload("res://objects/nodes/block.tscn") |
