Exemple #1
0
 public RoomInfo(NetIncomingMessage msg)
 {
     roomId              = msg.ReadUInt32();
     name                = msg.ReadString();
     usePassword         = msg.ReadBoolean();
     perPlayerDifficulty = msg.ReadBoolean();
     songSelected        = msg.ReadBoolean();
     msg.SkipPadBits();
     roomState         = (RoomState)msg.ReadByte();
     songSelectionType = (SongSelectionType)msg.ReadByte();
     roomHost          = new PlayerInfo(msg);
     players           = msg.ReadInt32();
     maxPlayers        = msg.ReadInt32();
     try
     {
         if (songSelected)
         {
             startLevelInfo = new LevelOptionsInfo(msg);
             selectedSong   = new SongInfo(msg);
         }
         else
         {
             startLevelInfo = default;
             selectedSong   = null;
         }
     }
     catch
     {
     }
 }
Exemple #2
0
        public PlayerInfo(NetIncomingMessage msg)
        {
            playerName = msg.ReadString();
            playerId   = msg.ReadUInt64();

            playerNameColor = new Color32(msg.ReadByte(), msg.ReadByte(), msg.ReadByte(), 255);

            playerState = (PlayerState)msg.ReadByte();

            fullBodyTracking  = msg.ReadBoolean();
            playerScore       = msg.ReadVariableUInt32();
            playerCutBlocks   = msg.ReadVariableUInt32();
            playerComboBlocks = msg.ReadVariableUInt32();
            playerTotalBlocks = msg.ReadVariableUInt32();
            msg.ReadPadBits();
            playerEnergy   = msg.ReadFloat();
            playerProgress = msg.ReadFloat();

            playerLevelOptions = new LevelOptionsInfo(msg);

            rightHandPos = msg.ReadVector3();
            leftHandPos  = msg.ReadVector3();
            headPos      = msg.ReadVector3();

            rightHandRot = msg.ReadQuaternion();
            leftHandRot  = msg.ReadQuaternion();
            headRot      = msg.ReadQuaternion();

            if (fullBodyTracking)
            {
                pelvisPos   = msg.ReadVector3();
                leftLegPos  = msg.ReadVector3();
                rightLegPos = msg.ReadVector3();

                pelvisRot   = msg.ReadQuaternion();
                leftLegRot  = msg.ReadQuaternion();
                rightLegRot = msg.ReadQuaternion();
            }

            avatarHash = BitConverter.ToString(msg.ReadBytes(16)).Replace("-", "");

            hitsLastUpdate.Clear();

            byte hitsCount = msg.ReadByte();

            for (int i = 0; i < hitsCount; i++)
            {
                hitsLastUpdate.Add(new HitData(msg));
            }
        }
        public PlayerUpdate(NetIncomingMessage msg)
        {
            playerNameColor = new Color32(msg.ReadByte(), msg.ReadByte(), msg.ReadByte(), 255);

            playerState = (PlayerState)msg.ReadByte();

            fullBodyTracking = (msg.ReadByte() == 1);

            playerScore       = msg.ReadVariableUInt32();
            playerCutBlocks   = msg.ReadVariableUInt32();
            playerComboBlocks = msg.ReadVariableUInt32();
            playerTotalBlocks = msg.ReadVariableUInt32();
            playerEnergy      = msg.ReadFloat();
            playerProgress    = msg.ReadFloat();

            playerLevelOptions = new LevelOptionsInfo(msg);

            playerFlags = new ExtraPlayerFlags(msg);

            rightHandPos = msg.ReadVector3();
            leftHandPos  = msg.ReadVector3();
            headPos      = msg.ReadVector3();

            rightHandRot = msg.ReadQuaternion();
            leftHandRot  = msg.ReadQuaternion();
            headRot      = msg.ReadQuaternion();

            if (fullBodyTracking)
            {
                pelvisPos   = msg.ReadVector3();
                leftLegPos  = msg.ReadVector3();
                rightLegPos = msg.ReadVector3();

                pelvisRot   = msg.ReadQuaternion();
                leftLegRot  = msg.ReadQuaternion();
                rightLegRot = msg.ReadQuaternion();
            }
            else
            {
                pelvisPos   = Vector3.zero;
                leftLegPos  = Vector3.zero;
                rightLegPos = Vector3.zero;

                pelvisRot   = Quaternion.identity;
                leftLegRot  = Quaternion.identity;
                rightLegRot = Quaternion.identity;
            }
        }
Exemple #4
0
        public PlayerInfo(PlayerInfo original)
        {
            var fields = typeof(PlayerInfo).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);

            foreach (var field in fields)
            {
                if (field.FieldType.IsValueType)
                {
                    field.SetValue(this, field.GetValue(original));
                }
            }

            playerLevelOptions = new LevelOptionsInfo(original.playerLevelOptions);
            hitsLastUpdate     = new List <HitData>(original.hitsLastUpdate);
            playerName         = original.playerName;
            avatarHash         = original.avatarHash;
        }
        public void AddToMessage(NetOutgoingMessage msg)
        {
            msg.Write(playerNameColor.r);
            msg.Write(playerNameColor.g);
            msg.Write(playerNameColor.b);

            msg.Write((byte)playerState);

            msg.Write(fullBodyTracking ? (byte)1 : (byte)0);
            msg.WriteVariableUInt32(playerScore);
            msg.WriteVariableUInt32(playerCutBlocks);
            msg.WriteVariableUInt32(playerComboBlocks);
            msg.WriteVariableUInt32(playerTotalBlocks);
            msg.Write(playerEnergy);
            msg.Write(playerProgress);

            if (playerLevelOptions == default)
            {
                playerLevelOptions = new LevelOptionsInfo(BeatmapDifficulty.Hard, GameplayModifiers.defaultModifiers, "Standard");
            }

            playerLevelOptions.AddToMessage(msg);

            playerFlags.AddToMessage(msg);

            rightHandPos.AddToMessage(msg);
            leftHandPos.AddToMessage(msg);
            headPos.AddToMessage(msg);

            rightHandRot.AddToMessage(msg);
            leftHandRot.AddToMessage(msg);
            headRot.AddToMessage(msg);

            if (fullBodyTracking)
            {
                pelvisPos.AddToMessage(msg);
                leftLegPos.AddToMessage(msg);
                rightLegPos.AddToMessage(msg);

                pelvisRot.AddToMessage(msg);
                leftLegRot.AddToMessage(msg);
                rightLegRot.AddToMessage(msg);
            }
        }
        public ChannelInfo(NetIncomingMessage msg)
        {
            channelId = msg.ReadInt32();
            name      = msg.ReadString();
            iconUrl   = msg.ReadString();
            state     = (ChannelState)msg.ReadByte();

            if (state != ChannelState.Voting)
            {
                currentSong         = new SongInfo(msg);
                currentLevelOptions = new LevelOptionsInfo(msg);

                if (currentSong.songName == "Selecting song..." && currentSong.levelId == "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")
                {
                    currentSong         = null;
                    currentLevelOptions = default;
                }
            }
            playerCount = msg.ReadInt32();
        }
Exemple #7
0
 public LevelOptionsInfo(LevelOptionsInfo original)
 {
     difficulty         = original.difficulty;
     modifiers          = original.modifiers;
     characteristicName = original.characteristicName;
 }