79 lines
2.6 KiB
GDScript
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()
|