immersive-home/content/ui/menu/settings/settings_menu.gd

75 lines
1.9 KiB
GDScript3
Raw Normal View History

2023-11-19 18:28:44 +02:00
extends Node3D
const ball_scene = preload("./ball.tscn")
const credits_scene = preload("./credits.tscn")
2023-11-19 18:28:44 +02:00
2023-11-28 00:46:05 +02:00
@onready var ball_button = $Content/Button
@onready var connection_status = $Content/ConnectionStatus
2023-11-19 18:28:44 +02:00
@onready var input_url = $Content/InputURL
@onready var input_token = $Content/InputToken
@onready var button_connect = $Content/Connect
@onready var credits = $Content/Credits/Clickable
2023-12-10 02:47:21 +02:00
@onready var save = $Content/Save
@onready var clear_save = $Content/ClearSave
@onready var background = $Background
2023-11-19 18:28:44 +02:00
func _ready():
background.visible = false
2023-11-28 00:46:05 +02:00
ball_button.on_button_down.connect(func():
2023-11-19 18:28:44 +02:00
var ball = ball_scene.instantiate()
2023-11-28 00:46:05 +02:00
var controller = XRHelpers.get_right_controller(self)
ball.transform = controller.transform
ball.linear_velocity = -controller.transform.basis.z * 5 + Vector3(0, 5, 0)
2023-11-19 18:28:44 +02:00
get_tree().root.add_child(ball)
)
credits.on_click.connect(func(_event):
var credits_instance = credits_scene.instantiate()
get_tree().root.add_child(credits_instance)
var label = $Content/Credits/Label
credits_instance.global_position = + label.to_global(label.position + Vector3(0.1, 0, -0.15))
)
2024-01-29 13:37:25 +02:00
if Store.settings.is_loaded():
2024-01-27 16:13:43 +02:00
input_url.text = Store.settings.url
input_token.text = Store.settings.token
2024-01-29 13:37:25 +02:00
else:
Store.settings.on_loaded.connect(func():
input_url.text = Store.settings.url
input_token.text = Store.settings.token
)
button_connect.on_button_down.connect(func():
2024-01-25 17:29:33 +02:00
var url = input_url.text
var token = input_token.text
HomeApi.start_adapter("hass_ws", url, token)
2024-01-25 17:29:33 +02:00
Store.settings.url = url
Store.settings.token = token
Store.settings.save_local()
)
2023-12-10 02:47:21 +02:00
save.on_button_down.connect(func():
2024-01-25 17:29:33 +02:00
House.body.save_all_entities()
Store.house.save_local()
2023-12-10 02:47:21 +02:00
)
clear_save.on_button_down.connect(func():
2024-01-25 17:29:33 +02:00
Store.house.clear()
House.body.update_house()
2023-12-10 02:47:21 +02:00
)
HomeApi.on_connect.connect(func():
connection_status.text = "Connected"
)
HomeApi.on_disconnect.connect(func():
connection_status.text = "Disconnected"
)