public void setTowers(LinkedList<Tower> newTowers) {
		int x = 400;
		int x2;
		towers = newTowers;
		String currentPackage = newTowers.getFirst().getCityName();
		if(currentPackage.contains(".")){
			currentPackage = currentPackage.substring(currentPackage.lastIndexOf(".")+1, currentPackage.length());
		}
		
		calculateWorldDimensions();
		
		//quinnTest
		Texture image = new Texture();
        try {
			image.loadFromFile(Paths.get("resources","billboard.png"));
		} catch (IOException e) {
			System.out.println("Error in package sign sprite load");
		}
		Sprite firstSign = new Sprite(image);
		firstSign.setPosition(x - 3, worldDimensions.height/2 - firstSign.getGlobalBounds().height - 3);
		packageSigns.add(firstSign);
		//quinnTest end
		
		Text firstPackageText = new Text(currentPackage, defaultFont, 16);
		firstPackageText.setStyle(Text.BOLD|Text.UNDERLINED);
		firstPackageText.setColor(new Color(0,0,0));
		firstPackageText.setPosition(firstSign.getPosition().x + firstSign.getGlobalBounds().width/2 - firstPackageText.getLocalBounds().width/2, firstSign.getPosition().y + 30);
		packageTexts.add(firstPackageText);
		
		LinkedList<Tower> packageTowers = new LinkedList<Tower>();
		
		x = x + (int) firstSign.getGlobalBounds().width;
		
        
        Font defaultFont = new Font();
        
		try {
			defaultFont.loadFromFile(FileSystems.getDefault().getPath("resources","arialbd.ttf"));
		} catch (IOException e) {
			e.printStackTrace();
		}		
		
		Texture metalBG = new Texture();
        try {
			metalBG.loadFromFile(Paths.get("resources","metal.png"));
		} catch (IOException e) {
			System.out.println("Error in package sign sprite load");
		}		
        
        RectangleShape towerSign;
        Text signName;
		
		for (Tower t: towers) {
			String compareName = t.getCityName();
			if(compareName.contains(".")){
				compareName = compareName.substring(compareName.lastIndexOf(".")+1, compareName.length());
			}
			
			if (!compareName.equals(currentPackage)) {
				currentPackage = t.getCityName();
				if(currentPackage.contains(".")){
					currentPackage = currentPackage.substring(currentPackage.lastIndexOf(".")+1, currentPackage.length());
				}
				
				//quinnTest
				Sprite newSign = new Sprite(image);
				newSign.setPosition(x+cityDistance-newSign.getGlobalBounds().width - 3, worldDimensions.height/2 - newSign.getGlobalBounds().height - 3);
				packageSigns.add(newSign);
				//quinnTest end
				
				Text newPackageText = new Text(currentPackage, defaultFont, 16);
				newPackageText.setColor(new Color(0,0,0));
				newPackageText.setStyle(Text.BOLD|Text.UNDERLINED);
				newPackageText.setPosition(newSign.getPosition().x + newSign.getGlobalBounds().width/2 - newPackageText.getLocalBounds().width/2, newSign.getPosition().y + 35);
				packageTexts.add(newPackageText);
				
				x = x + cityDistance;
				Author owner = findPackageOwner(packageTowers);
				
				packageOwners.add(owner);
		        
				packageTowers.clear();

			}
			
			packageTowers.push(t);
			
			//hack to see all towers
			t.setTowerPosition(x, worldDimensions.height/2);
			x2 = x;
			x=x+t.getTowerWidth()+t.getTowerDepth();
			//end hack to see all towers
			
			
			t.updateFloors(grassMidHeight);
			t.setTowerOwner();
			
			signName  = new Text(t.getTowerName(), defaultFont , 18);
	        signName.setColor(new Color(255,255,255));
	        signName.setPosition(x2 + t.getTowerWidth()/2 - signName.getLocalBounds().width/2, worldDimensions.height/2 -  (t.getTowerHeightAbove() + 30 + 5));   
	        
	        signNames.add(signName);

			towerSign = new RectangleShape(new Vector2f(signName.getLocalBounds().width,30));
	        towerSign.setPosition(signName.getPosition().x,worldDimensions.height/2 -  (t.getTowerHeightAbove() + towerSign.getSize().y + 5));
	        towerSign.setFillColor(t.getTowerOwner().getAuthorColor());
	        towerSign.setOutlineThickness(5);
	        towerSign.setOutlineColor(new Color(52,40,44));
	        towerSign.setTexture(metalBG);
	        
	        towerSigns.add(towerSign);
		}
		
		Author lastOwner = findPackageOwner(packageTowers);
		packageOwners.add(lastOwner);
		
		addPackageSignText();
		
		setUpLegend();
		
		createGround();
		createGrassTop();
		createGrassMid();
		createSky();
	}