immersive-home/app/content/ui/menu/edit/edit_menu.gd
2024-05-22 18:38:28 +02:00

51 lines
1.3 KiB
GDScript

extends Node3D
const ButtonScene = preload ("res://content/ui/components/button/button.tscn")
@onready var devices_page = $Devices
@onready var entities_page = $Entities
@onready var spawn_sound = $SpawnSound
var selected_device = R.state(null)
func _ready():
entities_page.selected_device = selected_device
remove_child(entities_page)
devices_page.on_select_device.connect(func(device):
selected_device.value=device
entities_page.page.value=0
)
entities_page.on_select_entity.connect(func(entity_name):
spawn_sound.play()
var entity=App.house.create_entity(entity_name, global_position)
if typeof(entity) == TYPE_BOOL&&entity == false:
EventSystem.notify("Entity is not in Room", EventNotify.Type.INFO)
if entity == null:
EventSystem.notify("This Entity is not supported yet", EventNotify.Type.INFO)
)
entities_page.on_back.connect(func():
selected_device.value=null
)
R.effect(func(_arg):
if selected_device.value == null:
if devices_page.is_inside_tree() == false:
add_child(devices_page)
if entities_page.is_inside_tree():
remove_child(entities_page)
if selected_device.value != null:
if entities_page.is_inside_tree() == false:
add_child(entities_page)
if devices_page.is_inside_tree():
remove_child(devices_page)
)