Files
RAGECOOP-V/RageCoop.Core/Packets/ProjectileSync.cs
2022-09-08 12:37:06 -07:00

86 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using GTA.Math;
using Lidgren.Network;
namespace RageCoop.Core
{
internal partial class Packets
{
internal class ProjectileSync : Packet
{
public override PacketType Type => PacketType.ProjectileSync;
public int ID { get; set; }
public int ShooterID { get; set; }
public uint WeaponHash { get; set; }
public Vector3 Position { get; set; }
public Vector3 Rotation { get; set; }
public Vector3 Velocity { get; set; }
public ProjectileDataFlags Flags { get; set; }
protected override void Serialize(NetOutgoingMessage m)
{
// Write id
m.Write(ID);
// Write ShooterID
m.Write(ShooterID);
m.Write(WeaponHash);
// Write position
m.Write(Position);
// Write rotation
m.Write(Rotation);
// Write velocity
m.Write(Velocity);
m.Write((byte)Flags);
}
public override void Deserialize(NetIncomingMessage m)
{
#region NetIncomingMessageToPacket
// Read id
ID = m.ReadInt32();
// Read ShooterID
ShooterID= m.ReadInt32();
WeaponHash= m.ReadUInt32();
// Read position
Position = m.ReadVector3();
// Read rotation
Rotation = m.ReadVector3();
// Read velocity
Velocity =m.ReadVector3();
Flags=(ProjectileDataFlags)m.ReadByte();
#endregion
}
}
}
}