public void render(Screen screen){	
		screen.setOffset(xScroll, yScroll);
		int x0 = xScroll / 32;
		int x1 = (xScroll + screen.width + 32) / 32;
		int y0 = yScroll / 32;
		int y1 = (yScroll + screen.height + 32) / 32;
		for(int y = y0; y < y1; y++){
			for(int x = x0; x < x1; x++){
				//Render the background tiles.
				getTile(x, y).render(x, y, -1, screen);

			}
		}
		
		//Render LINES
		int px = getPlayer().getX();
		int py = getPlayer().getY();
		for(Mob m : mobs){
			if(m instanceof Player) continue;
			screen.renderLine(px + 16, py + 16, m.getX() + 16, m.getY() + 16, xScroll, yScroll, this);
		}
		
		
//		for(Particle p : particles) p.render(xScroll, yScroll, font, screen);
		for(int i = 0; i < height * 32; i++){
			for(Particle p : particles){
				if(p.getY() == i) p.render(xScroll, yScroll, font, screen);
			}
		}
		for(Item i : items) i.render(xScroll, yScroll, screen);
//		for(Mob m : mobs) m.render(xScroll, yScroll, screen);
		for(int i = 0; i < height; i++){
			for(Mob m : mobs){
				if(m.getY() / 32== i) m.render(xScroll, yScroll, screen);
			}
		}
//		player.render(xScroll, yScroll, screen);
		
		for(Spawner s : spawners){
			Font.render(s.getAmount() + "", s.getX() * 32 - xScroll, s.getY() * 32 - yScroll, 0xffffffff, 4, true, screen);
		}
		
//		for(int y = 0; y < height; y++){
//			for(int x = 0; x < width; x++){
//				for(int ya = 0; ya < 32; ya++){
//					for(int xa = 0; xa < 32; xa++){
//						if(ya == 0 || xa == 0){
//							screen.renderPixelTrans(xa + x * 32 - xScroll, ya + y * 32 - yScroll, 0xffffffff, 0.7f);
//						}
//					}
//				}
//				
		
		
		Font.render("WASD to move, arrow keys to attack, shift to sprint.", 450, 710, 0xffffffff, 1, true, screen);
		Font.render("Mob Count: " + mobs.size(), 10, 700, 0xffffffff, 1, true, screen);
		Font.render("Particle Count: " + particles.size(), 10, 710, 0xffffffff, 1, true, screen);
				
//		font.render("Energy: " + (int)player.getEnergy() + "%", 10, 10, 0xffff00ff, 2f, true, screen);
//		font.render("Weight: " + player.getWeight(), 10, 30, 0xff6CC9F8, 1, true, screen);
//		font.render("Gold: " + player.getInventory().getAmount(), 10, 50, 0xffffffff, 1, true, screen);
//		
//		font.render("Energy: " + (int)player.getEnergy() + "%", 150, 10, 0xffffffff, 3, true, screen);
//		font.render("Weight: " + player.getWeight(), 150, 35, 0xffffffff, 3, true, screen);
//		font.render("Gold: " + player.getInventory().getAmount(), 150, 60, 0xfffff00f, 3, true, screen);
//		
//		font.render("Energy: " + (int)player.getEnergy() + "%", 450, 10, 0xff7fCfff, 3, false, screen);
//		font.render("Weight: " + player.getWeight(), 450, 35, 0xfff1Afff, 3, false, screen);
//		font.render("Gold: " + player.getInventory().getAmount(), 450, 60, 0xff22ffff, 3, false, screen);
		
		Font.render("Score " + getPlayer().getScore(), 10, 10, 0xB03030, 3, true, screen);
		
		Font.render("Gold:", 10, 40, 0xffffffff, 2, true, screen);
		Font.render(getPlayer().getInventory().getAmount(), 85, 40, 0xfffff00f, 2, true, screen);
		
		if(fail){
			Font.render("You Died!", 425, 250, 0xffff0000, 7, true, screen);
			Font.render("Moron", 615, 315, 0xffff0000, 1, true, screen);
		}
	}