114 lines
3.6 KiB
GDScript
114 lines
3.6 KiB
GDScript
#*****************************************************************************
|
|
# @author MakerYang
|
|
# @site mir2.makeryang.com
|
|
#*****************************************************************************
|
|
|
|
extends Control
|
|
|
|
# 场景资源
|
|
@onready var drag_button: TextureButton = $Background/DragButton
|
|
@onready var close_button: TextureButton = $Background/CloseButton
|
|
@onready var nickname: Label = $Nickname
|
|
@onready var tab_box: Control = $TabBox
|
|
@onready var equip_tab_button: TextureButton = $TabBox/EquipTabButton
|
|
@onready var state_tab_button: TextureButton = $TabBox/StateTabButton
|
|
@onready var attribute_tab_button: TextureButton = $TabBox/AttributeTabButton
|
|
@onready var title_tab_button: TextureButton = $TabBox/TitleTabButton
|
|
@onready var skill_tab_button: TextureButton = $TabBox/SkillTabButton
|
|
@onready var equip_box: Control = $EquipBox
|
|
@onready var men_background: TextureRect = $EquipBox/MenBackground
|
|
@onready var women_background: TextureRect = $EquipBox/WomenBackground
|
|
@onready var state_box: Control = $StateBox
|
|
@onready var attribute_box: Control = $AttributeBox
|
|
@onready var title_box: Control = $TitleBox
|
|
@onready var skill_box: Control = $SkillBox
|
|
|
|
# 场景信号
|
|
signal on_click_signal(type: String, source: bool)
|
|
|
|
# 场景数据
|
|
var parent_node: CanvasLayer
|
|
var current_tab: String = "equip"
|
|
var is_drag: bool = false
|
|
var offset: Vector2 = Vector2.ZERO
|
|
|
|
func _ready() -> void:
|
|
parent_node = get_parent().get_parent()
|
|
visible = false
|
|
equip_box.visible = false
|
|
state_box.visible = false
|
|
attribute_box.visible = false
|
|
title_box.visible = false
|
|
skill_box.visible = false
|
|
|
|
func _process(_delta: float) -> void:
|
|
if parent_node and parent_node.player_data:
|
|
nickname.text = Account.get_player_nickname(parent_node.player_data)
|
|
on_batch_process();
|
|
if current_tab == "equip":
|
|
equip_tab_button.button_pressed = true
|
|
if Account.get_player_gender(parent_node.player_data) == "men":
|
|
men_background.visible = true
|
|
women_background.visible = false
|
|
else:
|
|
men_background.visible = false
|
|
women_background.visible = true
|
|
equip_box.visible = true
|
|
if current_tab == "state":
|
|
state_tab_button.button_pressed = true
|
|
state_box.visible = true
|
|
if current_tab == "attribute":
|
|
attribute_tab_button.button_pressed = true
|
|
attribute_box.visible = true
|
|
if current_tab == "title":
|
|
title_tab_button.button_pressed = true
|
|
title_box.visible = true
|
|
if current_tab == "skill":
|
|
skill_tab_button.button_pressed = true
|
|
skill_box.visible = true
|
|
if is_drag:
|
|
position = get_global_mouse_position() + offset
|
|
|
|
# 面板显示批处理
|
|
func on_batch_process() -> void:
|
|
equip_tab_button.button_pressed = false
|
|
state_tab_button.button_pressed= false
|
|
attribute_tab_button.button_pressed= false
|
|
title_tab_button.button_pressed= false
|
|
skill_tab_button.button_pressed= false
|
|
equip_box.visible = false
|
|
state_box.visible = false
|
|
attribute_box.visible = false
|
|
title_box.visible = false
|
|
skill_box.visible = false
|
|
|
|
# 面板TAB切换事件函数
|
|
func _on_tab_button_pressed(type: String) -> void:
|
|
if parent_node:
|
|
if current_tab != type:
|
|
current_tab = type
|
|
|
|
# 显示事件函数
|
|
func on_show() -> void:
|
|
if parent_node:
|
|
visible = true
|
|
|
|
# 背景按钮按下击事件函数
|
|
func _on_drag_button_button_down() -> void:
|
|
if parent_node:
|
|
if !is_drag:
|
|
on_click_signal.emit("PanelMain", false)
|
|
offset = position - get_global_mouse_position()
|
|
is_drag = true
|
|
|
|
# 背景按钮击事件函数
|
|
func _on_drag_button_button_up() -> void:
|
|
if parent_node:
|
|
is_drag = false
|
|
|
|
# 关闭按钮事件函数
|
|
func _on_close_button_pressed() -> void:
|
|
if parent_node:
|
|
parent_node.on_button_pressed_music()
|
|
visible = false
|