Files
MakerYang a902dd3de7 new
2024-08-06 18:30:21 +08:00

79 lines
2.6 KiB
GDScript

#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
extends Control
# 场景资源
@onready var background_music: AudioStreamPlayer2D = $BackgroundMusic
@onready var login: Control = $Login
@onready var server: Control = $Server
@onready var role: Control = $Role
@onready var dialog: Control = $Dialog
@onready var dialog_message: Label = $Dialog/DialogMessage
@onready var version: Label = $Version
# 场景预加载资源
@onready var login_background_music: AudioStream = preload("res://assets/common/music/launch.wav")
@onready var server_background_music: AudioStream = preload("res://assets/common/music/launch_server.wav")
@onready var role_background_music: AudioStream = preload("res://assets/common/music/launch_role.wav")
@onready var world_scenes: PackedScene = preload("res://scenes/world/world.tscn")
func _ready() -> void:
version.text = "VERSION:" + Global.get_version()
background_music.stream = login_background_music
background_music.play()
login.visible = true
server.visible = false
role.visible = false
dialog.visible = false
if Global.is_server():
await get_tree().create_timer(0.5).timeout
_on_role_switch_world_signal()
func _on_role_switch_login_signal() -> void:
print("[launch:role:switch:login:signal]")
Account.update_token("")
background_music.stream = login_background_music
background_music.play()
login.visible = true
server.visible = false
role.visible = false
dialog.visible = false
func _on_login_switch_server_signal() -> void:
print("[launch:login:switch:server:signal]")
background_music.stream = server_background_music
background_music.play()
server.on_server()
login.visible = false
server.visible = true
role.visible = false
func _on_server_switch_role_signal(_token: String) -> void:
print("[launch:server:switch:role:signal]")
background_music.stream = role_background_music
background_music.play()
role.on_role(_token)
login.visible = false
server.visible = false
role.visible = true
func _on_role_switch_world_signal() -> void:
print("[launch:role:switch:world:signal]")
get_tree().change_scene_to_packed(world_scenes)
func on_dialog(message: String) -> void:
print("[launch:on_dialog]")
dialog_message.text = message
dialog.visible = true
var tween = get_tree().create_tween()
tween.set_parallel(true)
tween.tween_property(dialog, "visible", false, 0.5).set_delay(2)
func _on_background_music_finished() -> void:
print("[launch:background:music:finished]")
background_music.play()