package rabbitescape.render;
import rabbitescape.engine.World;
import rabbitescape.render.androidlike.Bitmap;
import rabbitescape.render.androidlike.Canvas;
import rabbitescape.render.androidlike.Paint;
public class GraphPaperBackground
{
public static <T extends Bitmap, P extends Paint> void drawBackground(
World world,
Renderer<T,P> renderer,
Canvas<T, P> canvas,
P white,
P graphPaperMajor,
P graphPaperMinor
)
{
canvas.drawColor( white );
int minTile = -2;
int maxTileX = world.size.width + 2;
int maxTileY = world.size.height + 2;
int minX = renderer.offsetX + ( minTile * renderer.tileSize );
int maxX = renderer.offsetX + ( maxTileX * renderer.tileSize );
int minY = renderer.offsetY + ( minTile * renderer.tileSize );
int maxY = renderer.offsetY + ( maxTileY * renderer.tileSize );
double inc = renderer.tileSize / 4.0;
for( int x = minX; x < maxX; x += renderer.tileSize )
{
for ( int sub = 1; sub < 4; ++sub )
{
int dx = (int)( x + ( sub * inc ) );
canvas.drawLine( dx, minY, dx, maxY, graphPaperMinor );
}
}
for( int y = minY; y < maxY; y += renderer.tileSize )
{
for ( int sub = 1; sub < 4; ++sub )
{
int dy = (int)( y + ( sub * inc ) );
canvas.drawLine( minX, dy, maxX, dy, graphPaperMinor );
}
}
for( int x = minX; x <= maxX; x += renderer.tileSize )
{
canvas.drawLine( x, minY, x, maxY, graphPaperMajor );
}
for( int y = minY; y <= maxY; y += renderer.tileSize )
{
canvas.drawLine( minX, y, maxX, y, graphPaperMajor );
}
}
}