Пример #1
0
    public void AddOrUpdate(byte slot, string alias, int brickCount, DateTime lastModified, sbyte premium)
    {
        foreach (KeyValuePair <byte, UserMapInfo> item in listUMI)
        {
            if (item.Value.Slot == slot)
            {
                item.Value.Alias        = alias;
                item.Value.BrickCount   = brickCount;
                item.Value.LastModified = lastModified;
                item.Value.Thumbnail    = null;
                return;
            }
        }
        UserMapInfo userMapInfo = new UserMapInfo(slot, premium);

        if (userMapInfo != null)
        {
            if (!userMapInfo.LoadCache() || userMapInfo.Alias != alias || userMapInfo.BrickCount != brickCount)
            {
                userMapInfo.Alias        = alias;
                userMapInfo.BrickCount   = brickCount;
                userMapInfo.LastModified = lastModified;
                userMapInfo.Thumbnail    = null;
            }
            listUMI.Add(slot, userMapInfo);
        }
    }
Пример #2
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        public MapInfoWrap(MapInfo settings, UserMapInfo userSettings)
        {
            Debug.Assert(settings != null);
            Debug.Assert(userSettings != null);

            _services = _CreateServices(settings, userSettings);
            _settings = settings;
        }
Пример #3
0
    public UserMapInfo[] ToArray()
    {
        UserMapInfo[] array = new UserMapInfo[listUMI.Count];
        int           num   = 0;

        foreach (KeyValuePair <byte, UserMapInfo> item in listUMI)
        {
            array[num++] = item.Value;
        }
        return(array);
    }
 private void Start()
 {
     if (RoomManager.Instance.CurrentRoomType == Room.ROOM_TYPE.MAP_EDITOR)
     {
         umi = UserMapInfoManager.Instance.GetCur();
         if (umi != null)
         {
             copyRight = true;
         }
     }
 }
Пример #5
0
    private bool GetCopyRight()
    {
        bool result = false;

        umi = null;
        if (RoomManager.Instance.CurrentRoomType == Room.ROOM_TYPE.MAP_EDITOR)
        {
            umi = UserMapInfoManager.Instance.GetCur();
            if (umi != null)
            {
                result = true;
            }
        }
        return(result);
    }
Пример #6
0
 private void OnGUI()
 {
     if (MyInfoManager.Instance.isGuiOn)
     {
         GUI.skin    = GUISkinFinder.Instance.GetGUISkin();
         GUI.depth   = (int)guiDepth;
         GUI.enabled = !DialogManager.Instance.IsModal;
         UserMapInfo cur = UserMapInfoManager.Instance.GetCur();
         if (cur != null && BrickManager.Instance.IsLoaded)
         {
             GUI.BeginGroup(new Rect((float)Screen.width - crdSize.x, (float)Screen.height - crdSize.y, crdSize.x, crdSize.y));
             TextureUtil.DrawTexture(crdConstructor, constructor, ScaleMode.StretchToFill);
             GUI.Box(crdThumbnailOutline, string.Empty, "BoxBrickOutline");
             TextureUtil.DrawTexture(crdThumbnail, thumbnail);
             GUI.EndGroup();
             GUI.enabled = true;
         }
     }
 }
Пример #7
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        private List <MapServiceInfoWrap> _CreateServices(MapInfo settings,
                                                          UserMapInfo userSettings)
        {
            Debug.Assert(settings != null);
            Debug.Assert(userSettings != null);

            if (userSettings.Services == null)
            {
                userSettings.Services = new List <UserMapServiceInfo>();
            }

            List <UserMapServiceInfo> userServices = userSettings.Services;
            List <MapServiceInfoWrap> wrapServices = new List <MapServiceInfoWrap>();

            foreach (MapServiceInfo info in settings.Services)
            {
                if (!String.IsNullOrEmpty(info.Name))
                {
                    UserMapServiceInfo userInfo = _FindServiceInfo(info.Name,
                                                                   userServices);

                    if (userInfo == null)
                    {
                        userInfo           = new UserMapServiceInfo();
                        userInfo.Name      = info.Name;
                        userInfo.IsVisible = info.IsVisible;
                        userInfo.Opacity   = info.Opacity;
                        userServices.Add(userInfo);
                    }

                    MapServiceInfoWrap wrap = new MapServiceInfoWrap(info,
                                                                     userInfo);

                    wrapServices.Add(wrap);
                }
                else
                {
                    Logger.Warning("Map service configuration error: invalid name.");
                }
            }

            return(wrapServices);
        }
 public void InitDialog(UserMapInfo _umi)
 {
     umi = _umi;
     if (umi != null)
     {
         CheckModeMask();
         if (BuildOption.Instance.Props.teamMatchMode)
         {
             teamMatch = ((modeMask & 1) != 0);
         }
         if (BuildOption.Instance.Props.individualMatchMode)
         {
             individualMatch = ((modeMask & 2) != 0);
         }
         if (BuildOption.Instance.Props.defenseMatchMode)
         {
             mission = ((modeMask & 0x10) != 0);
         }
         if (BuildOption.Instance.Props.ctfMatchMode)
         {
             flagMatch = ((modeMask & 4) != 0);
         }
         if (BuildOption.Instance.Props.explosionMatchMode)
         {
             explosionMatch = ((modeMask & 8) != 0);
         }
         if (BuildOption.Instance.Props.escapeMode)
         {
             escape = ((modeMask & 0x80) != 0);
         }
         if (BuildOption.Instance.Props.zombieMode)
         {
             zombie = ((modeMask & 0x100) != 0);
         }
     }
 }
Пример #9
0
    public void ValidateEmpty()
    {
        List <byte> list = new List <byte>();

        foreach (KeyValuePair <byte, UserMapInfo> item in listUMI)
        {
            if (item.Value.Alias.Length <= 0)
            {
                list.Add(item.Key);
            }
        }
        for (int i = 0; i < list.Count; i++)
        {
            listUMI.Remove(list[i]);
        }
        int num  = 2;
        int num2 = 3;

        if (BuildOption.Instance.IsNetmarble)
        {
            num = 0;
        }
        num2 += MyInfoManager.Instance.ExtraSlots;
        foreach (KeyValuePair <byte, UserMapInfo> item2 in listUMI)
        {
            if (item2.Value.IsPremium)
            {
                num--;
            }
            else
            {
                num2--;
            }
        }
        if (num < 0)
        {
            num = 0;
        }
        if (num2 < 0)
        {
            num2 = 0;
        }
        byte b = 1;

        while (num2 > 0 && b < 200)
        {
            UserMapInfo userMapInfo = Get(b);
            if (userMapInfo == null)
            {
                num2--;
                listUMI.Add(b, new UserMapInfo(b, 0));
            }
            b = (byte)(b + 1);
        }
        byte b2 = 1;

        while (num > 0 && b2 < 200)
        {
            UserMapInfo userMapInfo2 = Get(b2);
            if (userMapInfo2 == null)
            {
                num--;
                listUMI.Add(b2, new UserMapInfo(b2, 1));
            }
            b2 = (byte)(b2 + 1);
        }
    }
    private void DoSlots()
    {
        bool flag = MyInfoManager.Instance.HaveFunction("premium_account") >= 0;
        int  num  = umi.Length / 4;

        if (umi.Length % 4 > 0)
        {
            num++;
        }
        Rect viewRect = new Rect(0f, 0f, crdMapSize.x * 4f + crdMapOffset * 3f, crdMapSize.y * (float)num);

        if (num > 1)
        {
            viewRect.height += crdMapOffset * (float)(num - 1);
        }
        umiScrollPosition = GUI.BeginScrollView(crdSlotPosition, umiScrollPosition, viewRect);
        for (int i = 0; i < num; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                int num2 = 4 * i + j;
                if (num2 < umi.Length)
                {
                    Texture2D texture2D = null;
                    texture2D = ((umi[num2].Alias.Length <= 0) ? emptySlot : ((!(umi[num2].Thumbnail == null)) ? umi[num2].Thumbnail : nonAvailable));
                    Rect rect     = new Rect((float)j * (crdMapSize.x + crdMapOffset), (float)i * (crdMapSize.y + crdMapOffset), crdMapSize.x, crdMapSize.y);
                    Rect position = new Rect(rect.x, rect.y, rect.width, rect.height);
                    TextureUtil.DrawTexture(position, texture2D, ScaleMode.StretchToFill);
                    if (GlobalVars.Instance.MyButton(rect, string.Empty, (!umi[num2].IsPremium) ? "BoxMapSelectBorder" : "BoxMapSelectBorderPremium") && (!umi[num2].IsPremium || flag))
                    {
                        umiSlot = umi[num2].Slot;
                        if (Time.time - lastClickTime > doubleClickTimeout)
                        {
                            lastClickTime = Time.time;
                        }
                    }
                    if (umi[num2].Alias.Length > 0)
                    {
                        LabelUtil.TextOut(new Vector2(rect.x + crdAlias.x, rect.y + crdAlias.y), umi[num2].Alias, "MiniLabel", txtMainClr, GlobalVars.txtEmptyColor, TextAnchor.UpperLeft);
                    }
                    bool flag2 = false;
                    if (umi[num2].IsPremium)
                    {
                        if (!flag)
                        {
                            flag2 = true;
                            TextureUtil.DrawTexture(new Rect(rect.x + (rect.width - (float)slotLock.width) / 2f, rect.y + (rect.height - (float)slotLock.height) / 2f - 13f, (float)slotLock.width, (float)slotLock.height), slotLock, ScaleMode.StretchToFill);
                        }
                        TextureUtil.DrawTexture(new Rect(rect.x + 2f, rect.y + 2f, (float)premiumIcon.width, (float)premiumIcon.height), premiumIcon);
                    }
                    if (!flag2 && umi[num2].Alias.Length <= 0)
                    {
                        TextureUtil.DrawTexture(new Rect(rect.x + (rect.width - (float)slotEmpty.width) / 2f, rect.y + (rect.height - (float)slotEmpty.height) / 2f - 13f, (float)slotEmpty.width, (float)slotEmpty.height), slotEmpty, ScaleMode.StretchToFill);
                    }
                    if (umiSlot == umi[num2].Slot)
                    {
                        TextureUtil.DrawTexture(rect, selectedMapFrame, ScaleMode.StretchToFill);
                    }
                }
            }
        }
        GUI.EndScrollView();
        UserMapInfo userMapInfo = UserMapInfoManager.Instance.Get(umiSlot);
        GUIContent  content     = new GUIContent(StringMgr.Instance.Get("RESET_MAP_SLOT").ToUpper(), GlobalVars.Instance.iconBlock);

        if (GlobalVars.Instance.MyButton3(crdButtonOk, content, "BtnAction") && userMapInfo != null && userMapInfo != null)
        {
            if (userMapInfo.Alias.Length <= 0)
            {
                MessageBoxMgr.Instance.AddMessage(StringMgr.Instance.Get("EMPTY_SLOT_ALREADY"));
            }
            else if (userMapInfo.IsPremium && !flag)
            {
                MessageBoxMgr.Instance.AddMessage(StringMgr.Instance.Get("LOCKED_SLOT_PREMIUM"));
            }
            else
            {
                ((AreYouSure)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.ARE_YOU_SURE, exclusive: true))?.InitDialog(item, AreYouSure.SURE.RESET_MAP_SLOT, userMapInfo);
            }
        }
    }
Пример #11
0
 public void InitDialog(UserMapInfo _userMap)
 {
     userMap     = _userMap;
     newMapAlias = string.Empty;
 }
Пример #12
0
 public void InitDialog(UserMapInfo mi)
 {
     userMap = mi;
     regMap  = null;
 }
Пример #13
0
 public void InitDialog(RegMap mi)
 {
     userMap = null;
     regMap  = mi;
 }
Пример #14
0
    public override bool DoDialog()
    {
        bool    result = false;
        GUISkin skin   = GUI.skin;

        GUI.skin = GUISkinFinder.Instance.GetGUISkin();
        TextureUtil.DrawTexture(crdIcon, icon, ScaleMode.StretchToFill);
        LabelUtil.TextOut(crdTitle, StringMgr.Instance.Get("MAP_INFO"), "Label", Color.white, GlobalVars.txtEmptyColor, TextAnchor.UpperLeft);
        GUI.Box(crdOutline, string.Empty, "BoxPopLine");
        DrawThumbnail();
        PrintMapInfo();
        Rect rc = crdButtonBase;

        if (GlobalVars.Instance.MyButton(rc, StringMgr.Instance.Get("CANCEL"), "BtnAction"))
        {
            result = true;
        }
        rc.x -= 100f;
        if (CanMakeRoom())
        {
            if (GlobalVars.Instance.MyButton(rc, StringMgr.Instance.Get("CREATE_ROOM"), "BtnAction"))
            {
                UserMapInfo userMapInfo = GetUserMap();
                if (userMapInfo != null)
                {
                    CreateRoomDialog createRoomDialog = (CreateRoomDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.CREATE_ROOM, exclusive: true);
                    if (createRoomDialog != null && !createRoomDialog.InitDialog4MapEditorLoad(userMapInfo.Slot))
                    {
                        DialogManager.Instance.Clear();
                    }
                }
                else
                {
                    RegMap regMap = GetRegMap();
                    if (regMap != null)
                    {
                        CreateRoomDialog createRoomDialog2 = (CreateRoomDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.CREATE_ROOM, exclusive: true);
                        if (!createRoomDialog2.InitDialog4TeamMatch(regMap.Map, regMap.ModeMask))
                        {
                            DialogManager.Instance.Clear();
                        }
                    }
                }
            }
            rc.x -= 100f;
        }
        if (userMap != null)
        {
            if (GlobalVars.Instance.MyButton(rc, StringMgr.Instance.Get("RENAME_MAP"), "BtnAction"))
            {
                ((RenameMapDlg)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.RENAME_MAP, exclusive: true))?.InitDialog(userMap);
            }
            rc.x -= 100f;
        }
        if (this.regMap != null)
        {
            if (RegMapManager.Instance.IsDownloaded(this.regMap.Map))
            {
                if (GlobalVars.Instance.MyButton(rc, StringMgr.Instance.Get("DELETE"), "BtnAction"))
                {
                    CSNetManager.Instance.Sock.SendCS_DEL_DOWNLOAD_MAP_REQ(this.regMap.Map);
                }
                rc.x -= 100f;
            }
            else
            {
                bool enabled = GUI.enabled;
                GUI.enabled = this.regMap.IsLatest;
                if (GlobalVars.Instance.MyButton(rc, StringMgr.Instance.Get("SAVE"), "BtnAction"))
                {
                    ((DownloadFeeDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.DOWNLOAD_FEE, exclusive: true))?.InitDialog(this.regMap);
                }
                GUI.enabled = enabled;
                rc.x       -= 100f;
            }
        }
        if (!ContextMenuManager.Instance.IsPopup)
        {
            WindowUtil.EatEvent();
        }
        GUI.skin = skin;
        return(result);
    }