extends Panel

const PRIBORS_RES    = \
   {'pribor_uf':      'res://scenes/pribor-uf/pribor-uf.tscn',
    'pribor_rtr':     'res://scenes/pribor-rtr/pribor-rtr.tscn',
    'pribor_afsp_l':  'res://scenes/pribor-afsp-l/pribor-afsp-l.tscn',
    'pribor_afsp_r':  'res://scenes/pribor-afsp-r/pribor-afsp-r.tscn',
    'pribor_sch3':    'res://scenes/pribor-sch3/pribor-sch3.tscn',
    'pribor_spt_l':   'res://scenes/pribor-spt-l/pribor-spt-l.tscn',
    'pribor_spt_r':   'res://scenes/pribor-spt-r/pribor-spt-r.tscn',
    'pribor_prd_v_1': 'res://scenes/pribor-prd-v-1/pribor-prd-v-1.tscn',
    'pribor_prd_n_1': 'res://scenes/pribor-prd-n-1/pribor-prd-n-1.tscn',
    'pribor_prd_k_1': 'res://scenes/pribor-prd-k-1/pribor-prd-k-1.tscn',
    'pribor_prd_v_2': 'res://scenes/pribor-prd-v-2/pribor-prd-v-2.tscn',
    'pribor_prd_n_2': 'res://scenes/pribor-prd-n-2/pribor-prd-n-2.tscn',
    'pribor_prd_k_2': 'res://scenes/pribor-prd-k-2/pribor-prd-k-2.tscn',
    'pribor_prd_v_3': 'res://scenes/pribor-prd-v-3/pribor-prd-v-3.tscn',
    'pribor_prd_n_3': 'res://scenes/pribor-prd-n-3/pribor-prd-n-3.tscn',
    'pribor_prd_k_3': 'res://scenes/pribor-prd-k-3/pribor-prd-k-3.tscn',
    'pribor_prd_v_4': 'res://scenes/pribor-prd-v-4/pribor-prd-v-4.tscn',
    'pribor_prd_n_4': 'res://scenes/pribor-prd-n-4/pribor-prd-n-4.tscn',
    'pribor_prd_k_4': 'res://scenes/pribor-prd-k-4/pribor-prd-k-4.tscn'}


func _ready():
    for k in PRIBORS_RES:
        var pribor_node = get_node(k)
        var pribor_sch_path = PRIBORS_RES[k]
        pribor_node.connect('button_up', Callable(self, 'on_pribor_press').bind(pribor_sch_path))


func on_pribor_press(pribor_sch_path):
    clear_obj($pribor_sch)
    var pribor_sch_obj = load(pribor_sch_path)
    assert(pribor_sch_obj)
    var pribor_sch = pribor_sch_obj.instantiate()
    assert(pribor_sch)
    $pribor_sch.add_child(pribor_sch)


func clear_obj(obj: Object):
    var items = obj.get_children()
    for item in items:
        obj.remove_child(item)
        item.free()
