/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.pepsoft.worldpainter;
import org.pepsoft.worldpainter.layers.Layer;
import java.awt.*;
import java.util.Set;
import static org.pepsoft.worldpainter.Constants.TILE_SIZE;
/**
*
* @author pepijn
*/
public class DimensionRenderer {
public DimensionRenderer(Dimension dimension, TileRenderer tileRenderer) {
setDimension(dimension);
setTileRenderer(tileRenderer);
}
public void addHiddenLayer(Layer hiddenLayer) {
tileRenderer.addHiddenLayer(hiddenLayer);
}
public void removeHiddenLayer(Layer layer) {
tileRenderer.removeHiddenLayer(layer);
}
public Set<Layer> getHiddenLayers() {
return tileRenderer.getHiddenLayers();
}
public void setHiddenLayers(Set<Layer> hiddenLayers) {
tileRenderer.setHiddenLayers(hiddenLayers);
}
public void renderTile(Image image, int x, int y) {
Tile tile = dimension.getTile(x, y);
if (tile != null) {
tileRenderer.setTile(tile);
tileRenderer.renderTile(image, (x - dimension.getLowestX()) * TILE_SIZE, (y - dimension.getLowestY()) * TILE_SIZE);
}
}
public final Dimension getDimension() {
return dimension;
}
public final void setDimension(Dimension dimension) {
if (dimension == null) {
throw new NullPointerException();
}
this.dimension = dimension;
if (tileRenderer != null) {
tileRenderer.setTileProvider(dimension);
}
}
public final TileRenderer getTileRenderer() {
return tileRenderer;
}
public final void setTileRenderer(TileRenderer tileRenderer) {
if (tileRenderer == null) {
throw new NullPointerException();
}
this.tileRenderer = tileRenderer;
tileRenderer.setTileProvider(dimension);
}
private Dimension dimension;
private TileRenderer tileRenderer;
}