use of de.gurkenlabs.litiengine.environment.tilemap.IMap in project litiengine by gurkenlabs.
the class EnvironmentEventTests method initEnvironment.
@BeforeEach
public void initEnvironment() {
IMap map = mock(IMap.class);
when(map.getSizeInPixels()).thenReturn(new Dimension(100, 100));
when(map.getSizeInTiles()).thenReturn(new Dimension(10, 10));
this.testEnvironment = new Environment(map);
}
use of de.gurkenlabs.litiengine.environment.tilemap.IMap in project litiengine by gurkenlabs.
the class EnvironmentTests method testInitialization.
@Test
public void testInitialization() {
IMap map = mock(IMap.class);
when(map.getSizeInPixels()).thenReturn(new Dimension(100, 100));
when(map.getSizeInTiles()).thenReturn(new Dimension(10, 10));
Environment env = new Environment(map);
assertNotNull(env);
}
use of de.gurkenlabs.litiengine.environment.tilemap.IMap in project litiengine by gurkenlabs.
the class ColorLayer method setTiles.
private void setTiles(BufferedImage img, Rectangle2D section) {
final IMap map = this.getEnvironment().getMap();
final Point startTile = MapUtilities.getTile(map, new Point2D.Double(section.getX(), section.getY()));
final Point endTile = MapUtilities.getTile(map, new Point2D.Double(section.getMaxX(), section.getMaxY()));
final int startX = MathUtilities.clamp(startTile.x, 0, tiles.length - 1);
final int startY = MathUtilities.clamp(startTile.y, 0, tiles[0].length - 1);
final int endX = MathUtilities.clamp(endTile.x, 0, tiles.length - 1);
final int endY = MathUtilities.clamp(endTile.y, 0, tiles[0].length - 1);
for (int x = startX; x < endX; x++) {
for (int y = startY; y < endY; y++) {
final BufferedImage smallImage = img.getSubimage((x - startX) * map.getTileSize().width, (y - startY) * map.getTileSize().height, map.getTileSize().width, map.getTileSize().height);
this.tiles[x][y] = smallImage;
}
}
}
use of de.gurkenlabs.litiengine.environment.tilemap.IMap in project litiengine by gurkenlabs.
the class ColorLayer method render.
@Override
public void render(Graphics2D g) {
final Rectangle2D viewport = Game.getCamera().getViewPort();
final IMap map = this.getEnvironment().getMap();
final Point startTile = MapUtilities.getTile(map, new Point2D.Double(viewport.getX(), viewport.getY()));
final Point endTile = MapUtilities.getTile(map, new Point2D.Double(viewport.getMaxX(), viewport.getMaxY()));
final int startX = MathUtilities.clamp(startTile.x, 0, tiles.length - 1);
final int endX = MathUtilities.clamp(endTile.x, 0, tiles.length - 1);
final int startY = MathUtilities.clamp(startTile.y, 0, tiles[0].length - 1);
final int endY = MathUtilities.clamp(endTile.y, 0, tiles[0].length - 1);
final Point2D origin = Game.getCamera().getViewPortLocation(0, 0);
// draw the tile on the layer image
for (int x = startX; x <= endX; x++) {
for (int y = startY; y <= endY; y++) {
RenderEngine.renderImage(g, tiles[x][y], origin.getX() + x * map.getTileSize().width, origin.getY() + y * map.getTileSize().height);
}
}
}
use of de.gurkenlabs.litiengine.environment.tilemap.IMap in project litiengine by gurkenlabs.
the class ColorLayer method updateSection.
public void updateSection(Rectangle2D section) {
if (this.getColor() == null) {
return;
}
final IMap map = this.getEnvironment().getMap();
final Rectangle2D tileSection = MapUtilities.getTileBoundingBox(map, section);
final BufferedImage img = ImageProcessing.getCompatibleImage((int) tileSection.getWidth(), (int) tileSection.getHeight());
final Graphics2D g = img.createGraphics();
this.renderSection(g, tileSection);
g.dispose();
this.setTiles(img, tileSection);
}
Aggregations