public ArrayList<Drawable> getDrawable() {
		ArrayList<Drawable> ret = new ArrayList<Drawable>();
		if (fogOfWar){
		if(getPlayerPlanets(getHumanPlayer()).size() == 0) return ret;		
		// DFS uses Stack data structure
		HashSet<Planet> visited = new HashSet<Planet>();
		Stack<Planet> stack = new Stack<Planet>();
		stack.addAll(getPlayerPlanets(getHumanPlayer()));
		visited.addAll(getPlayerPlanets(getHumanPlayer()));
		while(!stack.isEmpty()) {
			Planet planet = stack.pop();
			for( Planet next : getNeighborPlanets(planet)){
				if(!visited.contains(next) && (planet.getOwner() == getHumanPlayer() || planet.siegedBy(getHumanPlayer()))){
					stack.add(next);
					visited.add(next);
				}
			}
			ret.add(planet);
			ret.addAll(planet.getFleets());
		}
		}
		else {
			ret.addAll(planets);
			ret.addAll(fleets);
		}
		
		return ret;
	}