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

@ -39,6 +39,15 @@ func _run() -> void:
var canonical_stage := game_ui.get_node(
"UIRoot/CanonicalStage"
) as Control
var gameplay_screen_effects := game_ui.get_node(
"UIRoot/GameplayScreenEffects"
) as Control
var fishing_danger_vignette := game_ui.get_node(
"UIRoot/GameplayScreenEffects/FishingDangerVignette"
) as ColorRect
var gameplay_transient_hud := game_ui.get_node(
"UIRoot/CanonicalStage/GameplayTransientHUD"
) as Control
var chat_ui := game_ui.get_node("UIRoot/ChatUI") as ChatUI
var player_menu := game_ui.get_node(
"UIRoot/CanonicalStage/PlayerMenu"
@ -49,9 +58,15 @@ func _run() -> void:
var hotbar := game_ui.get_node(
"UIRoot/CanonicalStage/Hotbar"
) as HotbarUI
var home_decor_toolbar := game_ui.get_node(
"UIRoot/CanonicalStage/HomeDecorToolbar"
) as HomeDecorToolbar
assert(game_ui.get_node_or_null(
"UIRoot/CanonicalStage/GameplayTransientHUD/EffectStatus"
) == null)
assert(game_ui.get_node_or_null(
"UIRoot/CanonicalStage/GameplayTransientHUD/FishingDangerVignette"
) == null)
var screen_fade := game_ui.get_node("UIRoot/ScreenFade") as Control
var title_screen := game_ui.get_node("UIRoot/TitleScreen") as TitleScreen
var title_content_stage := title_screen.get_node(
@ -71,15 +86,63 @@ func _run() -> void:
root.add_child(presenter)
await process_frame
chat_ui.set_available(true)
var nameplate_layer := chat_ui.get("_nameplate_layer") as Control
var speech_layer := chat_ui.get("_speech_layer") as Control
assert(nameplate_layer != null and nameplate_layer.visible)
assert(speech_layer != null and speech_layer.visible)
home_decor_toolbar.set_active(true)
assert(home_decor_toolbar.visible)
game_ui.call("_on_player_menu_visibility_changed", true)
assert(not chat_ui.is_world_speech_visible())
assert(not nameplate_layer.visible)
assert(not speech_layer.visible)
assert(not home_decor_toolbar.visible)
game_ui.call("_on_player_menu_visibility_changed", false)
assert(chat_ui.is_world_speech_visible())
assert(not nameplate_layer.visible)
assert(speech_layer.visible)
chat_ui.set_available(true)
assert(nameplate_layer.visible)
chat_ui.set_available(false)
assert(not nameplate_layer.visible)
assert(speech_layer.visible)
chat_ui.set_available(true)
assert(nameplate_layer.visible)
chat_ui.set_hud_hidden(true)
assert(not nameplate_layer.visible)
assert(speech_layer.visible)
chat_ui.set_hud_hidden(false)
assert(nameplate_layer.visible)
chat_ui.set_world_nameplates_hud_hidden(true)
assert(not chat_ui.is_hud_hidden())
assert(not nameplate_layer.visible)
assert(speech_layer.visible)
chat_ui.set_world_nameplates_hud_hidden(false)
assert(nameplate_layer.visible)
assert(home_decor_toolbar.visible)
game_ui.set("_storage_open", true)
game_ui.call("_emit_interactive_pointer_ui_changed")
assert(not home_decor_toolbar.visible)
game_ui.call("_on_player_menu_visibility_changed", true)
game_ui.set("_storage_open", false)
game_ui.call("_emit_interactive_pointer_ui_changed")
assert(not home_decor_toolbar.visible)
game_ui.call("_on_player_menu_visibility_changed", false)
assert(home_decor_toolbar.visible)
home_decor_toolbar.set_active(false)
game_ui.set("_gameplay_ui_enabled", true)
game_ui.set("_gameplay_hud_hidden", false)
game_ui.call("_refresh_gameplay_hud_visibility")
assert(gameplay_screen_effects.visible)
assert(gameplay_transient_hud.visible)
game_ui.set("_system_menu_open", true)
game_ui.call("_refresh_gameplay_hud_visibility")
assert(not gameplay_screen_effects.visible)
assert(not gameplay_transient_hud.visible)
game_ui.set("_system_menu_open", false)
game_ui.set("_gameplay_ui_enabled", false)
game_ui.call("_refresh_gameplay_hud_visibility")
chat_ui.set_available(true)
chat_ui.call(
"_set_presentation_state",
ChatUI.PresentationState.EXPANDED,
@ -121,7 +184,16 @@ func _run() -> void:
assert(canonical_stage.position.is_equal_approx(
UIReferencePresentationType.get_stage_position(display_size)
))
assert(gameplay_screen_effects.position.is_equal_approx(Vector2.ZERO))
assert(gameplay_screen_effects.size.is_equal_approx(
expected_visible_size
))
assert(fishing_danger_vignette.position.is_equal_approx(Vector2.ZERO))
assert(fishing_danger_vignette.size.is_equal_approx(
expected_visible_size
))
assert(chat_ui.size.is_equal_approx(expected_visible_size))
assert(nameplate_layer.size.is_equal_approx(expected_visible_size))
assert(screen_fade.size.is_equal_approx(expected_visible_size))
assert(player_menu.position.is_equal_approx(Vector2.ZERO))
assert(player_menu.size.is_equal_approx(