using AX.MessageSystem;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 仅负责获取开启4G图传的人员数据
/// </summary>
public class GetUsers : MonoBehaviour
{    
    public static List<CloneGameObjInfo> users = new List<CloneGameObjInfo>();       
    void OnEnable()
    {
        getTransferableUsers(); //每次开启图传面板时,先获取所有图传人员
        MessageDispatcher.SendMessage("UpdateTransferUserItems", users); //通知各子面板生成人员item
        MessageDispatcher.AddListener("Update4GTransferUsers", Reset); //一旦有新人员开启图传,重新获取人员列表并通知各子面板生成人员item
    }
    void OnDisable()
    {
        MessageDispatcher.RemoveListener("Update4GTransferUsers", Reset);
    }
    void OnDestroy()
    {
        MessageDispatcher.RemoveListener("Update4GTransferUsers", Reset);
    }
    private void Reset(IMessage obj)
    {
        getTransferableUsers(); //先获取所有图传人员
        MessageDispatcher.SendMessage("UpdateTransferUserItems", users);    //通知各子面板生成人员item    
    }
    public static event Func<List<CloneGameObjInfo>,bool,List<CloneGameObjInfo>> PicTransferableCheck;     
    private void getTransferableUsers()
    {
        //FIXME: 这里不应该新建实例,应当清空
        users.Clear();
        switch (CurrentUserInfo.role)
        {
            case Role.None:
                break;
            case Role.总队指挥中心:
                break;
            case Role.支队指挥中心:
                break;
            case Role.导调组:                
                if (PicTransferableCheck != null)
                {
                    PicTransferableCheck(users,false); //false表示不用检查人员是否为自己下属
                }                
                break;
            case Role.观察团:                
                if (PicTransferableCheck != null)
                {
                    PicTransferableCheck(users,false);
                }
                break;
            case Role.总队指挥:
                if (PicTransferableCheck != null)
                {
                    PicTransferableCheck(users,false);
                }
                break;
            case Role.支队指挥:
                //找自己支队的UserData
                if (PicTransferableCheck != null)
                {
                    PicTransferableCheck(users, true); //true表示需要检查人员是否为自己下属
                }               
                break;
            case Role.大队指挥:
                //找自己大队的UserData
                if (PicTransferableCheck != null)
                {
                    PicTransferableCheck(users, true);
                }
                break;
            case Role.中队指挥:
                //无4G图传功能
                break;
            case Role.战斗班长:
                //无4G图传功能
                break;
            case Role.参谋:
                //可以看所有人的图传
                if (PicTransferableCheck != null)
                {
                    PicTransferableCheck(users,false);
                }
                break;
            default:
                break;
        }
    }    
}