@Override public void paint(Level level) { Painter.fill( level, this, Terrain.WALL ); Painter.fillEllipse( level, this, 1 , Terrain.EMPTY ); for (Door door : connected.values()) { door.set( Door.Type.REGULAR ); if (door.x == left || door.x == right){ Painter.drawInside(level, this, door, width()/2, Terrain.EMPTY); } else { Painter.drawInside(level, this, door, height()/2, Terrain.EMPTY); } } Painter.fillEllipse( level, this, 3 , Terrain.CHASM ); } }
@Override public void paint( Level level ) { Painter.fill( level, this, Terrain.WALL ); Painter.fill( level, this, 1 , Terrain.EMPTY ); for (Door door : connected.values()) { door.set( Door.Type.REGULAR ); //set door areas to be empty to help with create walls logic Painter.set(level, door, Terrain.EMPTY); } createWalls( level, new Rect(left+1, top+1, right-1, bottom-1)); }
public void paint( Level level ) { Painter.fill( level, this, Terrain.WALL ); Painter.fill( level, this, 1, Dungeon.bossLevel( Dungeon.depth + 1 ) ? Terrain.HIGH_GRASS : Terrain.CHASM ); Point p = Painter.drawInside( level, this, door, Math.abs( door.x - c.x ) - 2, Terrain.EMPTY_SP ); for (; p.y != c.y; p.y += p.y < c.y ? +1 : -1) { Painter.set( level, p, Terrain.EMPTY_SP ); Point p = Painter.drawInside( level, this, door, Math.abs( door.y - c.y ) - 2, Terrain.EMPTY_SP ); for (; p.x != c.x; p.x += p.x < c.x ? +1 : -1) { Painter.set( level, p, Terrain.EMPTY_SP ); Painter.fill( level, c.x - 1, c.y - 1, 3, 3, Terrain.EMBERS ); Painter.set( level, c, Terrain.PEDESTAL );
public void paint( Level level ) { Painter.fill( level, this, Terrain.WALL ); Point door = entrance(); Point well; if (door.x == left){ well = new Point(right-2, door.y); } else if (door.x == right){ well = new Point(left+2, door.y); } else if (door.y == top){ well = new Point(door.x, bottom-2); } else { well = new Point(door.x, top+2); } Painter.fill(level, well.x-1, well.y-1, 3, 3, Terrain.CHASM); Painter.drawLine(level, door, well, Terrain.EMPTY); Painter.set( level, well, Terrain.WELL ); @SuppressWarnings("unchecked") Class<? extends WellWater> waterClass = (Class<? extends WellWater>) Random.element( WATERS ); WellWater.seed(well.x + level.width() * well.y, 1, waterClass, level); entrance().set( Door.Type.HIDDEN ); } }
@Override public void paint(Level level) { Painter.fill( level, this, Terrain.WALL ); Painter.fill( level, this, 1, Terrain.CHASM ); ArrayList<Rect> platforms = new ArrayList<>(); splitPlatforms( new Rect(left+2, top+2, right-2, bottom-2), platforms); for (Rect platform : platforms){ Painter.fill( level, platform.left, platform.top, platform.width()+1, platform.height()+1, Terrain.EMPTY_SP); } for (Door door : connected.values()) { door.set( Door.Type.REGULAR ); Painter.drawInside(level, this, door, 2, Terrain.EMPTY_SP); } }
public void paint( Level level ) { Painter.fill(level, this, 1, Terrain.EMPTY); //true = space, false = wall boolean[][] maze = Maze.generate(this); Painter.fill(level, this, 1, Terrain.EMPTY); for (int x = 0; x < maze.length; x++) for (int y = 0; y < maze[0].length; y++) { if (maze[x][y] == Maze.FILLED) { Painter.fill(level, x + left, y + top, 1, 1, Terrain.WALL); } } }
public static void set( Level level, Point p, int value ) { set( level, p.x, p.y, value ); }
tries = 0; Painter.drawLine(level, new Point(splitX, area.top), new Point(splitX, area.bottom), Terrain.WALL); Painter.set(level, splitX, spaceTop, Terrain.EMPTY); Painter.set(level, splitX, spaceTop+1, Terrain.EMPTY); tries = 0; Painter.drawLine(level, new Point(area.left, splitY), new Point(area.right, splitY), Terrain.WALL); Painter.set(level, spaceLeft, splitY, Terrain.EMPTY); Painter.set(level, spaceLeft+1, splitY, Terrain.EMPTY);
); Painter.fillEllipse( this, space, Terrain.EMPTY ); Painter.fill( this, ROOM_LEFT - 1, ROOM_TOP - 1, ROOM_RIGHT - ROOM_LEFT + 3, ROOM_BOTTOM - ROOM_TOP + 3, Terrain.WALL ); Painter.fill( this, ROOM_LEFT, ROOM_TOP + 1, ROOM_RIGHT - ROOM_LEFT + 1, ROOM_BOTTOM - ROOM_TOP, Terrain.EMPTY ); Painter.fill( this, ROOM_LEFT, ROOM_TOP, ROOM_RIGHT - ROOM_LEFT + 1, 1, Terrain.EMPTY_DECO );
public static void fillEllipse(Level level, Rect rect, int m, int value ) { fillEllipse( level, rect.left + m, rect.top + m, rect.width() - m*2, rect.height() - m*2, value ); }
@Override protected boolean build() { builder = builder(); ArrayList<Room> initRooms = initRooms(); Random.shuffle(initRooms); do { for (Room r : initRooms){ r.neigbours.clear(); r.connected.clear(); } rooms = builder.build((ArrayList<Room>)initRooms.clone()); } while (rooms == null); return painter().paint(this, rooms); }
public void paint( Level level ) { Painter.fill( level, this, Terrain.WALL ); Painter.fill( level, this, 1, Dungeon.bossLevel( Dungeon.depth + 1 ) ? Terrain.HIGH_GRASS : Terrain.CHASM ); Point p = Painter.drawInside( level, this, door, Math.abs( door.x - c.x ) - 2, Terrain.EMPTY_SP ); for (; p.y != c.y; p.y += p.y < c.y ? +1 : -1) { Painter.set( level, p, Terrain.EMPTY_SP ); Point p = Painter.drawInside( level, this, door, Math.abs( door.y - c.y ) - 2, Terrain.EMPTY_SP ); for (; p.x != c.x; p.x += p.x < c.x ? +1 : -1) { Painter.set( level, p, Terrain.EMPTY_SP ); Painter.fill( level, c.x - 1, c.y - 1, 3, 3, Terrain.EMBERS ); Painter.set( level, c, Terrain.PEDESTAL );
public void paint( Level level ) { Painter.fill( level, this, Terrain.WALL ); Point door = entrance(); Point well; if (door.x == left){ well = new Point(right-2, door.y); } else if (door.x == right){ well = new Point(left+2, door.y); } else if (door.y == top){ well = new Point(door.x, bottom-2); } else { well = new Point(door.x, top+2); } Painter.fill(level, well.x-1, well.y-1, 3, 3, Terrain.CHASM); Painter.drawLine(level, door, well, Terrain.EMPTY); Painter.set( level, well, Terrain.WELL ); @SuppressWarnings("unchecked") Class<? extends WellWater> waterClass = (Class<? extends WellWater>) Random.element( WATERS ); WellWater.seed(well.x + level.width() * well.y, 1, waterClass, level); entrance().set( Door.Type.HIDDEN ); } }
@Override public void paint(Level level) { Painter.fill( level, this, Terrain.WALL ); Painter.fill( level, this, 1, Terrain.CHASM ); ArrayList<Rect> platforms = new ArrayList<>(); splitPlatforms( new Rect(left+2, top+2, right-2, bottom-2), platforms); for (Rect platform : platforms){ Painter.fill( level, platform.left, platform.top, platform.width()+1, platform.height()+1, Terrain.EMPTY_SP); } for (Door door : connected.values()) { door.set( Door.Type.REGULAR ); Painter.drawInside(level, this, door, 2, Terrain.EMPTY_SP); } }
public void paint( Level level ) { Painter.fill(level, this, 1, Terrain.EMPTY); //true = space, false = wall boolean[][] maze = Maze.generate(this); Painter.fill(level, this, 1, Terrain.EMPTY); for (int x = 0; x < maze.length; x++) for (int y = 0; y < maze[0].length; y++) { if (maze[x][y] == Maze.FILLED) { Painter.fill(level, x + left, y + top, 1, 1, Terrain.WALL); } } }
public static void set( Level level, Point p, int value ) { set( level, p.x, p.y, value ); }
tries = 0; Painter.drawLine(level, new Point(splitX, area.top), new Point(splitX, area.bottom), Terrain.WALL); Painter.set(level, splitX, spaceTop, Terrain.EMPTY); Painter.set(level, splitX, spaceTop+1, Terrain.EMPTY); tries = 0; Painter.drawLine(level, new Point(area.left, splitY), new Point(area.right, splitY), Terrain.WALL); Painter.set(level, spaceLeft, splitY, Terrain.EMPTY); Painter.set(level, spaceLeft+1, splitY, Terrain.EMPTY);