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); } }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// public MapInfoWrap(MapInfo settings, UserMapInfo userSettings) { Debug.Assert(settings != null); Debug.Assert(userSettings != null); _services = _CreateServices(settings, userSettings); _settings = settings; }
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; } } }
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); }
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; } } }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// 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); } } }
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); } } }
public void InitDialog(UserMapInfo _userMap) { userMap = _userMap; newMapAlias = string.Empty; }
public void InitDialog(UserMapInfo mi) { userMap = mi; regMap = null; }
public void InitDialog(RegMap mi) { userMap = null; regMap = mi; }
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); }