Integrate per-save identity and interaction UI

This commit is contained in:
Alexander Sellite 2026-09-01 17:30:50 -04:00
parent ac82a28f3b
commit 4fda6e97f6
58 changed files with 3471 additions and 461 deletions

View file

@ -48,6 +48,8 @@ func _run_host() -> void:
var profile := main.get_node(
"%NetworkProfilePreferences"
) as NetworkProfilePreferences
var save_manager := main.get("_save_manager") as PlayerSaveManager
assert(save_manager.initialize_new_game())
assert(profile.set_profile_identity(
profile.display_name,
"deep",
@ -55,7 +57,6 @@ func _run_host() -> void:
profile.call_id,
"kim",
))
var save_manager := main.get("_save_manager") as PlayerSaveManager
assert(bool(main.call(
"_apply_world", WorldLayout.STARTER_ISLAND, 1, true
)))
@ -67,7 +68,6 @@ func _run_host() -> void:
assert(local_avatar != null)
assert(local_avatar.get_animalese_voice_id() == "deep")
assert(local_avatar.get_animalese_sample_set_id() == "kim")
assert(save_manager.initialize_new_game())
main.call("_enter_gameplay")
for _frame: int in 4:
await physics_frame
@ -99,6 +99,7 @@ func _run_host() -> void:
await _wait_for_remote_appearance(session, remote_peer_id, changed)
await _wait_for_remote_appearance(session, remote_peer_id, original)
await _wait_for_remote_appearance(session, remote_peer_id, changed)
await _wait_for_remote_title(session, remote_peer_id, "trail guide")
var avatar := main.get_node("%PlayerSpawnService").get_avatar(
remote_peer_id
) as Player
@ -187,6 +188,7 @@ func _run_client() -> void:
service.get_persisted_speech_speed_id(),
service.get_persisted_call_id(),
"kim",
"trail guide",
))
var apply_deadline: int = Time.get_ticks_msec() + 8000
while Time.get_ticks_msec() < apply_deadline and apply_results.is_empty():
@ -196,6 +198,11 @@ func _run_client() -> void:
assert(service.get_persisted_appearance() == changed)
assert(service.get_persisted_voice_id() == "deep")
assert(service.get_persisted_sample_set_id() == "kim")
assert(service.get_persisted_title() == "trail guide")
assert(
session.get_peer_record(session.get_local_peer_id()).title
== "trail guide"
)
assert(Dictionary(session.get("_local_appearance_snapshot")) == changed)
var player := main.get_node("%PlayerSpawnService").get_local_player() as Player
assert(player.get_animalese_voice_id() == "deep")
@ -278,6 +285,20 @@ func _wait_for_remote_appearance(
assert(false, "Timed out waiting for a remote appearance update.")
func _wait_for_remote_title(
session: NetworkSession,
peer_id: int,
expected: String,
) -> void:
var deadline: int = Time.get_ticks_msec() + 8000
while Time.get_ticks_msec() < deadline:
await process_frame
var record := session.get_peer_record(peer_id)
if record != null and record.title == expected:
return
assert(false, "Timed out waiting for a remote player title update.")
func _create_initialized_main() -> Node:
root.size = Vector2i(1280, 720)
var main: Node = MainScene.instantiate()