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; } }
public HandlerHeaderAttribute(ServerHeaders header) { Header = header; }