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

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