public void update() {
		growVillages();
		chunksLock.readLock().lock();
		try {
			for (Chunk c : chunks)
			{
				if (c.update() && !toDraw.contains(c))
				{
					toDraw.add(c);
				}
			}
		} finally {
			chunksLock.readLock().unlock();
		}
		
		ArrayList<Village> villages = getVillages();
		for (Village v : villages)
		{
			v.update();
		}
	}