Esempio n. 1
0
        /// <summary>
        /// 新版数据
        /// </summary>
        /// <param name="rowInfo"></param>
        /// <param name="parent"></param>
        public ItemRowData(IDictionary <string, object> rowInfo, CreateRoomRuleInfo parent)
        {
            Items  = new List <ItemData>();
            Parent = parent;
            if (rowInfo == null)
            {
                Items = null;
                return;
            }
            Id = rowInfo.ContainsKey("id") ? rowInfo["id"].ToString() : "";
            if (rowInfo.ContainsKey("x"))
            {
                float.TryParse(rowInfo["x"].ToString(), out X);
            }
            if (rowInfo.ContainsKey("y"))
            {
                float.TryParse(rowInfo["y"].ToString(), out Y);
                Y = -Y;
            }
            if (rowInfo.ContainsKey("spacing"))
            {
                var temp = rowInfo["spacing"];
                if (temp != null)
                {
                    float.TryParse(rowInfo["spacing"].ToString(), out Spacing);
                }
            }

            if (!rowInfo.ContainsKey("item"))
            {
                return;
            }
            var row = rowInfo["item"] as List <object>;

            if (row == null)
            {
                return;
            }
            var len = row.Count;

            for (var i = 0; i < len; i++)
            {
                var item     = row[i];
                var itemData = new ItemData(i, item, Parent);
                if (itemData.ShowType < 0)
                {
                    continue;
                }
                Items.Add(itemData);
            }
        }
Esempio n. 2
0
        public GroupData(IDictionary <string, object> groupInfo, CreateRoomRuleInfo parent)
        {
            RowDatas = new List <ItemRowData>();
            Id       = groupInfo.ContainsKey("id") ? groupInfo["id"].ToString() : "";
            Name     = groupInfo.ContainsKey("name") ? groupInfo["name"].ToString() : "";
            if (groupInfo.ContainsKey("cellwidth"))
            {
                float.TryParse(groupInfo["cellwidth"].ToString(), out CellWidth);
            }
            if (groupInfo.ContainsKey("cellheight"))
            {
                float.TryParse(groupInfo["cellheight"].ToString(), out CellHeight);
            }
            if (groupInfo.ContainsKey("nameX"))
            {
                float.TryParse(groupInfo["nameX"].ToString(), out NameX);
            }
            if (groupInfo.ContainsKey("nameY"))
            {
                float.TryParse(groupInfo["nameY"].ToString(), out NameY);
                NameY = -NameY;
            }
            if (groupInfo.ContainsKey("namewidth"))
            {
                int.TryParse(groupInfo["namewidth"].ToString(), out NameWidth);
            }
            OffY   = groupInfo.ContainsKey("offy") ? -float.Parse(groupInfo["offy"].ToString()) : -10;
            Parent = parent;
            if (!groupInfo.ContainsKey("rows"))
            {
                return;
            }
            var rows = groupInfo["rows"] as List <object>;

            if (rows == null)
            {
                return;
            }
            foreach (var row in rows)
            {
                var rowInfo = row as Dictionary <string, object>;
                if (rowInfo == null)
                {
                    continue;
                }
                var rowData = new ItemRowData(rowInfo, Parent);
                RowDatas.Add(rowData);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 旧数据
        /// </summary>
        /// <param name="rowInfo"></param>
        /// <param name="parent"></param>
        public ItemRowData(IList <object> rowInfo, CreateRoomRuleInfo parent)
        {
            Items  = new List <ItemData>();
            Parent = parent;
            if (rowInfo == null)
            {
                Items = null;
                return;
            }
            var len = rowInfo.Count;

            for (var i = 0; i < len; i++)
            {
                var item     = rowInfo[i];
                var itemData = new ItemData(i, item, Parent);
                if (itemData.ShowType < 0)
                {
                    continue;
                }
                Items.Add(itemData);
            }
        }
Esempio n. 4
0
        public GroupData(KeyValuePair <string, object> groups, CreateRoomRuleInfo parent)
        {
            RowDatas = new List <ItemRowData>();
            Name     = groups.Key;
            Parent   = parent;
            var rowlist = groups.Value as List <object>;

            if (rowlist == null)
            {
                return;
            }
            foreach (var row in rowlist)
            {
                var rowInfo = row as List <object>;
                if (rowInfo == null)
                {
                    continue;
                }
                var rowData = new ItemRowData(rowInfo, Parent);
                RowDatas.Add(rowData);
            }
        }
Esempio n. 5
0
        public ItemData(int index, object item, CreateRoomRuleInfo parent)
        {
            Parent = parent;
            Index  = index;
            var itemDict = item as Dictionary <string, object>;

            if (itemDict == null)
            {
                Id      = "";
                Name    = "";
                Type    = RuleItemType.none;
                Key     = "";
                State   = false;
                Value   = "";
                Width   = 0;
                Height  = 0;
                UseItem = "";
                UseNum  = 0;
                Group   = 0;
                Dp      = null;
                Ep      = null;
                Rp      = null;
                Tip     = "";
                return;
            }
            Id           = itemDict.ContainsKey("id") ? itemDict["id"].ToString() : "";
            Name         = itemDict.ContainsKey("name") ? itemDict["name"].ToString() : "";
            Key          = itemDict.ContainsKey("key") ? itemDict["key"].ToString() : "";
            DefaultState = State = itemDict.ContainsKey("state") && itemDict["state"].ToString().ToLower() == "true";
            NeedConvert  = itemDict.ContainsKey("needConvert") && itemDict["needConvert"].ToString().ToLower() == "true";
            Options      = itemDict.ContainsKey("options") ? itemDict["options"].ToString() : "";
            Value        = itemDict.ContainsKey("value") ? itemDict["value"].ToString() : "";
            Width        = itemDict.ContainsKey("width") ? int.Parse(itemDict["width"].ToString()) : 0;
            Height       = itemDict.ContainsKey("height") ? int.Parse(itemDict["height"].ToString()) : 0;
            UseItem      = itemDict.ContainsKey("useitem") ? itemDict["useitem"].ToString() : "";

            if (itemDict.ContainsKey("shownum"))
            {
                UseNum = float.Parse(itemDict["shownum"].ToString());
            }
            else
            {
                UseNum = itemDict.ContainsKey("usenum") ? int.Parse(itemDict["usenum"].ToString()) : 0;
            }
            Group         = itemDict.ContainsKey("group") ? int.Parse(itemDict["group"].ToString()) : 0;
            Size          = itemDict.ContainsKey("fontSize") ? int.Parse(itemDict["fontSize"].ToString()) : 0;
            Dp            = itemDict.ContainsKey("dp") ? itemDict["dp"].ToString().Split(',') : new string[0];
            Ep            = itemDict.ContainsKey("ep") ? itemDict["ep"].ToString().Split(',') : new string[0];
            Rp            = itemDict.ContainsKey("rp") ? itemDict["rp"].ToString().Split(',') : new string[0];
            Range         = itemDict.ContainsKey("range") ? itemDict["range"].ToString().Split(',') : null;
            ShowType      = itemDict.ContainsKey("showtype") ? int.Parse(itemDict["showtype"].ToString()) : 0;
            Type          = itemDict.ContainsKey("type") ? (RuleItemType)Enum.Parse(typeof(RuleItemType), itemDict["type"].ToString()) : RuleItemType.none;
            Validation    = itemDict.ContainsKey("validation") ? (UIInput.Validation)Enum.Parse(typeof(UIInput.Validation), itemDict["validation"].ToString()) : UIInput.Validation.None;
            SliderType    = itemDict.ContainsKey("sliderType") ? (YxECrSliderType)Enum.Parse(typeof(YxECrSliderType), itemDict["sliderType"].ToString()) : YxECrSliderType.Integer;
            Tip           = itemDict.ContainsKey("tip") ? itemDict["tip"].ToString() : "";
            FloatValidity = itemDict.ContainsKey("floatValidity") ? int.Parse(itemDict["floatValidity"].ToString()) : 2;

            if (itemDict.ContainsKey("hide"))
            {
                var hideIds = itemDict["hide"].ToString().Split(',');
                parent.AddHideIds(Id, hideIds);
            }
            switch (Type)
            {
            case RuleItemType.none:
            case RuleItemType.label:
                break;

            case RuleItemType.tab:
//                    parent.CreateArgs[Id] = this;//保存数据id
                State = CreateRoomRuleInfo.GetItemState(null, Id, Group, parent.GameKey, State);
                if (State)
                {
                    parent.CurTabId = Id;
                    parent.SetButtonId(Group, Id);
                }
                break;

            case RuleItemType.button:
//                    parent.CreateArgs[Id] = this;
                State = CreateRoomRuleInfo.GetItemState(parent.CurTabId, Id, Group, parent.GameKey, State);
                if (State)
                {
                    parent.SetButtonId(Group, Id);
                }
                break;

            case RuleItemType.input:
            case RuleItemType.pop:
            case RuleItemType.slider:
//                    parent.CreateArgs[Id] = this;
                Value = CreateRoomRuleInfo.GetItemValue(parent.CurTabId, Id, parent.GameKey, Value);
                break;

            default:
//                    parent.CreateArgs[Id] = this;
                State = CreateRoomRuleInfo.GetItemState(parent.CurTabId, Id, Group, parent.GameKey, State);
                break;
            }
            //                Debug.Log(string.Format("--------->:{0},{1},{2},{3}", Id,Group,Name,State));
            if (itemDict.ContainsKey("clicktype"))
            {
                var info  = itemDict["clicktype"].ToString();
                var infos = info.Split('|');
                if (infos.Length > 0)
                {
                    ClickType = new ClickTypeData
                    {
                        Type = (ECLickType)Enum.Parse(typeof(ECLickType), infos[0]),
                        Parm = infos.Length > 1 ? infos[1].Split(',') : new string[0]
                    };
                }
            }
        }