public boolean lightsChanged() {
		HashSet<String> states = new HashSet<String>();
		if (cacheDate != engine.getCurrentRound())
			return true;
		try {
			for (Light l : lights) {
				states.add(l.getX() + "," + l.getY()
						+ (l.isOn(engine.getCurrentRound()) ? " ON" : " OFF"));
			}
		} catch (ConcurrentModificationException e) {
			return true;
		}
		int hash = states.hashCode();
		if (hash != lightsHash) {
			lightsHash = hash;
			return true;
		}
		return false;
	}