package com.ready.rain.graphics;

import java.util.Random;
import com.ready.rain.level.tile.Tile;

public class Screen {

	public int width, height;
	public int[] pixels;
	public final int MAP_SIZE = 64;
	public final int MAP_SIZE_MASK = MAP_SIZE - 1;
	
	public int xOffset, yOffset;
	
	public int [] tiles = new int [MAP_SIZE *MAP_SIZE];
	
	private Random random = new Random () ;
	
	public Screen (int width, int height) {
		this.width = width;
		this.height = height;
		pixels = new int [width * height];
		
		for (int i = 0; i < MAP_SIZE * MAP_SIZE; i++ ) {
			tiles[i] = random.nextInt(0xffffff) ;
			tiles [0] = 0;
		}
		
		}
	
	public void clear () {
		for (int i = 0; i < pixels.length; i++) {
			pixels[i] = 0;
		}
	}
	
	/* public void render (int xOffset, int yOffset) {
		for (int y = 0; y < height; y++ ){
			int yp = y + yOffset;
			if (yp < 0 || yp >= height) continue;
			for (int x = 0; x < width; x++) {
				int xp = x + xOffset;
				if (xp < 0 || xp >= width) continue;
				pixels [xp + yp * width] = Sprite.grass.pixels [(x & 15) + (y & 15) * Sprite.grass.SIZE];
			}
				
		}
	
	}*/

		public void renderTile(int xp, int yp, Tile tile){
			xp -= xOffset;
			yp -= yOffset;
			 for (int y = 0; y < tile.sprite.SIZE; y++) {
				 int ya =  y + yp;
				 for (int x = 0; x < tile.sprite.SIZE; x++) {
					 int xa =  x + xp;
					 	if(xa < -tile.sprite.SIZE || xa >= width || ya < 0 || ya >= width)break;
					 	if (xa < 0) xa = 0;
					 	pixels[xa + ya * width] = tile.sprite.pixels[x + y * tile.sprite.SIZE];
			 }
		}
}
		
		
		public void setOffset(int xOffset, int yOffset) {
			this.xOffset = xOffset;
			this.yOffset = yOffset;
		}
}
		

@@ -498,16 +498,24 @@
 * height
+ + 48600
 %5D;%0A%09%09%0A%09%09

Update Screen.java