public void CopyTo(ProjectileShoot.Projectile instance)
 {
     instance.projectileID = this.projectileID;
     instance.startPos     = this.startPos;
     instance.startVel     = this.startVel;
     instance.seed         = this.seed;
 }
            public static void SerializeDelta(Stream stream, ProjectileShoot.Projectile instance, ProjectileShoot.Projectile previous)
            {
                MemoryStream memoryStream = Pool.Get <MemoryStream>();

                if (instance.projectileID != previous.projectileID)
                {
                    stream.WriteByte(8);
                    ProtocolParser.WriteUInt64(stream, (ulong)instance.projectileID);
                }
                if (instance.startPos != previous.startPos)
                {
                    stream.WriteByte(18);
                    memoryStream.SetLength((long)0);
                    Vector3Serialized.SerializeDelta(memoryStream, instance.startPos, previous.startPos);
                    uint length = (uint)memoryStream.Length;
                    ProtocolParser.WriteUInt32(stream, length);
                    stream.Write(memoryStream.GetBuffer(), 0, (int)length);
                }
                if (instance.startVel != previous.startVel)
                {
                    stream.WriteByte(26);
                    memoryStream.SetLength((long)0);
                    Vector3Serialized.SerializeDelta(memoryStream, instance.startVel, previous.startVel);
                    uint num = (uint)memoryStream.Length;
                    ProtocolParser.WriteUInt32(stream, num);
                    stream.Write(memoryStream.GetBuffer(), 0, (int)num);
                }
                if (instance.seed != previous.seed)
                {
                    stream.WriteByte(32);
                    ProtocolParser.WriteUInt64(stream, (ulong)instance.seed);
                }
                Pool.FreeMemoryStream(ref memoryStream);
            }
 public static ProjectileShoot.Projectile Deserialize(byte[] buffer, ProjectileShoot.Projectile instance, bool isDelta = false)
 {
     using (MemoryStream memoryStream = new MemoryStream(buffer))
     {
         ProjectileShoot.Projectile.Deserialize(memoryStream, instance, isDelta);
     }
     return(instance);
 }
 public virtual void WriteToStreamDelta(Stream stream, ProjectileShoot.Projectile previous)
 {
     if (previous == null)
     {
         ProjectileShoot.Projectile.Serialize(stream, this);
         return;
     }
     ProjectileShoot.Projectile.SerializeDelta(stream, this, previous);
 }
 public static ProjectileShoot.Projectile Deserialize(byte[] buffer)
 {
     ProjectileShoot.Projectile projectile = Pool.Get <ProjectileShoot.Projectile>();
     using (MemoryStream memoryStream = new MemoryStream(buffer))
     {
         ProjectileShoot.Projectile.Deserialize(memoryStream, projectile, false);
     }
     return(projectile);
 }
 public static byte[] SerializeToBytes(ProjectileShoot.Projectile instance)
 {
     byte[] array;
     using (MemoryStream memoryStream = new MemoryStream())
     {
         ProjectileShoot.Projectile.Serialize(memoryStream, instance);
         array = memoryStream.ToArray();
     }
     return(array);
 }
Example #7
0
    public void AddShootTick(ProtoBuf.ProjectileShoot.Projectile firedProjectile, BaseProjectile projectile, ProtoBuf.ProjectileShoot.Projectile bullet)
    {
        ShootTick tick = new ShootTick();

        tick.tickFired    = currentTick;
        tick.timeDelta    = Time.realtimeSinceStartup - timeLastShotFired;
        tick.projectile   = projectile;
        timeLastShotFired = Time.realtimeSinceStartup;
        tick.bullet       = bullet;
        shootTicks.Add(firedProjectile.projectileID, tick);
    }
 public static void ResetToPool(ProjectileShoot.Projectile instance)
 {
     if (!instance.ShouldPool)
     {
         return;
     }
     instance.projectileID = 0;
     instance.startPos     = new Vector3();
     instance.startVel     = new Vector3();
     instance.seed         = 0;
     Pool.Free <ProjectileShoot.Projectile>(ref instance);
 }
 public static ProjectileShoot.Projectile Deserialize(Stream stream, ProjectileShoot.Projectile instance, bool isDelta)
 {
     while (true)
     {
         int num = stream.ReadByte();
         if (num == -1)
         {
             break;
         }
         if (num <= 18)
         {
             if (num == 8)
             {
                 instance.projectileID = (int)ProtocolParser.ReadUInt64(stream);
                 continue;
             }
             else if (num == 18)
             {
                 Vector3Serialized.DeserializeLengthDelimited(stream, ref instance.startPos, isDelta);
                 continue;
             }
         }
         else if (num == 26)
         {
             Vector3Serialized.DeserializeLengthDelimited(stream, ref instance.startVel, isDelta);
             continue;
         }
         else if (num == 32)
         {
             instance.seed = (int)ProtocolParser.ReadUInt64(stream);
             continue;
         }
         Key key = ProtocolParser.ReadKey((byte)num, stream);
         if (key.Field == 0)
         {
             throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream");
         }
         ProtocolParser.SkipKey(stream, key);
     }
     return(instance);
 }
        public static void Serialize(Stream stream, ProjectileShoot instance)
        {
            MemoryStream memoryStream = Pool.Get <MemoryStream>();

            stream.WriteByte(8);
            ProtocolParser.WriteUInt64(stream, (ulong)instance.ammoType);
            if (instance.projectiles != null)
            {
                for (int i = 0; i < instance.projectiles.Count; i++)
                {
                    ProjectileShoot.Projectile item = instance.projectiles[i];
                    stream.WriteByte(18);
                    memoryStream.SetLength((long)0);
                    ProjectileShoot.Projectile.Serialize(memoryStream, item);
                    uint length = (uint)memoryStream.Length;
                    ProtocolParser.WriteUInt32(stream, length);
                    stream.Write(memoryStream.GetBuffer(), 0, (int)length);
                }
            }
            Pool.FreeMemoryStream(ref memoryStream);
        }
 public static void SerializeLengthDelimited(Stream stream, ProjectileShoot.Projectile instance)
 {
     byte[] bytes = ProjectileShoot.Projectile.SerializeToBytes(instance);
     ProtocolParser.WriteUInt32(stream, (uint)bytes.Length);
     stream.Write(bytes, 0, (int)bytes.Length);
 }
 public static ProjectileShoot.Projectile DeserializeLengthDelimited(Stream stream)
 {
     ProjectileShoot.Projectile projectile = Pool.Get <ProjectileShoot.Projectile>();
     ProjectileShoot.Projectile.DeserializeLengthDelimited(stream, projectile, false);
     return(projectile);
 }
 public static ProjectileShoot.Projectile DeserializeLength(Stream stream, int length)
 {
     ProjectileShoot.Projectile projectile = Pool.Get <ProjectileShoot.Projectile>();
     ProjectileShoot.Projectile.DeserializeLength(stream, length, projectile, false);
     return(projectile);
 }
 public ProjectileShoot.Projectile Copy()
 {
     ProjectileShoot.Projectile projectile = Pool.Get <ProjectileShoot.Projectile>();
     this.CopyTo(projectile);
     return(projectile);
 }