public void render(Point top_left, int width, int height) {
        DungeonFloor dungeonFloor = dungeonHandler.getActiveDungeon().getActiveFloor();
        float ppt = (DisplayConstant.width_no_ui / (float) width);
        float scale = (float) ppt / (float) DisplayConstant.sprite_size;
        for (int x = (int) top_left.x; x < top_left.x + width; x++) {
            for (int y = (int) top_left.y; y < top_left.y + height; y++) {
                //render tiles
                Tile tile = dungeonFloor.getTile(x, y);

                if (tile != null & x >= 0) {//TODO poor bounds workaround
                    if (tile == Tile.WALL_STONE) {

                    }
                    SpriteID spriteID = tile.getSpriteID();
                    Image image = environment.getSprite(spriteID);
                    image.draw((float) ((x - top_left.x) * ppt), (float) ((y - top_left.y) * ppt), scale);
                }

                //render entities
                Entity entity = dungeonFloor.getEntity(x, y);
                if (entity != null & x >= 0) {
                    SpriteID spriteID = entity.getSpriteID();
                    Image image = environment.getSprite(spriteID);
                    image.draw((float) ((x - top_left.x) * ppt), (float) ((y - top_left.y) * ppt), scale);
                }
                //render inactive actors
                //render active actors
                Actor actor = dungeonFloor.getActor(x, y);
                if (actor != null & x >= 0) {
                    SpriteID spriteID = actor.spriteID;
                    Image image = actor_sprites.getSprite(spriteID);
                    image.draw((float) ((x - top_left.x) * ppt), (float) ((y - top_left.y) * ppt), scale);
                }

            }
        }
        //render player
        Image player_image = actor_sprites.getSprite(game.player.spriteID);
        int player_x = (int) game.player.dungeon_position.x;
        int player_y = (int) game.player.dungeon_position.y;
        player_image.draw((float) ((player_x - top_left.x) * ppt), (float) ((player_y - top_left.y) * ppt), scale);


    }