// Copyright 2013-2022 AFI,Inc. All rights reserved

using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

// UI_MainFunction에서 생성하는 버튼들의 스크립트
public class UI_MainFunctionButton : MonoBehaviour {
    private TMP_Text   _text; // 버튼 명(Text)
    private Button     _button; // 버튼 객체
    private string     _buttonName; // 버튼 명

    private BaseGroup  _backendGroup; // 뒤끝 기능
    private Action     _buttonAction; // 버튼 클릭 시 액션
    
    
    public void Initialize(BaseGroup type) {
        _backendGroup = type;
        _buttonName = _backendGroup.GetGroupName(); // 각 자식객체가 설정한 뒤끝 대기능 이름을 받아옴.

        if (_button == null) {
            _button = gameObject.GetComponent<Button>();
            _button.onClick.AddListener(() => UIManager.Instance.SetMainFunctionName(_buttonName));
            _button.onClick.AddListener(() => UIManager.Instance.ResetSubFunction());
            _button.onClick.AddListener(() => UIManager.Instance.ResetRequestUI());
            _button.onClick.AddListener(() => _buttonAction.Invoke());
        }
        
        if (_text == null) {
            _text = gameObject.GetComponentInChildren<TMP_Text>();
        }
        
        _text.text = _buttonName;
        _buttonAction = () => _backendGroup.SetSubFunctionButton();
    }
}