Search in sources :

Example 1 with IMap

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);
}
Also used : IMap(de.gurkenlabs.litiengine.environment.tilemap.IMap) Dimension(java.awt.Dimension) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 2 with IMap

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);
}
Also used : IMap(de.gurkenlabs.litiengine.environment.tilemap.IMap) Dimension(java.awt.Dimension) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 3 with IMap

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;
        }
    }
}
Also used : IMap(de.gurkenlabs.litiengine.environment.tilemap.IMap) Point2D(java.awt.geom.Point2D) Point(java.awt.Point) Point(java.awt.Point) BufferedImage(java.awt.image.BufferedImage)

Example 4 with IMap

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);
        }
    }
}
Also used : IMap(de.gurkenlabs.litiengine.environment.tilemap.IMap) Point2D(java.awt.geom.Point2D) Rectangle2D(java.awt.geom.Rectangle2D) Point(java.awt.Point) Point(java.awt.Point)

Example 5 with IMap

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);
}
Also used : IMap(de.gurkenlabs.litiengine.environment.tilemap.IMap) Rectangle2D(java.awt.geom.Rectangle2D) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D)

Aggregations

IMap (de.gurkenlabs.litiengine.environment.tilemap.IMap)7 Dimension (java.awt.Dimension)3 BufferedImage (java.awt.image.BufferedImage)3 Point (java.awt.Point)2 Point2D (java.awt.geom.Point2D)2 Rectangle2D (java.awt.geom.Rectangle2D)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 ITileset (de.gurkenlabs.litiengine.environment.tilemap.ITileset)1 Spritesheet (de.gurkenlabs.litiengine.graphics.Spritesheet)1 Graphics2D (java.awt.Graphics2D)1 ArrayList (java.util.ArrayList)1 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)1 Test (org.junit.jupiter.api.Test)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1