Beispiel #1
0
        /// <summary>
        /// Uses property data to setup the controller view
        /// </summary>
        /// <param name="propertyData"></param>
        public virtual void Setup(LobbyPropertyData propertyData)
        {
            Lobby = Lobby ?? GetComponentInParent <LobbyUi>();

            RawData    = propertyData;
            Label.text = propertyData.Label;

            Dropdown.ClearOptions();

            Dropdown.AddOptions(propertyData.Options);
        }
Beispiel #2
0
        public void AddControl(LobbyPropertyData propertyData)
        {
            var defaultValue = "";

            if (propertyData.Options != null && propertyData.Options.Count > 0)
            {
                defaultValue = propertyData.Options.First();
            }

            SetProperty(propertyData.PropertyKey, defaultValue);
            Controls.Add(propertyData);
        }
Beispiel #3
0
        public override void FromBinaryReader(EndianBinaryReader reader)
        {
            LobbyState          = (LobbyState)reader.ReadInt32();
            LobbyType           = reader.ReadString();
            StatusText          = reader.ReadString();
            GameMaster          = reader.ReadString();
            CurrentUserUsername = reader.ReadString();

            LobbyId         = reader.ReadString();
            LobbyName       = reader.ReadString();
            LobbyProperties = reader.ReadDictionary();
            MaxPlayers      = reader.ReadInt32();

            // Read additional data
            var size = reader.ReadInt32();

            if (size > 0)
            {
                AdditionalData = reader.ReadBytes(size);
            }

            // Clear, in case we're reusing the object
            Players.Clear();

            // Read player properties
            var playerCount = reader.ReadInt32();

            for (var i = 0; i < playerCount; i++)
            {
                var data     = CreateLobbyMemberData();
                var username = reader.ReadString();
                data.FromBinaryReader(reader);

                Players.Add(username, data);
            }

            // Read teams
            Teams.Clear();
            var teamsCount = reader.ReadInt32();

            for (int i = 0; i < teamsCount; i++)
            {
                var teamKey  = reader.ReadString();
                var teamData = CreateTeamData();
                teamData.FromBinaryReader(reader);
                Teams.Add(teamKey, teamData);
            }

            // Read controls
            Controls = new List <LobbyPropertyData>();
            var controlsCount = reader.ReadInt32();

            for (int i = 0; i < controlsCount; i++)
            {
                var control = new LobbyPropertyData();
                control.FromBinaryReader(reader);
                Controls.Add(control);
            }

            // Other settings
            EnableManualStart   = reader.ReadBoolean();
            EnableReadySystem   = reader.ReadBoolean();
            EnableTeamSwitching = reader.ReadBoolean();
        }
Beispiel #4
0
 public void AddControl(LobbyPropertyData propertyData, string defaultValue)
 {
     SetProperty(propertyData.PropertyKey, defaultValue);
     Controls.Add(propertyData);
 }