public NetworkPlayer(byte playerID, NetConnection connection, Vector2 playerPos, string name)
        {
            NetConnection = connection;

            UpdateMask |= 1;
            UpdateMask |= (int)PlayerUpdateFlags.Player_Position;

            this.PlayerID = playerID;
            this.EntityPosition = playerPos;
            this.PlayerName = name;
            EntityVelocity.X = 3;

            PlayerBlockCache = new BlockData[GameServer.WorldSizeX, GameServer.WorldSizeY];

            Inventory = new PlayerInventory(this);
            PClass = new PlayerClassDestroyer(this);

            for (int x = 0; x < GameServer.WorldSizeX; x++)
                for (int y = 0; y < GameServer.WorldSizeY; y++)
                    PlayerBlockCache[x, y] = new BlockData();

            Respawn();
        }
 /// <summary>
 /// Returns true if a class can pick up this item
 /// </summary>
 /// <param name="pClass">The PlayerClass to test against</param>
 public bool CanPickup(PlayerClass pClass)
 {
     if (_classesCanPickup.Length == 0) return true;
     for(int i = 0; i < PlayerClass.PlayerClasses.Length; i++)
     {
         if(pClass.GetType() == PlayerClass.PlayerClasses[i])
         {
             return CanPickup(i);
         }
     }
     return false;
 }