1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 15:01:53 +08:00
Files
Dog-Lynx-And-HCN/scripts/Statemachine/UIState.gd
T
fallingshrimp a29be1e431 feat(UI): 添加物品收集显示功能
- 新增CameraManager脚本用于相机管理
- 在UI场景中添加物品收集容器VBoxContainer
- 扩展ItemShow类支持生成物品显示实例
- 修改EntityBase添加物品收集信号和处理逻辑
- 调整BossBar位置和布局属性
2025-08-28 06:49:50 +08:00

48 lines
1.4 KiB
GDScript

extends CanvasLayer
class_name UIState
@onready var baseball = $"%baseball"
@onready var basketball = $"%basketball"
@onready var apple = $"%apple"
@onready var items = $"%items"
@onready var energyLabel: Label = $"%energy"
@onready var energyMaxLabel: Label = $"%energyMax"
static var player: EntityBase = null
static var bossbar: EntityStateBar
static var currentPanel: FullscreenPanelBase = null
static var panels: Control
static var energyPercent: ColorBar
static var itemCollect: VBoxContainer
func _ready():
bossbar = $"%bossbar"
panels = $"%panels"
energyPercent = $"%percent"
itemCollect = $"%itemCollect"
func _process(_delta):
bossbar.visible = !!bossbar.entity
func _physics_process(_delta):
if is_instance_valid(player):
energyLabel.text = "%.1f" % player.energy
energyMaxLabel.text = "%.1f" % player.fields.get(FieldStore.Entity.MAX_ENERGY)
for i in items.get_children():
var item = i as ItemShow
item.count = player.inventory.get(item.type)
if currentPanel:
WorldManager.rootNode.process_mode = Node.PROCESS_MODE_DISABLED
else:
WorldManager.rootNode.process_mode = Node.PROCESS_MODE_INHERIT
static func setPanel(targetName: String = ""):
currentPanel = null
for panel in panels.get_children():
if panel is FullscreenPanelBase:
if panel.name == targetName:
currentPanel = panel
panel.showPanel()
else:
panel.hidePanel()
static func closeCurrentPanel():
setPanel()