Пример #1
0
    /// <summary>
    /// 设置设备上显示器的内容
    /// </summary>
    /// <param name="informationData"></param>
    internal void SetPanelData(InformationData informationData)
    {
        if (null == m_DisplayText || m_DisplayText.Count <= 0)
        {
            return;
        }
        if (null != m_DisplayMaterial)
        {
            m_DisplayMaterial.color = informationData.PanelColor;
        }
        var displayindex = 0;

        foreach (var item in m_DisplayText)
        {
            if (null != item)
            {
                item.gameObject.SetActive(false);
            }
        }

        for (int i = 0; i < informationData.Contentlist.Count; i++)
        {
            if (informationData.Contentlist[i].IsShowPanel && displayindex < m_DisplayText.Count)
            {
                m_DisplayText[displayindex].gameObject.SetActive(true);
                m_DisplayText[displayindex].text = informationData.Contentlist[i].Name + ":" + informationData.Contentlist[i].Value;
                displayindex++;
            }
        }
    }
Пример #2
0
    /// <summary>
    /// 加载信息
    /// </summary>
    /// <returns></returns>
    private void NewLoadInformationList(string content)
    {
        string[] sr = content.Split(new string[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries);

        m_fTimeIndex = 0;
        if (null == sr || sr.Length <= 0)
        {
            return;
        }
        //解析数据
        m_InformationDataList.Clear();
        m_PublicInformationData             = new InformationData();
        m_PublicInformationData.Contentlist = new List <InfoContent>();
        for (int i = 0; i < sr.Length; i++)
        {
            var _str = Regex.Replace(sr[i], @"[\0]", "");
            AdaptiveInfomationData(_str.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries));
            //AdaptiveInfomationData(_str.Split(';'));
        }
        //显示UI
        //TODO:根据m_EquipmentDataList 找ID添加UI信息
        if (m_InformationDataList.Count > 0)
        {
            ItemManager.GetInstance().LoadInformation(m_InformationDataList);
        }
        if (null != m_ThermographTool)
        {
            m_ThermographTool.SetValue(m_PublicInformationData);
        }
    }
Пример #3
0
 public CEEventMapNotificationItemVM(InformationData data) : base(data)
 {
     NotificationIdentifier = CESettings.Instance != null && CESettings.Instance.EventCaptorCustomTextureNotifications
         ? "ceevent"
         : "vote";
     _randomEvent = ((CEEventMapNotification)data).RandomEvent;
     _onInspect   = OnRandomNotificationInspect;
 }
Пример #4
0
 public CECaptorMapNotificationItemVM(InformationData data) : base(data)
 {
     NotificationIdentifier = CESettings.Instance != null && CESettings.Instance.EventCaptorCustomTextureNotifications
      ? "cecaptor"
      : "death";
     _captorEvent = ((CECaptorMapNotification)data).CaptorEvent;
     _onInspect   = OnCaptorNotificationInspect;
 }
Пример #5
0
 private void reportcontrol_SendInformation(string informationid, string information)
 {
     if (SendReportInformation != null)
     {
         InformationData infor = new InformationData(informationid, information);
         infor.Tag = _message;
         SendReportInformation(this, new DataEventArgs <InformationData>(infor));
     }
 }
Пример #6
0
 internal void Modification(InformationData informationData)
 {
     for (int i = 0; i < m_ItemList.Count; i++)
     {
         DestroyImmediate(m_ItemList[i].gameObject);
     }
     m_ItemList.Clear();
     Initialized(informationData);
 }
Пример #7
0
        /// <summary>
        /// 获取寝室信息
        /// </summary>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <DormitoryViewModel> GetDormitoryAsync(ApplicationDbContext context)
        {
            DormitoryViewModel webModel = new DormitoryViewModel();

            try
            {
                //Source Data List
                var list = await RegisterRepository.GetDormitoryListAsync(context);

                //Return Data List
                var dataList = new List <InformationData>();

                if (list != null && list.Any())
                {
                    foreach (var item in list)
                    {
                        var model = new InformationData
                        {
                            Id            = item.Id.ToString(),
                            Name          = item.Name,
                            BuildingName  = item.BuildingName,
                            Count         = item.Count,
                            Floor         = item.Floor,
                            SelectedCount = item.SelectedCount,
                            Type          = item.BunkName,
                        };
                        dataList.Add(model);
                    }
                }
                webModel.InformationList = dataList;
                var dorm = await RegisterRepository.GetDormitoryAsync(context);

                webModel.IsChosen = dorm != null;

                if (dorm != null)
                {
                    webModel.DormitoryInfo = new DormitoryInfo
                    {
                        BuildingName = dorm.BuildingName,
                        Floor        = (short)dorm.Floor,
                        Id           = dorm.Id.ToString(),
                        Name         = dorm.DormName,
                        Type         = dorm.BunkType,
                        DateTime     = dorm.DateTime.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("获取物品信息列表失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
            }
            return(webModel);
        }
        public MercenaryContractExpiredNotificationItemVM(
            InformationData data,
            Action <MapNotificationItemBaseVM> onRemove)
            : base(data, null, onRemove)
        {
            NotificationIdentifier = "mercenarycontractexpired";

            if (data is MercenaryContractMapNotification mercenaryContractMapNotification)
            {
                MercenaryContractMapNotification = mercenaryContractMapNotification;
                _onInspect = OnMercenaryContractExpiredNotificationInspect;
            }
        }
Пример #9
0
    public void Initialized(InformationData info)
    {
        m_Data = info;
        var list = info.Contentlist;

        m_nTotalInfoCount  = list.Count;
        m_nNormalInfoCount = 0;
        if (null != m_ImageBG)
        {
            info.PanelColor.a = .75f;
            m_ImageBG.color   = info.PanelColor;
        }
        for (int i = 0; i < list.Count; i++)
        {
            if (list[i].Name == "设备名")
            {
                m_NameLabel.text   = list[i].Value;
                m_nTotalInfoCount -= 1;
                continue;
            }
            if (list[i].ViewType == EContentViewType.E_Show)
            {
                m_nNormalInfoCount++;
            }
            if (list[i].Name == "状态")
            {
                switch (list[i].Value)
                {
                case "空闲": list[i].TextColor = Color.gray; break;

                case "正常": list[i].TextColor = Color.green; break;

                case "异常": list[i].TextColor = Color.red; break;
                }
            }
            var obj = GameObject.Instantiate(m_ItemInstance.gameObject) as GameObject;
            var dev = obj.GetComponent <FloatInfoItem>();
            obj.transform.SetParent(m_ListTransform, false);
            dev.SetContent(list[i].Name, list[i].Value, list[i].TextColor);
            obj.SetActive(true);
            dev.IsHide = list[i].ViewType == EContentViewType.E_Hide;
            m_ItemList.Add(dev);
        }
        SetContentHight(m_nNormalInfoCount * m_fHight + ((m_nNormalInfoCount - 1) * m_fSpacing));
        SetHidenItemState(false);
    }
Пример #10
0
    private void AdaptiveInfomationData(string[] strArr)
    {
        if (null == strArr || strArr.Length <= 0)
        {
            return;
        }
        var data = new InformationData();

        data.Contentlist = new List <InfoContent>();
        for (int i = 0; i < strArr.Length; i++)
        {
            if (string.IsNullOrEmpty(strArr[i]))
            {
                continue;
            }
            var optionArr = strArr[i].Split('@');//长度至少为2
            if (null == optionArr || optionArr.Length < 2)
            {
                continue;
            }
            switch (optionArr[0])
            {
            case "ID": data.ID = optionArr[1]; break;

            case "Link": data.Link = optionArr[1]; break;

            default:
            {
                if (optionArr.Length > 2)
                {
                    data.Contentlist.Add(new InfoContent
                        {
                            Name     = optionArr[0],
                            Value    = optionArr[1],
                            ViewType = (EContentViewType)int.Parse(optionArr[2])
                        });
                }
            }
            break;
            }
        }
        m_InformationDataList.Add(data);
    }
Пример #11
0
    /// <summary>
    /// 加载信息
    /// </summary>
    /// <returns></returns>
    private IEnumerator LoadInformationList()
    {
        var path = m_strDataPath + m_strCurSceneDataPath + "/" + DATA_FILENAME_INFO;
        //var www = new WWW(path);
        var www = new WWW(path);

        yield return(www);

        string strAll = System.Text.Encoding.UTF8.GetString(www.bytes);

        if (string.IsNullOrEmpty(strAll))
        {
            //如果无法从网络读取  从本地读测试数据
            Debug.LogError("无法从" + path + " 获取数据,将加载测试数据." + "WWWerror:" + www.error);
        }
        string[] sr = strAll.Split(new string[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries);

        m_fTimeIndex = 0;
        if (null == sr || sr.Length <= 0)
        {
            yield return(0);
        }
        //解析数据
        m_InformationDataList.Clear();
        m_PublicInformationData             = new InformationData();
        m_PublicInformationData.Contentlist = new List <InfoContent>();
        for (int i = 0; i < sr.Length; i++)
        {
            var _str = Regex.Replace(sr[i], @"[\0]", "");
            AdaptiveInfomationData(_str.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries));
            //AdaptiveInfomationData(_str.Split(';'));
        }
        //显示UI
        //TODO:根据m_EquipmentDataList 找ID添加UI信息
        if (m_InformationDataList.Count > 0)
        {
            ItemManager.GetInstance().LoadInformation(m_InformationDataList);
        }
        if (null != m_ThermographTool)
        {
            m_ThermographTool.SetValue(m_PublicInformationData);
        }
    }
Пример #12
0
 internal void SetValue(InformationData infoData)
 {
     if (null == m_TempText || null == m_HumText)
     {
         return;
     }
     if (null == infoData)
     {
         return;
     }
     foreach (var info in infoData.Contentlist)
     {
         if (info.Name == "温度")
         {
             m_TempText.text = info.Name + ":" + info.Value;
         }
         if (info.Name == "湿度")
         {
             m_HumText.text = info.Name + ":" + info.Value;
         }
     }
 }
Пример #13
0
    public void Initialized(InformationData info)
    {
        m_Data = info;
        var list = info.Contentlist;

        m_nTotalInfoCount = list.Count;
        for (int i = 0; i < list.Count; i++)
        {
            if (list[i].ViewType == EContentViewType.E_Show)
            {
                m_nNormalInfoCount++;
            }

            var obj = GameObject.Instantiate(m_ItemInstance.gameObject) as GameObject;
            var dev = obj.GetComponent <FloatInfoItem>();
            obj.transform.SetParent(m_ListTransform, false);
            dev.SetContent(list[i].Name, list[i].Value);
            obj.SetActive(true);
            m_ItemList.Add(dev);
        }
        SetContentHight(m_nNormalInfoCount * m_fHight);
    }
Пример #14
0
    private List <InformationData> getData()
    {
        // Get the last scene: minigame
        string lastScene = GameObject.FindGameObjectWithTag("GameLogic").GetComponent <AIComponent>().getLastGameScene();

        // Get the information data from data object
        List <InformationData> dataList = GameObject.FindGameObjectWithTag("GameLogic").GetComponent <GamesData>().getInformationData();

        List <InformationData> shuffledData = dataList.OrderBy(x => UnityEngine.Random.value).ToList();

        foreach (InformationData d in shuffledData)
        {
            string game = d.getGame();
            print("Game: " + game);
            if (game == lastScene)
            {
                data = d;
                shuffledData.Remove(d);
                return(shuffledData);
            }
        }
        return(shuffledData);
    }
Пример #15
0
        private static void GetNotificationFromData(MapNotificationVM __instance, ref MapNotificationItemBaseVM __result, InformationData data)
        {
            Type type = data.GetType();
            MapNotificationItemBaseVM mapNotification = null;

            if (type == typeof(CECaptorMapNotification))
            {
                Action <MapNotificationItemBaseVM> onRemove = (MapNotificationItemBaseVM item) =>
                {
                    CEHelper.notificationCaptorExists = false;
                    new CESubModule().LoadCampaignNotificationTexture("default");
                    RemoveNotificationItem.Invoke(__instance, new object[] { item });
                };

                mapNotification = new CECaptorMapNotificationItemVM(data);

                FieldInfo fi = mapNotification.GetType().BaseType.GetField("OnRemove", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static);
                if (fi != null)
                {
                    fi.SetValue(mapNotification, onRemove);
                }


                __result = mapNotification;
            }
            else if (type == typeof(CEEventMapNotification))
            {
                Action <MapNotificationItemBaseVM> onRemove = (MapNotificationItemBaseVM item) =>
                {
                    CEHelper.notificationEventExists = false;
                    new CESubModule().LoadCampaignNotificationTexture("default", 1);
                    RemoveNotificationItem.Invoke(__instance, new object[] { item });
                };

                mapNotification = new CEEventMapNotificationItemVM(data);

                FieldInfo fi = mapNotification.GetType().BaseType.GetField("OnRemove", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static);
                if (fi != null)
                {
                    fi.SetValue(mapNotification, onRemove);
                }


                __result = mapNotification;
            }
        }
Пример #16
0
    // Server sent us a packet about all connected clients or an update for all cube positions
    void ProcessServerData(byte[] buffer)
    {
        NetworkReader nr = new NetworkReader(buffer);

        PacketTypeEnum packetType = (PacketTypeEnum)nr.ReadByte();

        switch (packetType)
        {
        case PacketTypeEnum.Position:
            List <PositionData> posList = new List <PositionData>();
            PositionData        p;
            while (nr.Position != buffer.Length)
            {
                p          = new PositionData();
                p.objectId = nr.ReadInt32();
                p.pos      = nr.ReadVector3();
                posList.Add(p);
            }

            // Update game objects
            foreach (var item in clientList)
            {
                if (item.obj == null)
                {
                    continue;
                }
                p = posList.FirstOrDefault(x => x.objectId == item.objectId);
                if (p == null)
                {
                    Debug.Log("Cannot find game object");
                }
                else
                {
                    item.obj.transform.position = p.pos;
                }
            }
            break;

        case PacketTypeEnum.Information:
            List <InformationData> infoList = new List <InformationData>();
            InformationData        info;
            while (nr.Position != buffer.Length)
            {
                info          = new InformationData();
                info.objectId = nr.ReadInt32();
                info.name     = nr.ReadString();
                info.pos      = nr.ReadVector3();
                info.r        = nr.ReadSingle();
                info.g        = nr.ReadSingle();
                info.b        = nr.ReadSingle();
                infoList.Add(info);
            }

            // Remove clients that aren't listed
            foreach (var item in clientList)
            {
                if (item.obj == null)
                {
                    continue;
                }
                info = infoList.FirstOrDefault(x => x.objectId == item.objectId);
                if (info == null)
                {
                    Destroy(item.obj);
                }
            }
            clientList.RemoveAll(x => x.obj == null);     // Note items are set to null only after Update!

            foreach (var item in infoList)
            {
                ClientData cd = clientList.FirstOrDefault(x => x.objectId == item.objectId);
                // Is this new client info?
                if (cd == null)
                {
                    // Create new object
                    GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube);
                    // No CharacterController here!
                    // Set position
                    obj.transform.position = item.pos;
                    // Set color
                    obj.GetComponent <Renderer>().material.color = new Color(item.r, item.g, item.b);

                    cd          = new ClientData();
                    cd.objectId = item.objectId;
                    cd.name     = item.name;
                    cd.obj      = obj;
                    clientList.Add(cd);
                    Debug.Log(string.Format("New client info for {0}", cd.name));
                }
            }
            break;

        default:
            Debug.Log("Unknown packet type");
            break;
        }
    }
Пример #17
0
    private void Update()
    {
        UpdatePos();
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            var data = new InformationData();
            data.ID          = "11";
            data.Contentlist = new List <InfoContent>();
            data.Contentlist.Add(new InfoContent()
            {
                Name     = "aaa",
                Value    = "111",
                ViewType = EContentViewType.E_Show
            });

            data.Contentlist.Add(new InfoContent()
            {
                Name     = "bbb",
                Value    = "222",
                ViewType = EContentViewType.E_Show
            });

            data.Contentlist.Add(new InfoContent()
            {
                Name     = "ccc",
                Value    = "333",
                ViewType = EContentViewType.E_Show
            });

            data.Contentlist.Add(new InfoContent()
            {
                Name     = "aaa1",
                Value    = "a111",
                ViewType = EContentViewType.E_Hide
            });

            data.Contentlist.Add(new InfoContent()
            {
                Name     = "bbb2",
                Value    = "b222",
                ViewType = EContentViewType.E_Hide
            });

            data.Contentlist.Add(new InfoContent()
            {
                Name     = "ccc3",
                Value    = "c333",
                ViewType = EContentViewType.E_Hide
            });
            Initialized(data);
        }

        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            ShowDetail();
        }
        if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            HideDetail();
        }

        if (m_IsAnimRunning)
        {
            m_AnimTimeIndex += Time.deltaTime;

            SetContentHight(UnityEngine.Mathf.Lerp(ContentHight, m_fTargetHight, m_AnimTimeIndex));
            if (m_AnimTimeIndex >= ANIMTIME)
            {
                SetContentHight(m_fTargetHight);
                m_IsAnimRunning = false;
            }
        }
    }
 public static void Postfix(MapNotificationVM __instance, ref MapNotificationItemBaseVM __result, InformationData data)
 {
     // Vanilla didn't found the right type and returned a default one
     if (__result == null || __result.GetType() == typeof(MapNotificationItemBaseVM))
     {
         if (data is MercenaryContractMapNotification)
         {
             var removeNotificationItemDelegate = RemoveNotificationItemMethod.CreateDelegate(typeof(Action <MapNotificationItemBaseVM>), __instance);
             __result = new MercenaryContractExpiredNotificationItemVM(data, (Action <MapNotificationItemBaseVM>)removeNotificationItemDelegate);
         }
     }
 }
Пример #19
0
 private void SetDefaults(object obj)
 {
     InformationData.SetDefaultStructure();
     ReloadTables(null);
 }
Пример #20
0
 public static void MapNoticeRemoved(InformationData data) => InformationManager.MapNoticeRemoved(data);
Пример #21
0
 private void ReloadTables(object obj)
 {
     InformationData.ReloadTables();
 }
Пример #22
0
    private void AdaptiveInfomationData(string[] strArr)
    {
        if (null == strArr || strArr.Length <= 0)
        {
            return;
        }
        var data = new InformationData();

        data.Contentlist = new List <InfoContent>();
        bool m_isPublic = false;

        for (int i = 0; i < strArr.Length; i++)
        {
            if (string.IsNullOrEmpty(strArr[i]))
            {
                continue;
            }
            var optionArr = strArr[i].Split(new char[] { '@' }, System.StringSplitOptions.RemoveEmptyEntries);//长度至少为2
            //var optionArr = strArr[i].Split('@');//长度至少为2
            if (null == optionArr || optionArr.Length < 2)
            {
                continue;
            }

            if (optionArr[0] == "#")//公共信息识别
            {
                var _info = new InfoContent();
                _info.Name  = optionArr[1];
                _info.Value = optionArr[2];
                m_PublicInformationData.Contentlist.Add(_info);
                m_isPublic = true;
            }
            else
            {
                switch (optionArr[0])//单位信息
                {
                case "ID": data.ID = optionArr[1]; break;

                case "Link": data.Link = optionArr[1]; break;

                case "PanelColor": data.PanelColor = TransformHexToRGB(optionArr[1]); break;

                default:
                {
                    if (string.IsNullOrEmpty(optionArr[0]))
                    {
                        continue;
                    }
                    var _info = new InfoContent();
                    _info.Name = optionArr[0];
                    if (optionArr.Length > 1)
                    {
                        _info.Value = optionArr[1];
                    }
                    if (optionArr.Length > 2)
                    {
                        _info.ViewType = (EContentViewType)int.Parse(optionArr[2]);
                    }
                    if (optionArr.Length > 3)
                    {
                        _info.IsShowPanel = optionArr[3] == "1";
                    }
                    if (optionArr.Length > 4)
                    {
                        _info.TextColor = TransformHexToRGB(optionArr[4]);
                    }
                    data.Contentlist.Add(_info);
                }
                break;
                }
            }
        }
        if (!m_isPublic)
        {
            m_InformationDataList.Add(data);
        }
    }
Пример #23
0
 private void AddLecture(object obj)
 {
     InformationData.AddLecture(LectureDate, LectureTopic);
     ReloadTables(null);
 }
Пример #24
0
 private void AddStudent(object obj)
 {
     InformationData.AddStudent(StudentName);
     ReloadTables(null);
 }
Пример #25
0
 private void AddAttendance(object obj)
 {
     InformationData.AddAttendance(AttendanceStudentId, AttendanceLectureId, AttendanceMark);
     ReloadTables(null);
 }