示例#1
0
 public void UpdateDisplay(NetTransport.ILobbyEntry data)
 {
     NetTransport.LobbyDisplayInfo info = default(NetTransport.LobbyDisplayInfo);
     if (data == null)
     {
         info.InitBlank();
     }
     else
     {
         data.getDisplayInfo(out info);
     }
     UpdateDisplay(info);
 }
示例#2
0
    public void UpdateDisplay(NetTransport.LobbyDisplayInfo dispInfo)
    {
        if (InviteText != null)
        {
            InviteText.gameObject.SetActive(NetGame.instance.transport.CanSendInvite());
        }
        if (!base.gameObject.activeSelf)
        {
            return;
        }
        if (dispInfo.FeaturesMask == 0)
        {
            ClearDisplay();
            base.gameObject.SetActive(value: false);
            return;
        }
        if ((dispInfo.FeaturesMask & 0x20) != 0 && (dispInfo.Flags & 0x20) == 0)
        {
            ClearDisplay();
            base.gameObject.SetActive(value: false);
            return;
        }
        uint num = dispInfo.Compare(ref prevDispInfo);

        prevDispInfo = dispInfo;
        uint num2 = 3221225472u;

        if (((int)num & -1073741824) != 0)
        {
            if (dispInfo.ShouldDisplayAllAttr(3221225472u))
            {
                MaxPlayersText.text = MakePlayers(dispInfo.NumPlayersForDisplay, dispInfo.MaxPlayers, 4);
            }
            else
            {
                MaxPlayersText.text = string.Empty;
            }
        }
        if ((num & 1) != 0)
        {
            JoinGameInProgressText.text = MakeFlag(dispInfo.Flags, dispInfo.FeaturesMask, 1u, 6);
        }
        if ((num & 4) != 0)
        {
            InviteText.text = MakeFlag(dispInfo.Flags, dispInfo.FeaturesMask, 4u, 8);
        }
        if ((num & 2) != 0)
        {
            LockLevelText.text = MakeFlag(dispInfo.Flags, dispInfo.FeaturesMask, 2u, 7);
        }
        if ((num & 8) != 0)
        {
            if ((dispInfo.FeaturesMask & 8) != 0)
            {
                LaunchedText.text = (((dispInfo.Flags & 8) == 0) ? sLocalisedStrings[3] : sLocalisedStrings[2]);
            }
            else
            {
                LaunchedText.text = string.Empty;
            }
        }
        if ((num & 0x8000000) != 0)
        {
            if ((dispInfo.FeaturesMask & 0x8000000) != 0)
            {
                LobbyNameText.text = MakeLobbyTitle(dispInfo.LobbyTitle);
            }
            else
            {
                LobbyNameText.text = string.Empty;
            }
        }
        if (LevelText == null || LevelImage == null || (num & 0x20000000) == 0)
        {
            return;
        }
        if ((dispInfo.FeaturesMask & 0x20000000) == 0)
        {
            LevelText.text     = string.Empty;
            LevelImage.texture = null;
            LevelImage.enabled = false;
            return;
        }
        string path;

        switch (dispInfo.LevelType)
        {
        case WorkshopItemSource.BuiltIn:
            WorkshopRepository.instance.LoadBuiltinLevels();
            path = "builtin:" + dispInfo.LevelID;
            break;

        case WorkshopItemSource.EditorPick:
            WorkshopRepository.instance.LoadEditorPickLevels();
            path = "editorpick:" + dispInfo.LevelID;
            break;

        default:
            path = "ws:" + dispInfo.LevelID + "/";
            break;
        }
        WorkshopLevelMetadata item = WorkshopRepository.instance.levelRepo.GetItem(path);

        if (item != null)
        {
            LevelText.text     = item.title;
            LevelImage.texture = item.thumbnailTexture;
            LevelImage.enabled = (LevelImage.texture != null);
        }
        else if (dispInfo.LevelID == (ulong)(Game.instance.levels.Length - 1))
        {
            LevelText.text     = ScriptLocalization.Get("LEVEL/" + Game.instance.levels[Game.instance.levels.Length - 1]);
            LevelImage.texture = HFFResources.instance.FindTextureResource("LevelImages/" + Game.instance.levels[Game.instance.levels.Length - 1]);
            LevelImage.enabled = true;
        }
        else
        {
            LevelText.text     = string.Empty;
            LevelImage.texture = null;
            LevelImage.enabled = false;
            StartCoroutine(GetNewLevel(dispInfo.LevelID));
        }
    }