@Raw
	public World(double width, double height, boolean[][] passableMap,
			Random random) throws IllegalArgumentException {
		if (!isValidDimension(width, height))
			throw new IllegalArgumentException("The dimension provided isn't a valid dimension for a World");
		if(random == null)
			throw new IllegalArgumentException("The random parameter was a null reference, which isn't allowed.");
		if(passableMap == null)
			throw new IllegalArgumentException("The passableMap musn't be a null reference.");
		if(!isRectangleDimension(passableMap))
			throw new IllegalArgumentException("The passableMap must be a rectangle shaped dimension.");
		
		this.width = width;
		this.height = height;
		//Cloned because we don't want anyone to modify our world while we're playing.
		this.passableMap = getInvertedMap(Util.deepClone(passableMap));
		this.random = random;
		gameObjList = new ArrayList<GameObject>();
		teamList = new ArrayList<Team>();
	}