You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.1 KiB
GDScript

@tool
extends Control
class_name CoreItemSub
@onready var mp_scene: PackedScene = preload("res://scene/ui/item/mp_item.tscn")
@export var is_right: bool:
set(value):
is_right = value
$CoreNameLeft.visible = not value
$CoreNameRight.visible = value
@export var detail_rate: float:
set(value):
detail_rate = value
var panel_left = $CoreNameLeft/CoreNamePanelLeft as TextureRect
var panel_right = $CoreNameRight/CoreNamePanelRight as TextureRect
var label_left = $CoreNameLeft/CoreNameLabelLeft as Label
var label_right = $CoreNameRight/CoreNameLabelRight as Label
var mp_list_left = $CoreNameLeft/CoreMpCostLeft as HBoxContainer
var mp_list_right = $CoreNameRight/CoreMpCostRight as HBoxContainer
panel_left.modulate.a = value
panel_right.modulate.a = value
label_left.modulate.a = value
label_right.modulate.a = value
mp_list_left.modulate.a = value
mp_list_right.modulate.a = value
@onready var icon: TextureRect = $CoreIcon as TextureRect
@onready var slot: TextureRect = $CoreSlot as TextureRect
@onready var icon_empty: Texture2D = load("res://resource/ui/icon/core/empty.png") as Texture2D
func set_info(cfg: CoreCfg):
var label_left = $CoreNameLeft/CoreNameLabelLeft as Label
var label_right = $CoreNameRight/CoreNameLabelRight as Label
var mp_list_left = $CoreNameLeft/CoreMpCostLeft as HBoxContainer
var mp_list_right = $CoreNameRight/CoreMpCostRight as HBoxContainer
if not cfg:
icon.texture = icon_empty
label_left.text = "-"
label_right.text = "-"
set_mp_cost(mp_list_left, 0)
set_mp_cost(mp_list_right, 0)
else:
icon.texture = cfg.get_icon()
label_left.text = cfg.name
label_right.text = cfg.name
set_mp_cost(mp_list_left, cfg.get_mp_cost())
set_mp_cost(mp_list_right, cfg.get_mp_cost())
func set_mp_cost(mp_list: HBoxContainer, value: int):
for child in mp_list.get_children():
child.queue_free()
if value == 0:
var mp_item: MpItemSub = mp_scene.instantiate() as MpItemSub
mp_list.add_child(mp_item)
mp_item.set_active(false)
else:
for i in range(value):
var mp_item: MpItemSub = mp_scene.instantiate() as MpItemSub
mp_list.add_child(mp_item)