Example #1
0
        void ClientReceive(NetIncomingMessage msg)
        {
            ServerHeaders header = (ServerHeaders)msg.ReadByte();

            switch (header)
            {
            case ServerHeaders.POSITION:
                int id = msg.ReadInt32();

                if (id > world.NPCs.Count - 1)
                {
                    return;
                }

                float pX = msg.ReadFloat();
                float pY = msg.ReadFloat();

                //string eTag = msg.ReadString();

                //int pX = msg.ReadInt32();
                //int pY = msg.ReadInt32();

                world.NPCs[id].transform.position = new Vector2(pX, pY);
                //world.NPCs[id].Tag = eTag;

                break;

            case ServerHeaders.UPDATE_TAG:
                int tID = msg.ReadInt32();
                //string eTag = msg.ReadString();

                //world.NPCs[tID].Tag = eTag;
                world.NPCs[tID].UpdateData(msg);

                break;

            case ServerHeaders.SET_TILE:
                int sX   = msg.ReadInt32();
                int sY   = msg.ReadInt32();
                int sSet = msg.ReadInt32();

                world.SetTile(new Tile(sSet), sX, sY, false);

                break;

            case ServerHeaders.SEND_CHUNK:
                int cX = msg.ReadInt32();
                int cY = msg.ReadInt32();

                world.chunks[cX, cY] = Chunk.BytesToChunk(msg.ReadBytes(Chunk.size * Chunk.size), cX, cY);

                break;

            case ServerHeaders.SPAWN_ENTITY:
                int    sE  = msg.ReadInt32();
                float  eX  = msg.ReadFloat();
                float  eY  = msg.ReadFloat();
                string tag = msg.ReadString();

                NPC npc = NPC.FromNPCType(world, (NPC.NPCType)sE, tag);
                npc.transform.position = new Vector2(eX, eY);

                world.NPCs.Add(npc);

                break;

            case ServerHeaders.KILL_ENTITY:
                int npcID = msg.ReadInt32();

                world.NPCs.RemoveAt(npcID);
                break;
            }
        }
Example #2
0
 public HandlerHeaderAttribute(ServerHeaders header)
 {
     Header = header;
 }