コード例 #1
0
 protected override byte[] ToBytes()
 {
     VRage.ByteStream stream = new VRage.ByteStream(SIZE);
     stream.addByte(Index);
     stream.addUShort(Value);
     return stream.Data;
 }
コード例 #2
0
 protected override byte[] ToBytes()
 {
     VRage.ByteStream stream = new VRage.ByteStream(32, true);
     base.AddToByteStream(stream);
     Settings.AddToByteStream(stream);
     return stream.Data;
 }
コード例 #3
0
 protected override byte[] ToBytes()
 {
     VRage.ByteStream stream = new VRage.ByteStream(SIZE);
     base.AddToByteStream(stream);
     stream.addBoolean(Success);
     return stream.Data;
 }
コード例 #4
0
 protected override byte[] ToBytes()
 {
     VRage.ByteStream stream = new VRage.ByteStream(SIZE);
     stream.addLong(PlayerId);
     stream.addLong(FactionId);
     return stream.Data;
 }
コード例 #5
0
ファイル: BaseResponse.cs プロジェクト: MrZSFG/GardenConquest
        public static BaseResponse messageFromBytes(byte[] buffer)
        {
            VRage.ByteStream stream = new VRage.ByteStream(buffer, buffer.Length);
            TYPE t = (TYPE)stream.getUShort();
            stream.Seek(0, SeekOrigin.Begin);

            BaseResponse msg = null;
            switch (t) {
                case TYPE.NOTIFICATION:
                    msg = new NotificationResponse();
                    break;
                case TYPE.DIALOG:
                    msg = new DialogResponse();
                    break;
                case TYPE.SETTINGS:
                    msg = new SettingsResponse();
                    break;
                case TYPE.FLEET:
                    msg = new FleetResponse();
                    break;
            }

            if (msg != null)
                msg.deserialize(stream);
            return msg;
        }
コード例 #6
0
 public LogoutRequest(byte[] bytes)
     : base((ushort)MessageType.LogoutRequest)
 {
     VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
     PlayerId = stream.getLong();
     FactionId = stream.getLong();
 }
コード例 #7
0
 public PilotingStoppedRequest(byte[] bytes)
     : base((ushort)MessageType.PilotingStoppedRequest)
 {
     VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
     PlayerId = stream.getLong();
     GridId = stream.getLong();
 }
コード例 #8
0
        public override byte[] serialize()
        {
            VRage.ByteStream bs = new VRage.ByteStream(BaseSize, true);

            byte[] bmessage = base.serialize();
            bs.Write(bmessage, 0, bmessage.Length);

            // Control Points
            bs.addUShort((ushort)Settings.ControlPoints.Count);
            foreach (Records.ControlPoint cp in Settings.ControlPoints) {
                cp.serialize(bs);
            }

            // CP Period
            bs.addLong(Settings.CPPeriod);

            // Cleanup Period
            bs.addLong(Settings.CleanupPeriod);

            // Block Types
            bs.addUShort((ushort)Settings.BlockTypes.Length);
            foreach (Records.BlockType bt in Settings.BlockTypes) {
                bt.serialize(bs);
            }

            // Hull Rules
            bs.addUShort((ushort)Settings.HullRules.Length);
            foreach (Records.HullRuleSet hrs in Settings.HullRules) {
                hrs.serialize(bs);
            }

            return bs.Data;
        }
コード例 #9
0
ファイル: BaseRequest.cs プロジェクト: Devlah/GardenConquest
        public static BaseRequest messageFromBytes(byte[] buffer)
        {
            VRage.ByteStream stream = new VRage.ByteStream(buffer, buffer.Length);
            TYPE t = (TYPE)stream.getUShort();
            stream.Seek(0, System.IO.SeekOrigin.Begin);

            BaseRequest msg = null;
            switch (t) {
                case TYPE.FLEET:
                    msg = new FleetRequest();
                    break;
                case TYPE.SETTINGS:
                    msg = new SettingsRequest();
                    break;
                case TYPE.VIOLATIONS:
                    msg = new ViolationsRequest();
                    break;
                case TYPE.DISOWN:
                    msg = new DisownRequest();
                    break;
                case TYPE.STOPGRID:
                    msg = new StopGridRequest();
                    break;
            }

            if (msg != null)
                msg.deserialize(stream);
            return msg;
        }
コード例 #10
0
ファイル: ByteTests.cs プロジェクト: MrZSFG/GardenConquest
		public void TestLongNegative() {
			long input = long.MinValue;
			VRage.ByteStream stream = new VRage.ByteStream(1, true);
			stream.addLong(input);
			stream.Seek(0, System.IO.SeekOrigin.Begin);
			Assert.AreEqual(input, stream.getLong());
		}
コード例 #11
0
ファイル: ByteTests.cs プロジェクト: MrZSFG/GardenConquest
		public void TestUShort() {
			ushort input = ushort.MaxValue;
			VRage.ByteStream stream = new VRage.ByteStream(1, true);
			stream.addUShort(input);
			stream.Seek(0, System.IO.SeekOrigin.Begin);
			Assert.AreEqual(input, stream.getUShort());
		}
コード例 #12
0
 public static StatusResponse FromBytes(byte[] bytes)
 {
     VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
     StatusResponse response = new StatusResponse();
     response.LoadFromByteStream(stream);
     return response;
 }
コード例 #13
0
        public static ObservingEntitiesResponse FromBytes(byte[] bytes)
        {
            long responseLength = bytes.Length;
            Log.Info("Creating new stream of length " + responseLength, "FromBytes");
            VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
            ObservingEntitiesResponse response = new ObservingEntitiesResponse();
            response.LoadFromByteStream(stream);

            Log.Info("Base pos " + stream.Position, "FromBytes");
            ushort count = stream.getUShort();
            Log.Info("With count pos " + stream.Position, "FromBytes");
            for (int i = 0; i < count; i++) {
                Log.Info("Beginning get entity at pos " + stream.Position + " / " + stream.Length, "FromBytes");
                EntityType entityType = (EntityType)stream.getUShort();

                switch (entityType) {
                    case EntityType.Character:
                        response.ObservingEntities.Add(new Character(stream));
                        break;
                    case EntityType.Grid:
                        response.ObservingEntities.Add(new RevealedGrid(stream));
                        break;
                }

            }

            Log.Info("Finished getting entity at final pos " + stream.Position, "FromBytes");
            return response;
        }
コード例 #14
0
 public ConcealQueuedMessage(byte[] bytes)
     : base((ushort)MessageType.ConcealQueuedMessage)
 {
     VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
     EntityId = stream.getLong();
     Log.Info("Deserialized ConcealQueuedNotification for " + EntityId,
         "byte ctr");
 }
コード例 #15
0
 protected override byte[] ToBytes()
 {
     VRage.ByteStream stream = new VRage.ByteStream(SIZE);
     stream.addLong(EntityId);
     Log.Info("Serialized ConcealQueuedNotification for " + EntityId,
         "ToBytes");
     return stream.Data;
 }
コード例 #16
0
 public static ChangeSettingResponse FromBytes(byte[] bytes)
 {
     VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
     ChangeSettingResponse response = new ChangeSettingResponse();
     response.LoadFromByteStream(stream);
     response.Success = stream.getBoolean();
     return response;
 }
コード例 #17
0
        protected override byte[] ToBytes()
        {
            VRage.ByteStream stream = new VRage.ByteStream(SIZE);

            stream.addLong(EntityId);

            return stream.Data;
        }
コード例 #18
0
 public FactionChangeRequest(byte[] bytes)
     : base((ushort)MessageType.FactionChangeRequest)
 {
     VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);
     PlayerId = stream.getLong();
     OldFactionId = stream.getLong();
     NewFactionId = stream.getLong();
 }
コード例 #19
0
        public static RevealResponse FromBytes(byte[] bytes)
        {
            VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);

            RevealResponse response = new RevealResponse();
            response.EntityId = stream.getLong();

            return response;
        }
コード例 #20
0
        public static RevealRequest FromBytes(byte[] bytes)
        {
            VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);

            RevealRequest request = new RevealRequest();
            request.EntityId = stream.getLong();

            return request;
        }
コード例 #21
0
ファイル: ByteTests.cs プロジェクト: MrZSFG/GardenConquest
		public void TestLongList() {
			List<long> input = new List<long>() { 1, 2, 3, 4 };
			VRage.ByteStream stream = new VRage.ByteStream(1, true);
			stream.addLongList(input);
			stream.Seek(0, System.IO.SeekOrigin.Begin);
			List<long> output = stream.getLongList();

			CollectionAssert.AreEqual(input, output);
		}
コード例 #22
0
ファイル: ByteTests.cs プロジェクト: MrZSFG/GardenConquest
		public void TestString() {
			string input = "This is a test string";
			VRage.ByteStream stream = new VRage.ByteStream(1, true);
			stream.addString(input);
			stream.Seek(0, System.IO.SeekOrigin.Begin);
			string output = stream.getString();

			Assert.AreEqual(input.Length, output.Length);
			Assert.AreEqual(input, output);
		}
コード例 #23
0
        public static ChangeSettingRequest FromBytes(byte[] bytes)
        {
            VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);

            ChangeSettingRequest request = new ChangeSettingRequest();
            request.Index = stream.getByte();
            request.Value = stream.getUShort();

            return request;
        }
コード例 #24
0
		public override byte[] serialize() {
			VRage.ByteStream bs = new VRage.ByteStream(BaseSize, true);

			byte[] bMessage = base.serialize();
			bs.Write(bMessage, 0, bMessage.Length);

			bs.addLong(EntityID);

			return bs.Data;
		}
コード例 #25
0
		public override byte[] serialize() {
			VRage.ByteStream bs = new VRage.ByteStream(BaseSize, true);

			byte[] bmessage = base.serialize();
			bs.Write(bmessage, 0, bmessage.Length);

			bs.addString(Body);
			bs.addString(Title);

			return bs.Data;
		}
コード例 #26
0
        protected override byte[] ToBytes()
        {
            VRage.ByteStream stream = new VRage.ByteStream(32, true);

            stream.addUShort((ushort)ConcealedGrids.Count);
            foreach (ConcealableGrid grid in ConcealedGrids) {
                grid.AddToByteStream(stream);
            }

            return stream.Data;
        }
コード例 #27
0
        protected override byte[] ToBytes()
        {
            VRage.ByteStream stream = new VRage.ByteStream(SIZE);

            stream.addLong(EntityId);
            stream.addBoolean(Success);

            Log.Info("Serialized Conceal Response " + EntityId + " ? " + Success, "ToBytes");

            return stream.Data;
        }
コード例 #28
0
		public override byte[] serialize() {
			VRage.ByteStream bs = new VRage.ByteStream(BaseSize, true);

			byte[] bmessage = base.serialize();
			bs.Write(bmessage, 0, bmessage.Length);

			bs.addUShort((ushort)Owner.OwnerType);
			Fleet.serialize(bs);

			return bs.Data;
		}
コード例 #29
0
        public static ConcealResponse FromBytes(byte[] bytes)
        {
            VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);

            ConcealResponse response = new ConcealResponse();
            response.EntityId = stream.getLong();
            response.Success = stream.getBoolean();

            Log.Info("Deserialized Conceal Response " + response.EntityId + " ? " + response.Success, "ToBytes");

            return response;
        }
コード例 #30
0
        public override byte[] serialize()
        {
            VRage.ByteStream bs = new VRage.ByteStream(BaseSize, true);

            byte[] bmessage = base.serialize();
            bs.Write(bmessage, 0, bmessage.Length);

            bs.addString(NotificationText);
            bs.addUShort(Time);
            bs.addUShort((ushort)Font);

            return bs.Data;
        }
コード例 #31
0
        public void TestLongList()
        {
            List <long> input = new List <long>()
            {
                1, 2, 3, 4
            };

            VRage.ByteStream stream = new VRage.ByteStream(1, true);
            stream.addLongList(input);
            stream.Seek(0, System.IO.SeekOrigin.Begin);
            List <long> output = stream.getLongList();

            CollectionAssert.AreEqual(input, output);
        }
コード例 #32
0
        public static ConcealResponse FromBytes(byte[] bytes)
        {
            VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length);

            ConcealResponse response = new ConcealResponse();

            response.LoadFromByteStream(stream);
            response.EntityId = stream.getLong();
            response.Success  = stream.getBoolean();

            Log.Info("Deserialized Conceal Response " + response.EntityId + " ? " + response.Success, "ToBytes");

            return(response);
        }
コード例 #33
0
        // Byte Serialization
        public override void AddToByteStream(VRage.ByteStream stream)
        {
            base.AddToByteStream(stream);

            //Log.Trace("Adding observing entity to byte stream", "AddToByteStream");

            stream.addLongList(EntitiesViewing.Keys.ToList());
            stream.addDateTime(LastObservingTime);
            stream.addVector3D(LastObservingPosition);

            //Log.Trace("Serialized LastObservingTime of " + LastObservingTime, "AddToByteStream");
            //Log.Trace("Serialized LastObservingPosition of " + LastObservingPosition, "AddToByteStream");
            //Log.Trace("Serialized ViewDistance of " + ViewDistance, "AddToByteStream");
        }
コード例 #34
0
        protected override byte[] ToBytes()
        {
            VRage.ByteStream stream = new VRage.ByteStream(32, true);
            base.AddToByteStream(stream);

            //Log.Trace("Adding grids to response", "ToBytes");
            stream.addUShort((ushort)RevealedGrids.Count);
            foreach (RevealedGrid grid in RevealedGrids)
            {
                grid.AddToByteStream(stream);
                //Log.Trace("Added Grid", "ToBytes");
            }

            return(stream.Data);
        }
コード例 #35
0
        public void serialize(VRage.ByteStream stream)
        {
            stream.addString(DisplayName);
            stream.addUShort((ushort)MaxPerFaction);
            stream.addUShort((ushort)MaxPerSoloPlayer);
            stream.addUShort((ushort)CaptureMultiplier);
            stream.addLong(MaxBlocks);
            stream.addBoolean(ShouldBeStation);

            stream.addUShort((ushort)BlockTypeLimits.Length);
            foreach (int limit in BlockTypeLimits)
            {
                stream.addUShort((ushort)limit);
            }
        }
コード例 #36
0
        /*
         * private double GreatestObservingDistance {
         *  get {
         *      return new double[3]{
         *          ViewDistance, DetectDistance, CommunicateDistance
         *      }.Max();
         *  }
         * }
         */

        #endregion
        #region Constructors

        // Byte Deserialization
        public ObservingEntity(VRage.ByteStream stream) : base(stream)
        {
            List <long> entitiesViewing = stream.getLongList();

            foreach (long id in entitiesViewing)
            {
                EntitiesViewing.Add(id, null);
            }

            LastObservingTime     = stream.getDateTime();
            LastObservingPosition = stream.getVector3D();
            //Log.Trace("Deserialized LastObservingTime of " + LastObservingTime, "stream ctr");
            //Log.Trace("Deserialized LastObservingPosition of " + LastObservingPosition, "stream ctr");
            //Log.Trace("Deserialized ViewDistance of " + ViewDistance, "stream ctr");
        }
コード例 #37
0
        public static BlockType deserialize(VRage.ByteStream stream)
        {
            BlockType result = new BlockType();

            result.DisplayName = stream.getString();

            ushort subTypeStringsCount = stream.getUShort();

            result.SubTypeStrings = new List <string>();
            for (ushort i = 0; i < subTypeStringsCount; ++i)
            {
                result.SubTypeStrings.Add(stream.getString());
            }

            return(result);
        }
コード例 #38
0
            void ISerializer <BonesMsg> .Serialize(VRage.ByteStream destination, ref BonesMsg data)
            {
                BlitSerializer <long> .Default.Serialize(destination, ref data.GridEntityId);

                BlitSerializer <Vector3I> .Default.Serialize(destination, ref data.MinBone);

                BlitSerializer <Vector3I> .Default.Serialize(destination, ref data.MaxBone);

                Debug.Assert(data.Bones.Count <= ushort.MaxValue, "Increase bone array size");

                ushort count = (ushort)data.Bones.Count;

                BlitSerializer <ushort> .Default.Serialize(destination, ref count);

                destination.Write(data.Bones.GetInternalArray(), 0, data.Bones.Count);
            }
コード例 #39
0
            void ISerializer <BonesMsg> .Deserialize(VRage.ByteStream source, out BonesMsg data)
            {
                BlitSerializer <long> .Default.Deserialize(source, out data.GridEntityId);

                BlitSerializer <Vector3I> .Default.Deserialize(source, out data.MinBone);

                BlitSerializer <Vector3I> .Default.Deserialize(source, out data.MaxBone);

                ushort count;

                BlitSerializer <ushort> .Default.Deserialize(source, out count);

                data.Bones = new List <byte>(count);
                source.Read(data.Bones.GetInternalArray(), 0, count);
                data.Bones.SetSize(count);
            }
コード例 #40
0
        public static void addLongList(this VRage.ByteStream stream, List <long> L)
        {
            if (L == null)
            {
                stream.addUShort(0);
                return;
            }

            // Write length
            stream.addUShort((ushort)L.Count);

            // Write data
            foreach (long l in L)
            {
                stream.addLong(l);
            }
        }
コード例 #41
0
        // Byte Deserialization
        public RevealedEntity(VRage.ByteStream stream) : base(stream)
        {
            // Nearly everything is available from the ingame Entity
            IsObserved      = stream.getBoolean();
            IsRevealBlocked = stream.getBoolean();
            List <long> entitiesViewedByList = stream.getLongList();

            foreach (long id in entitiesViewedByList)
            {
                EntitiesViewedBy.Add(id, null);
            }
            RevealedAt = stream.getDateTime();

            MovedSinceIsInAsteroidCheck = true;
            Log.ClassName = "GP.Concealment.World.Entities.RevealedEntity";
            Log.Trace("Finished RevealedEntity deserialize constructor", "ctr");
        }
コード例 #42
0
        public static ControlPoint deserialize(VRage.ByteStream stream)
        {
            ControlPoint result = new ControlPoint();

            long x, y, z;

            x = stream.getLong();
            y = stream.getLong();
            z = stream.getLong();
            result.Position = new VRageMath.Vector3D(x, y, z);

            result.Name            = stream.getString();
            result.Radius          = (int)stream.getLong();
            result.TokensPerPeriod = (int)stream.getLong();

            return(result);
        }
コード例 #43
0
        public bool Reliable = true;                   // { get; protected set; }

        private byte[] ToBytes()
        {
            VRage.ByteStream stream =
                new VRage.ByteStream(HEADER_SIZE + Body.Length, true);

            stream.addUShort(DomainId);
            //Log.Trace("Serializing MessageTypeId " + MessageTypeId, "ToBytes");
            stream.addUShort(TypeId);
            //Log.Trace("Serializing SourceId " + SourceId, "ToBytes");
            stream.addUlong(SourceId);
            //Log.Trace("Serializing SourceTypeID " + (ushort)SourceType, "ToBytes");
            stream.addUShort((ushort)SourceType);
            //Log.Trace("Serializing Body.Length " + (ushort)Body.Length, "ToBytes");
            stream.addUShort((ushort)Body.Length);
            //Log.Trace("Serializing Body", "ToBytes");
            stream.Write(Body, 0, Body.Length);
            return(stream.Data);
        }
コード例 #44
0
        public static ConcealedGridsResponse FromBytes(byte[] bytes)
        {
            VRage.ByteStream       stream   = new VRage.ByteStream(bytes, bytes.Length);
            ConcealedGridsResponse response = new ConcealedGridsResponse();

            response.LoadFromByteStream(stream);

            ConcealedGrid grid;
            ushort        count = stream.getUShort();

            for (int i = 0; i < count; i++)
            {
                grid = new ConcealedGrid(stream);
                response.ConcealedGrids.Add(grid);
            }

            return(response);
        }
コード例 #45
0
        public static void addString(this VRage.ByteStream stream, string s)
        {
            if (s.Length > ushort.MaxValue)
            {
                stream.addUShort(0);
                return;
            }

            // Write length
            stream.addUShort((ushort)s.Length);

            // Write data
            char[] sarray = s.ToCharArray();
            for (ushort i = 0; i < s.Length; ++i)
            {
                stream.WriteByte((byte)sarray[i]);
            }
        }
コード例 #46
0
        public static List <long> getLongList(this VRage.ByteStream stream)
        {
            List <long> L = new List <long>();

            // Read length
            ushort len = stream.getUShort();

            if (len == 0)
            {
                return(null);
            }

            // Read data
            for (ushort i = 0; i < len; ++i)
            {
                L.Add(stream.getLong());
            }

            return(L);
        }
コード例 #47
0
        public static RevealedGridsResponse FromBytes(byte[] bytes)
        {
            VRage.ByteStream      stream   = new VRage.ByteStream(bytes, bytes.Length);
            RevealedGridsResponse response = new RevealedGridsResponse();

            response.LoadFromByteStream(stream);

            RevealedGrid grid;
            ushort       count = stream.getUShort();

            //Log.Trace("Retrieving " + count + " grids from response", "ToBytes");
            for (int i = 0; i < count; i++)
            {
                grid = new RevealedGrid(stream);
                response.RevealedGrids.Add(grid);
                //Log.Trace("Added grid " + grid.EntityId, "ToBytes");
            }

            return(response);
        }
コード例 #48
0
        public override void deserialize(VRage.ByteStream stream)
        {
            base.deserialize(stream);

            Settings = new ConquestSettings.SETTINGS();

            // Control Points
            ushort cpCount = stream.getUShort();

            Settings.ControlPoints = new List <Records.ControlPoint>();
            for (ushort i = 0; i < cpCount; ++i)
            {
                Settings.ControlPoints.Add(
                    Records.ControlPoint.deserialize(stream)
                    );
            }

            // CP Period
            Settings.CPPeriod = (int)stream.getLong();

            // Cleanup Period
            Settings.CleanupPeriod = (int)stream.getLong();

            // Block Types
            ushort blockTypesLength = stream.getUShort();

            Settings.BlockTypes = new Records.BlockType[blockTypesLength];
            for (ushort i = 0; i < blockTypesLength; ++i)
            {
                Settings.BlockTypes[i] = Records.BlockType.deserialize(stream);
            }

            // Hull Rules
            ushort hullRulesLength = stream.getUShort();

            Settings.HullRules = new Records.HullRuleSet[hullRulesLength];
            for (ushort i = 0; i < hullRulesLength; ++i)
            {
                Settings.HullRules[i] = Records.HullRuleSet.deserialize(stream);
            }
        }
コード例 #49
0
        public static MessageContainer FromBytes(byte[] buffer)
        {
            VRage.ByteStream stream = new VRage.ByteStream(buffer, buffer.Length);

            MessageContainer message = new MessageContainer();

            message.DomainId = stream.getUShort();
            message.TypeId   = stream.getUShort();
            //Log.Trace("Deserialized MessageTypeId " + message.MessageTypeId, "ToBytes");
            message.SourceId = stream.getUlong();
            //Log.Trace("Deserialized SourceId " + message.SourceId, "ToBytes");
            message.SourceType = (RunLocation)stream.getUShort();
            //Log.Trace("Deserialized SourceTypeId " + message.SourceType, "ToBytes");
            int length = (int)stream.getUShort();

            //Log.Trace("Deserialized Body.Length " + length, "ToBytes");
            message.Body = stream.getByteArray(length);
            //Log.Trace("Deserialized Body of length " + message.Body.Length, "ToBytes");

            return(message);
        }
コード例 #50
0
        public static HullRuleSet deserialize(VRage.ByteStream stream)
        {
            HullRuleSet result = new HullRuleSet();

            result.DisplayName       = stream.getString();
            result.MaxPerFaction     = stream.getUShort();
            result.MaxPerSoloPlayer  = stream.getUShort();
            result.CaptureMultiplier = stream.getUShort();
            result.MaxBlocks         = (int)stream.getLong();
            result.ShouldBeStation   = stream.getBoolean();

            ushort blockTypeLimitsCount = stream.getUShort();

            result.BlockTypeLimits = new int[blockTypeLimitsCount];
            for (ushort i = 0; i < blockTypeLimitsCount; ++i)
            {
                result.BlockTypeLimits[i] = stream.getUShort();
            }

            return(result);
        }
コード例 #51
0
        protected override byte[] ToBytes()
        {
            VRage.ByteStream stream = new VRage.ByteStream(32, true);
            base.AddToByteStream(stream);

            Character    character;
            RevealedGrid grid;

            Log.Info("Beginning serializing message at position " + stream.Position, "ToBytes");

            stream.addUShort((ushort)ObservingEntities.Count);
            Log.Info("With count pos " + stream.Position, "ToBytes");

            foreach (ObservingEntity e in ObservingEntities)
            {
                EntityType entityType = e.TypeOfEntity;

                Log.Info("Beginning add entity of type " + entityType + " at pos " + stream.Position + " / " + stream.Length, "ToBytes");

                stream.addUShort((ushort)entityType);

                switch (entityType)
                {
                case EntityType.Character:
                    character = e as Character;
                    character.AddToByteStream(stream);
                    break;

                case EntityType.Grid:
                    grid = e as RevealedGrid;
                    grid.AddToByteStream(stream);
                    break;
                }

                Log.Info("Finished adding entity at final pos " + stream.Position, "ToBytes");
            }

            Log.Info("Finished serializing message at position " + stream.Position, "ToBytes");
            return(stream.Data);
        }
コード例 #52
0
        public static BaseRequest messageFromBytes(byte[] buffer)
        {
            VRage.ByteStream stream = new VRage.ByteStream(buffer, buffer.Length);
            TYPE             t      = (TYPE)stream.getUShort();

            stream.Seek(0, System.IO.SeekOrigin.Begin);

            BaseRequest msg = null;

            switch (t)
            {
            case TYPE.FLEET:
                msg = new FleetRequest();
                break;

            case TYPE.SETTINGS:
                msg = new SettingsRequest();
                break;

            case TYPE.VIOLATIONS:
                msg = new ViolationsRequest();
                break;

            case TYPE.DISOWN:
                msg = new DisownRequest();
                break;

            case TYPE.STOPGRID:
                msg = new StopGridRequest();
                break;
            }

            if (msg != null)
            {
                msg.deserialize(stream);
            }
            return(msg);
        }
コード例 #53
0
            void ISerializer <StockpileChangedMsg> .Deserialize(VRage.ByteStream source, out StockpileChangedMsg data)
            {
                BlitSerializer <long> .Default.Deserialize(source, out data.GridEntityId);

                BlitSerializer <ushort> .Default.Deserialize(source, out data.SubBlockId);

                BlitSerializer <Vector3I> .Default.Deserialize(source, out data.BlockPosition);

                byte size = 0;

                BlitSerializer <byte> .Default.Deserialize(source, out size);

                m_tmpList.Clear();
                for (int i = 0; i < (int)size; ++i)
                {
                    MyStockpileItem item = new MyStockpileItem();
                    BlitSerializer <int> .Default.Deserialize(source, out item.Amount);

                    MyStringHash subtypeId;
                    BlitSerializer <MyStringHash> .Default.Deserialize(source, out subtypeId);

                    byte flags = 0;
                    BlitSerializer <byte> .Default.Deserialize(source, out flags);

                    MyRuntimeObjectBuilderId typeId;
                    BlitSerializer <MyRuntimeObjectBuilderId> .Default.Deserialize(source, out typeId);

                    item.Content = (MyObjectBuilder_PhysicalObject)MyObjectBuilderSerializer.CreateNewObject(
                        (MyDefinitionId) new DefinitionIdBlit(typeId, subtypeId));

                    item.Content.Flags = (MyItemFlags)flags;

                    m_tmpList.Add(item);
                }
                data.Changes = m_tmpList;
            }
コード例 #54
0
 public void serialize(VRage.ByteStream stream)
 {
     stream.addUShort((ushort)TotalCount);
     for (int i = 0; i < m_Counts.Length; ++i)
     {
         if (m_Counts[i] > 0)
         {
             if (m_SupportedGrids[i].Count > 0)
             {
                 foreach (KeyValuePair <long, GridEnforcer> entry in m_SupportedGrids[i])
                 {
                     entry.Value.serialize(stream);
                 }
             }
             if (m_UnsupportedGrids[i].Count > 0)
             {
                 foreach (KeyValuePair <long, GridEnforcer> entry in m_UnsupportedGrids[i])
                 {
                     entry.Value.serialize(stream);
                 }
             }
         }
     }
 }
コード例 #55
0
        public override byte[] serialize()
        {
            VRage.ByteStream bs = new VRage.ByteStream(BaseSize, true);

            byte[] bmessage = base.serialize();
            bs.Write(bmessage, 0, bmessage.Length);

            // Control Points
            bs.addUShort((ushort)Settings.ControlPoints.Count);
            foreach (Records.ControlPoint cp in Settings.ControlPoints)
            {
                cp.serialize(bs);
            }

            // CP Period
            bs.addLong(Settings.CPPeriod);

            // Cleanup Period
            bs.addLong(Settings.CleanupPeriod);

            // Block Types
            bs.addUShort((ushort)Settings.BlockTypes.Length);
            foreach (Records.BlockType bt in Settings.BlockTypes)
            {
                bt.serialize(bs);
            }

            // Hull Rules
            bs.addUShort((ushort)Settings.HullRules.Length);
            foreach (Records.HullRuleSet hrs in Settings.HullRules)
            {
                hrs.serialize(bs);
            }

            return(bs.Data);
        }
コード例 #56
0
 public static bool getBoolean(this VRage.ByteStream stream)
 {
     return(Convert.ToBoolean(stream.ReadByte()));
 }
コード例 #57
0
 // Byte Serialization
 public override void AddToByteStream(VRage.ByteStream stream)
 {
     base.AddToByteStream(stream);
     stream.addLongList(SpawnOwners);
     stream.addLongList(BigOwners);
 }
コード例 #58
0
 protected override byte[] ToBytes()
 {
     VRage.ByteStream stream = new VRage.ByteStream(SIZE);
     base.AddToByteStream(stream);
     return(stream.Data);
 }
コード例 #59
0
 public override void deserialize(VRage.ByteStream stream)
 {
     base.deserialize(stream);
     OwnerType = (GridOwner.OWNER_TYPE)stream.getUShort();
     FleetData = new List <GridEnforcer.GridData>(FactionFleet.deserialize(stream));
 }
コード例 #60
0
 // Byte Deserialization
 public ConcealedGrid(VRage.ByteStream stream) : base(stream)
 {
     SpawnOwners = stream.getLongList();
     BigOwners   = stream.getLongList();
 }