Exemplo n.º 1
0
 /// <summary>Writes data of a single game object into a packet</summary>
 /// <param name="data">The output packet</param>
 /// <param name="go">A game object to extract data from</param>
 private void WriteData(NetPacket.Factory data, GameObj go)
 {
     data.WriteUInt(go.ID);
     data.WriteString(go.GetType().FullName);
     data.WriteShort(go.hp);
     data.WriteShort(go.mp);
     data.WriteByte(go.state);
     data.WriteByte(go.frame);
     data.WriteFloat(go.dir);
     data.WriteFloat(go.ang.X);
     data.WriteFloat(go.ang.Y);
     data.WriteFloat(go.spd.X);
     data.WriteFloat(go.spd.Y);
     data.WriteFloat(go.pos.X);
     data.WriteFloat(go.pos.Y);
     data.WriteFloat(go.fce.X);
     data.WriteFloat(go.fce.Y);
     // TODO: Add a member method into GameObj for writing/reading?
     if (go is GEC)
     {
         GEC g = (GEC)go;
         data.WriteString(g.gfx.Name);
         data.WriteByte(g.GetPrefs());
     }
     else if (go is GPChain)
     {
         GPChain g = (GPChain)go;
         data.WriteFloat(g.GetBoltDest().X);
         data.WriteFloat(g.GetBoltDest().Y);
     }
 }