2025-08-26 13:56:12 +08:00
|
|
|
extends CanvasLayer
|
|
|
|
|
class_name UIState
|
|
|
|
|
|
2025-08-26 20:46:02 +08:00
|
|
|
@onready var baseball = $"%baseball"
|
|
|
|
|
@onready var basketball = $"%basketball"
|
2025-08-27 10:23:57 +08:00
|
|
|
@onready var apple = $"%apple"
|
2025-08-27 11:08:11 +08:00
|
|
|
@onready var items = $"%items"
|
|
|
|
|
@onready var energy = $"%energy"
|
2025-08-26 20:46:02 +08:00
|
|
|
|
|
|
|
|
static var player: EntityBase = null
|
2025-08-26 13:56:12 +08:00
|
|
|
static var bossbar: EntityStateBar
|
2025-08-26 22:31:28 +08:00
|
|
|
static var currentPanel: FullscreenPanelBase = null
|
|
|
|
|
static var panels: Control
|
2025-08-26 13:56:12 +08:00
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
|
bossbar = $"%bossbar"
|
2025-08-26 22:31:28 +08:00
|
|
|
panels = $"%panels"
|
2025-08-26 13:56:12 +08:00
|
|
|
func _process(_delta):
|
|
|
|
|
bossbar.visible = !!bossbar.entity
|
2025-08-26 20:46:02 +08:00
|
|
|
func _physics_process(_delta):
|
|
|
|
|
if is_instance_valid(player):
|
2025-08-27 11:08:11 +08:00
|
|
|
energy.text = "%.1f"%player.energy
|
|
|
|
|
for i in items.get_children():
|
|
|
|
|
var item = i as ItemShow
|
|
|
|
|
item.count = player.inventory.get(item.type)
|
2025-08-26 22:31:28 +08:00
|
|
|
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()
|