protected FlagInstance CreateFlag(FlagUpdateData data) { FlagInstance inst = new FlagInstance(); inst.ID = data.FlagID; inst.Flag = FlagTypeList.GetFromAbriv(data.Abreviation); WorldFlags.Add(inst); return(inst); }
public override void Unpack(byte[] data) { Reset(data); if (IsServer()) { FlagData.FlagID = ReadUInt16(); } else { PlayerID = ReadByte(); FlagData = ReadFlagUpdateData(); } }
protected FlagInstance GetFlag(FlagUpdateData data) { FlagInstance inst = FindFlagByID(data.FlagID); if (inst != null) { return(inst); } inst = new FlagInstance(); inst.ID = data.FlagID; inst.Flag = FlagTypeList.GetFromAbriv(data.Abreviation); WorldFlags.Add(inst); return(inst); }
protected FlagUpdateData ReadFlagUpdateData() { FlagUpdateData flag = new FlagUpdateData(); flag.FlagID = ReadUInt16(); flag.Abreviation = ReadFixedSizeString(2); flag.Status = (FlagStatuses)ReadUInt16(); flag.Endurance = (FlagEndurances)ReadUInt16(); flag.OwnerID = ReadByte(); flag.Position = ReadVector3F(); flag.LaunchPosition = ReadVector3F(); flag.LandingPostion = ReadVector3F(); flag.FlightTime = ReadFloat(); flag.FlightEnd = ReadFloat(); flag.InitalVelocity = ReadFloat(); return(flag); }
protected FlagInstance SetFlagUpdateData(FlagUpdateData u) { bool created = false; FlagInstance flag = FindFlagByID(u.FlagID); if (flag == null) { created = true; flag = CreateFlag(u); } flag.Status = u.Status; flag.Endurance = u.Endurance; var owner = PlayerList.GetPlayerByID(u.Owner); flag.Owner = owner; if (owner != null) { owner.SetFlag(flag); } flag.CurrentPosition = u.Postion; flag.LastUpdatePostion = u.Postion; flag.LaunchPosition = u.LaunchPosition; flag.LandingPostion = u.LandingPostion; flag.FlightTime = u.FlightTime; flag.FlightEnd = u.FlightEnd; flag.InitialVelocity = u.InitalVelocity; if (created && FlagCreated != null) { FlagCreated.Invoke(this, flag); } else if (!created && FlagUpdated != null) { FlagUpdated.Invoke(this, flag); } return(flag); }
public void WriteFlagUpdateData(FlagUpdateData flag, bool useFakeFlag) { WriteInt16(flag.FlagID); if (useFakeFlag) { WriteFixedSizeString("PZ", 2); } else { WriteFixedSizeString(flag.Abreviation, 2); } WriteUInt16((UInt16)flag.Status); WriteUInt16((UInt16)flag.Endurance); WriteByte(flag.OwnerID); WriteVector3F(flag.Position); WriteVector3F(flag.LaunchPosition); WriteVector3F(flag.LandingPostion); WriteFloat(flag.FlightTime); WriteFloat(flag.FlightEnd); WriteFloat(flag.InitalVelocity); }