//  Read this object from message-in
        internal override bool Read(BinaryReader binaryReader, EndPoint senderEndPoint, int gameVersion)
        {
            if (base.Read(binaryReader, senderEndPoint, gameVersion) == false)
            {
                return(NetworkError());
            }

            //  Color
            Color?color = MyMwcMessageIn.ReadColorEx(binaryReader, senderEndPoint);

            if (color == null)
            {
                return(NetworkError());
            }
            Color = color.Value;
            MyMwcLog.IfNetVerbose_AddToLog("Color: " + Color);

            //  Size
            Vector3?size = MyMwcMessageIn.ReadVector3FloatEx(binaryReader, senderEndPoint);

            if (size == null)
            {
                return(NetworkError());
            }
            Size = size.Value;
            MyMwcLog.IfNetVerbose_AddToLog("Size: " + Size);

            //  Scanning speed
            float?scanningSpeed = MyMwcMessageIn.ReadFloat(binaryReader);

            if (scanningSpeed == null)
            {
                return(NetworkError());
            }
            ScanningSpeed = scanningSpeed.Value;
            MyMwcLog.IfNetVerbose_AddToLog("ScanningSpeed: " + ScanningSpeed);

            ////  On
            //bool? on = MyMwcMessageIn.ReadBoolEx(binaryReader, senderEndPoint);
            //if (on == null) return NetworkError();
            //On = on.Value;
            //MyMwcLog.IfNetVerbose_AddToLog("On: " + On);

            return(true);
        }
        //  Read this object from message-in
        internal override bool Read(BinaryReader binaryReader, EndPoint senderEndPoint, int gameVersion)
        {
            if (base.Read(binaryReader, senderEndPoint, gameVersion) == false)
            {
                return(NetworkError());
            }

            // TODO: remove
            Color?dustColor = MyMwcMessageIn.ReadColorEx(binaryReader, senderEndPoint);

            if (dustColor == null)
            {
                return(NetworkError());
            }
            MyMwcLog.IfNetVerbose_AddToLog("dustColor: " + dustColor.ToString());

            int?countSectorObjects = MyMwcMessageIn.ReadInt32Ex(binaryReader, senderEndPoint);

            if (countSectorObjects == null)
            {
                return(NetworkError());
            }
            MyMwcLog.IfNetVerbose_AddToLog("Sector object count: " + countSectorObjects);
            SectorObjects = new List <MyMwcObjectBuilder_Base>(countSectorObjects.Value);
            for (int i = 0; i < countSectorObjects; i++)
            {
                MyMwcObjectBuilder_Base sectorObject = MyMwcObjectBuilder_Base.ReadAndCreateNewObject(binaryReader, senderEndPoint);
                if (sectorObject == null)
                {
                    return(NetworkError());
                }
                if (sectorObject.Read(binaryReader, senderEndPoint, gameVersion) == false)
                {
                    return(NetworkError());
                }
                SectorObjects.Add(sectorObject);
            }
            MyMwcLog.IfNetVerbose_AddToLog("Sector objects read");

            // Read object groups
            int?countObjectGroups = MyMwcMessageIn.ReadInt32Ex(binaryReader, senderEndPoint);

            if (countObjectGroups == null)
            {
                return(NetworkError());
            }
            MyMwcLog.IfNetVerbose_AddToLog("Object groups count: " + countObjectGroups);
            ObjectGroups = new List <MyMwcObjectBuilder_ObjectGroup>();
            for (int i = 0; i < countObjectGroups; i++)
            {
                MyMwcObjectBuilder_ObjectGroup objectGroup = MyMwcObjectBuilder_ObjectGroup.ReadAndCreateNewObject(binaryReader, senderEndPoint) as MyMwcObjectBuilder_ObjectGroup;
                if (objectGroup == null)
                {
                    return(NetworkError());
                }
                if (objectGroup.Read(binaryReader, senderEndPoint, gameVersion) == false)
                {
                    return(NetworkError());
                }
                ObjectGroups.Add(objectGroup);
            }
            MyMwcLog.IfNetVerbose_AddToLog("Object groups read");

            // Read snap point links
            int?countSnapPointLinks = MyMwcMessageIn.ReadInt32Ex(binaryReader, senderEndPoint);

            if (countSnapPointLinks == null)
            {
                return(NetworkError());
            }
            MyMwcLog.IfNetVerbose_AddToLog("Snap point links count: " + countSnapPointLinks);
            SnapPointLinks = new List <MyMwcObjectBuilder_SnapPointLink>();
            for (int i = 0; i < countSnapPointLinks; i++)
            {
                MyMwcObjectBuilder_SnapPointLink snapPointLink = MyMwcObjectBuilder_SnapPointLink.ReadAndCreateNewObject(binaryReader, senderEndPoint) as MyMwcObjectBuilder_SnapPointLink;
                if (snapPointLink == null)
                {
                    return(NetworkError());
                }
                if (snapPointLink.Read(binaryReader, senderEndPoint, gameVersion) == false)
                {
                    return(NetworkError());
                }
                SnapPointLinks.Add(snapPointLink);
            }
            MyMwcLog.IfNetVerbose_AddToLog("Snap point links read");

            bool?fromGenerator = MyMwcMessageIn.ReadBoolEx(binaryReader, senderEndPoint);

            if (!fromGenerator.HasValue)
            {
                return(NetworkError());
            }
            FromGenerator = fromGenerator.Value;
            MyMwcLog.IfNetVerbose_AddToLog("From generator read: " + FromGenerator);

            // Version
            int?version = MyMwcMessageIn.ReadInt32Ex(binaryReader, senderEndPoint);

            if (!version.HasValue)
            {
                return(NetworkError());
            }
            this.Version = version.Value;

            var position = MyMwcMessageIn.ReadVector3IntEx(binaryReader, senderEndPoint);

            if (!position.HasValue)
            {
                return(NetworkError());
            }
            Position = position.Value;
            MyMwcLog.IfNetVerbose_AddToLog("Position: " + Position);

            Dictionary = MyMessageHelper.ReadStringDictionary(binaryReader, senderEndPoint);
            if (Dictionary == null)
            {
                return(NetworkError());
            }

            return(true);
        }
Ejemplo n.º 3
0
        //  Read this object from message-in
        internal override bool Read(BinaryReader binaryReader, EndPoint senderEndPoint, int gameVersion)
        {
            if (base.Read(binaryReader, senderEndPoint, gameVersion) == false)
            {
                return(NetworkError());
            }

            // Type
            ushort?type = MyMwcMessageIn.ReadUInt16Ex(binaryReader, senderEndPoint);

            if (type == null)
            {
                return(NetworkError());
            }
            Type = (MyDummyPointType)type.Value;
            MyMwcLog.IfNetVerbose_AddToLog("Type: " + Type);

            // Size
            Vector3?size = MyMwcMessageIn.ReadVector3FloatEx(binaryReader, senderEndPoint);

            if (size == null)
            {
                return(NetworkError());
            }
            Size = size.Value;
            MyMwcLog.IfNetVerbose_AddToLog("Size: " + Size.ToString());

            // Dummy flags
            int?flagsResult = MyMwcMessageIn.ReadInt32Ex(binaryReader, senderEndPoint);

            if (!flagsResult.HasValue)
            {
                return(NetworkError());
            }

            this.DummyFlags = (MyDummyPointFlags)flagsResult.Value;
            MyMwcLog.IfNetVerbose_AddToLog("DummyFlags: " + this.DummyFlags);

            // Dummy flags
            Color?color = MyMwcMessageIn.ReadColorEx(binaryReader, senderEndPoint);

            if (!color.HasValue)
            {
                return(NetworkError());
            }

            this.Color = color.Value;
            MyMwcLog.IfNetVerbose_AddToLog("DummyColor: " + this.Color);

            // Argument
            Argument = MyMwcMessageIn.ReadFloat(binaryReader);

            // RespawnPointFaction
            int?respawnPointFaction = MyMwcMessageIn.ReadInt32Ex(binaryReader, senderEndPoint);

            if (!respawnPointFaction.HasValue)
            {
                return(NetworkError());
            }
            this.RespawnPointFaction = (MyMwcObjectBuilder_FactionEnum)respawnPointFaction.Value;
            MyMwcLog.IfNetVerbose_AddToLog("RespawnPointFaction: " + this.RespawnPointFaction);

            return(true);
        }
Ejemplo n.º 4
0
        //  Read this object from message-in
        internal override bool Read(BinaryReader binaryReader, EndPoint senderEndPoint, int gameVersion)
        {
            if (base.Read(binaryReader, senderEndPoint, gameVersion) == false)
            {
                return(NetworkError());
            }

            // Type
            short?flags = MyMwcMessageIn.ReadInt16Ex(binaryReader, senderEndPoint);

            if (flags == null)
            {
                return(NetworkError());
            }
            InfluenceFlags = (MyInfluenceFlags)flags.Value;
            MyMwcLog.IfNetVerbose_AddToLog("InfluenceFlags: " + InfluenceFlags);

            // RadiusMin
            float radiusMin = MyMwcMessageIn.ReadFloat(binaryReader);

            RadiusMin = radiusMin;
            MyMwcLog.IfNetVerbose_AddToLog("RadiusMin: " + RadiusMin);

            // RadiusMax
            float radiusMax = MyMwcMessageIn.ReadFloat(binaryReader);

            RadiusMax = radiusMax;
            MyMwcLog.IfNetVerbose_AddToLog("RadiusMax: " + RadiusMax);

            // Dust color
            Color?dustColor = MyMwcMessageIn.ReadColorEx(binaryReader, senderEndPoint);

            if (dustColor == null)
            {
                return(NetworkError());
            }
            MyMwcLog.IfNetVerbose_AddToLog("dustColor: " + dustColor.ToString());
            DustColor = dustColor.Value;

            // Magnitude
            float magnitude = MyMwcMessageIn.ReadFloat(binaryReader);

            MyMwcLog.IfNetVerbose_AddToLog("Magnitude: " + magnitude);
            Magnitude = magnitude;

            //// Sound
            //short? soundType = MyMwcMessageIn.ReadInt16Ex(binaryReader, senderEndPoint);
            //if (soundType == null) return NetworkError();
            //SoundType = (MyInfluenceSphereSoundsEnum) soundType.Value;
            //MyMwcLog.IfNetVerbose_AddToLog("SoundType: " + SoundType);

            // Sound Cue Id
            short?soundCueId = MyMwcMessageIn.ReadInt16Ex(binaryReader, senderEndPoint);

            if (soundCueId == null)
            {
                return(NetworkError());
            }
            SoundCueId = soundCueId.Value;
            MyMwcLog.IfNetVerbose_AddToLog("SoundCueId: " + SoundCueId);

            return(true);
        }