TestGame/assets/ui/main_ui.gd
2025-02-05 06:33:48 +01:00

49 lines
1.7 KiB
GDScript

extends CanvasLayer
@onready var sprite: SpineSprite = $LaptopMenu/Control/SpineSprite
func _ready() -> void:
GDRx.from_signal(Messagebus.DEBUG_XYZ).subscribe(display_xy).dispose_with(self)
GDRx.from_signal(Messagebus.CHANGE_SCENE).subscribe(display_map).dispose_with(self)
GDRx.from_signal(Messagebus.COCO_STATE).subscribe(display_state).dispose_with(self)
func display_state(name: String) -> void:
var coco_state = "Idle"
var state_label = $Control/MarginContainer/BoxContainer/VBoxContainer/StateLabel
state_label.text = "State:"+name
#$FlipPage.set_shader_parameter("scale", Vector3(100,100,100))
func display_xy(origin: Vector3) -> void:
var xyzlabel = $Control/MarginContainer/BoxContainer/VBoxContainer/XYZLabel
xyzlabel.text = " x:" + str(snapped(origin.x, 0.01)) + \
" y:" + str(snapped(origin.y, 0.01)) + \
" z:" + str(snapped(origin.z, 0.01))
func display_map(name: String) -> void:
var maplabel = $Control/MarginContainer/BoxContainer/VBoxContainer/MapLabel
maplabel.text = "Map: "+name
transition_start()
func transition_start() -> void:
var t = $Transition
GDRx.start_periodic_timer(0.05).\
take(20).\
subscribe(
func(i): t.material.set("shader_parameter/right", clampf((-(1/4)*pow(i, 2))+i+(5/4), -1, 5)),
print,
func(): t.material.set("shader_parameter/right", -1)
).\
dispose_with(self)
await get_tree().create_timer(0.8).timeout
GDRx.start_periodic_timer(0.05).\
take(20).\
subscribe(
func(i): t.material.set("shader_parameter/left", clampf((-(1/4)*pow(i, 2))+i+(5/4), -1, 5)),
print,
func(): t.material.set("shader_parameter/left", -1)
).\
dispose_with(self)