Example usage for com.badlogic.gdx.utils Array addAll

List of usage examples for com.badlogic.gdx.utils Array addAll

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils Array addAll.

Prototype

public void addAll(T... array) 

Source Link

Usage

From source file:com.ahsgaming.valleyofbones.GameController.java

License:Apache License

private void loadMapObjects() {
    Array<Player> playersToSpawn = new Array<Player>();
    switch (spawnType) {
    case SPAWN_NORMAL:
        playersToSpawn.addAll(players);
        break;/*from w w  w . j a  va 2 s  . c  om*/
    case SPAWN_INVERTED:
        for (int i = players.size - 1; i >= 0; i--) {
            playersToSpawn.add(players.get(i));
        }
        break;
    case SPAWN_RANDOM:
        Array<Player> p = new Array<Player>(players);
        while (p.size > 0) {
            playersToSpawn.add(p.removeIndex((int) Math.floor(Math.random() * p.size)));
        }
        break;
    }

    for (MapData.MapObject spawn : map.getPlayerSpawns()) {
        AbstractUnit unit;
        if (spawn.player >= 0 && spawn.player < players.size) {
            unit = Unit.createUnit(getNextObjectId(), "castle-base", playersToSpawn.get(spawn.player));
            playersToSpawn.get(spawn.player).setBaseUnit(unit);
        } else {
            unit = Unit.createUnit(getNextObjectId(), "castle-base", null);
            Gdx.app.log(VOBGame.LOG, "Map Error: player spawn index out of range");
        }
        Vector2 pos = map.boardToMapCoords(spawn.x, spawn.y);
        unit.getView().setPosition(pos.x, pos.y);
        unit.getView().setBoardPosition(spawn.x, spawn.y);
        unitManager.addUnit(unit);

        if (spawn.player >= 0 && spawn.player < players.size) {
            addSpawnPoint(playersToSpawn.get(spawn.player).getPlayerId(),
                    new Vector2(unit.getView().getX() + unit.getView().getWidth() * 0.5f,
                            unit.getView().getY() + unit.getView().getHeight() * 0.5f));
        }
    }

    for (MapData.MapObject obj : map.getControlPoints()) {
        AbstractUnit unit;
        unit = Unit.createUnit(getNextObjectId(), obj.proto, obj.player == -1 ? null : players.get(obj.player));
        Vector2 pos = map.boardToMapCoords(obj.x, obj.y);
        unit.getView().setPosition(pos.x, pos.y);
        unit.getView().setBoardPosition(new Vector2(obj.x, obj.y));
        unitManager.addUnit(unit);
    }

    if (VOBGame.DEBUG_ATTACK) {
        AbstractUnit unit = Unit.createUnit(getNextObjectId(), "marine-base", players.get(0));
        unit.getView().setBoardPosition(9, 0);
        unit.getView().setPosition(getMap().boardToMapCoords(9, 0));
        unitManager.addUnit(unit);

        unit = Unit.createUnit(getNextObjectId(), "marine-base", players.get(1));
        unit.getView().setBoardPosition(10, 0);
        unit.getView().setPosition(getMap().boardToMapCoords(10, 0));
        unitManager.addUnit(unit);
    }
}

From source file:com.algodal.gdxscreen.GdxTransition.java

License:Apache License

final void unloadAssets(GdxScreen[] visible, GdxScreen[] hidden) {
    Array<String> visibleAssets = new Array<>();
    Array<String> hiddenAssets = new Array<>();

    for (GdxScreen screen : visible)
        visibleAssets.addAll(screen.assetRefs);
    for (GdxScreen screen : hidden)
        hiddenAssets.addAll(screen.assetRefs);

    for (String assetRef : hiddenAssets)
        if (!visibleAssets.contains(assetRef, false))
            if (getGame().assetMap.get(assetRef).isloaded())
                getGame().assetMap.get(assetRef).unload();
}

From source file:com.amerticum.chosenchess.controller.ControlleurEchiquer.java

License:Apache License

private void addMoveHighlightsForPiece(Piece piece) {
    Array<com.amerticum.chosenchess.model.Cazz> cazzz = piece.getValidMoveTiles(this.echiquier, true);

    cazzz.addAll(piece.getCaptureOnlyTiles(this.echiquier, true));

    for (com.amerticum.chosenchess.model.Cazz cazz : cazzz) {
        int tx = (int) cazz.getX();
        int ty = (int) cazz.getY();

        /* Make sure the move doesn't put the king in check. */
        if (this.echiquier.isMoveSafe(piece, tx, ty)) {
            this.highlightedTiles.add(cazz);
            cazz.estActif = true;/*from w ww.j  a  v a2 s . c o m*/
        }
    }
}

From source file:com.amerticum.chosenchess.model.Echiquier.java

License:Apache License

/**
 * Checks if a tile is safe against any capture moves that can be made by an
 * enemy piece.//from w w  w. java 2s.  co m
 * 
 * @param x
 *            Horizontal index of the tile.
 * @param y
 *            Vertical index of the tile.
 * @param forWhite
 *            Are we checking tile safety for white pieces?
 * @return True if tile is safe.
 */
public boolean isTileSafe(int x, int y, boolean forWhite) {

    for (Piece[] row : this.pieces) {

        for (Piece piece : row) {

            /*
             * If piece belongs to the opponent then check if it threatens
             * this tile by tracing its possible capture moves.
             */
            if ((piece != null) && (piece.estRouge != forWhite)) {
                Array<Cazz> threatenedCases;

                if (piece.canCaptureWithMove) {
                    threatenedCases = piece.getValidMoveTiles(this, false);
                    threatenedCases.addAll(piece.getCaptureOnlyTiles(this, false));
                } else {
                    threatenedCases = piece.getCaptureOnlyTiles(this, false);
                }

                for (Cazz tile : threatenedCases) {

                    if ((x == tile.getX()) && (y == tile.getY())) {
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

From source file:com.arkanoid.Actors.ActorFactory.java

License:Open Source License

/**
 * Create a player using the default texture.
 * @param world     world where the player will have to live in.
 * @param position  initial position ofr the player in the world (meters,meters).
 * @return          a player./* w ww  .  jav  a2  s  . c  om*/
 */
public PlayerActor createPlayer(World world, Vector2 position) {
    //Texture playerTexture = manager.get("player.png");
    TextureAtlas atlas = manager.get("sprites_player.txt", TextureAtlas.class);
    HashMap<PlayerActor.PlayerAnimations, Animation> animations = new HashMap<PlayerActor.PlayerAnimations, Animation>();

    Array<TextureAtlas.AtlasRegion> playerRegions = atlas.findRegions("red_medium");
    Array<TextureAtlas.AtlasRegion> playerRegionsReverse = atlas.findRegions("red_medium");
    playerRegionsReverse.reverse();
    playerRegions.addAll(playerRegionsReverse);
    animations.put(PlayerActor.PlayerAnimations.RED_MEDIUM,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("red_large");
    playerRegionsReverse = atlas.findRegions("red_large");
    playerRegionsReverse.reverse();
    playerRegions.addAll(playerRegionsReverse);
    animations.put(PlayerActor.PlayerAnimations.RED_LARGE,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("red_medium_create");
    animations.put(PlayerActor.PlayerAnimations.RED_MEDIUM_CREATE,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("red_medium_destoy");
    animations.put(PlayerActor.PlayerAnimations.RED_MEDIUM_DESTROY,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("blue_medium");
    playerRegionsReverse = atlas.findRegions("blue_medium");
    playerRegionsReverse.reverse();
    playerRegions.addAll(playerRegionsReverse);
    animations.put(PlayerActor.PlayerAnimations.BLUE_MEDIUM,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("blue_large");
    playerRegionsReverse = atlas.findRegions("blue_large");
    playerRegionsReverse.reverse();
    playerRegions.addAll(playerRegionsReverse);
    animations.put(PlayerActor.PlayerAnimations.BLUE_LARGE,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("blue_medium_create");
    animations.put(PlayerActor.PlayerAnimations.BLUE_MEDIUM_CREATE,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    playerRegions = atlas.findRegions("blue_medium_destoy");
    animations.put(PlayerActor.PlayerAnimations.BLUE_MEDIUM_DESTROY,
            new Animation(1f / (float) playerRegions.size, playerRegions));

    return new PlayerActor(world, animations, position);
}

From source file:com.badlogic.gdx.spriter.demo.SpriterDemoApp.java

@Override
public void create() {
    // Initialize object
    batch = new SpriteBatch();
    camera = new OrthographicCamera();

    FileHandleResolver resolver = new InternalFileHandleResolver();
    assetManager = new AssetManager(resolver);
    assetManager.setLoader(SpriterData.class, new SpriterDataLoader(resolver));

    resolver = new AbsoluteFileHandleResolver();
    externalAssetManager = new AssetManager(resolver);
    externalAssetManager.setLoader(SpriterData.class, new SpriterDataLoader(resolver));

    assetManager.load("uiskin.json", Skin.class);
    assetManager.finishLoading();/*from  ww w .jav a 2 s.  c  o m*/

    skin = assetManager.get("uiskin.json");

    // Create widgets
    stage = new Stage(new ScreenViewport(camera), batch);

    Label titleLabel = new Label("gdx-spriter", skin);
    titleLabel.setFontScale(3f);

    Label fpsLabel = new Label("FPS", skin) {
        @Override
        public void act(float delta) {
            this.setText(Gdx.graphics.getFramesPerSecond() + " FPS");
            super.act(delta);
        }
    };

    fileChooser = new SelectBox<SpriterDemoFileHandle>(skin);
    fileChooser.setName("Files");
    fileChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeSpriterFile(fileChooser.getSelected());
            lastUsedSelectBox = fileChooser;
        }
    });

    Button fileFinder = new TextButton("Browse", skin);
    fileFinder.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            FileDialog fileDialog = new FileDialog((java.awt.Frame) null, "Choose Spriter file",
                    FileDialog.LOAD);
            fileDialog.setDirectory(lastFolderBrowsed);
            fileDialog.setResizable(true);
            fileDialog.setVisible(true);
            String file = fileDialog.getFile();
            String directory = fileDialog.getDirectory();
            if (directory != null) {
                lastFolderBrowsed = directory;
            }
            if (file != null) {
                String path = directory + file;
                addFile(Gdx.files.absolute(path), externalAssetManager);
                fileChooser.setItems(files);
                fileChooser.setSelectedIndex(fileChooser.getItems().size - 1);
            }
        }
    });

    entityChooser = new SelectBox<SpriterAnimator>(skin);
    entityChooser.setName("Entities");
    entityChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeAnimator(entityChooser.getSelected());
            lastUsedSelectBox = entityChooser;
        }
    });

    animationChooser = new SelectBox<String>(skin);
    animationChooser.setName("Animations");
    animationChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeAnimation(animationChooser.getSelected());
            lastUsedSelectBox = animationChooser;
        }
    });

    final CheckBox transitionCheckbox = new CheckBox("Transition", skin);
    transitionCheckbox.setChecked(transition);
    transitionCheckbox.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            transition = transitionCheckbox.isChecked();
        }
    });

    charmapChooser = new List<SpriterCharacterMap>(skin);
    ArraySelection<SpriterCharacterMap> selection = charmapChooser.getSelection();
    selection.setMultiple(true);
    selection.setRangeSelect(false);
    selection.setToggle(false);
    selection.setRequired(false);
    charmapChooser.setName("Charmaps");
    charmapChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeCharacterMaps(charmapChooser.getSelection().items().orderedItems());
        }
    });

    angleSlider = new SpriterDemoAnimatorSlider(0, 360, 1f, skin, "%.0f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            spriterAnimator.setRotation(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return spriterAnimator.getRotation();
        }
    };

    pivotXSlider = new SpriterDemoAnimatorSlider(-1000f, 1000f, 1f, skin, "%.0f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setPivotX(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getPivotX();
        }
    };

    pivotYSlider = new SpriterDemoAnimatorSlider(-1000f, 1000f, 1f, skin, "%.0f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setPivotY(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getPivotY();
        }
    };

    scaleXSlider = new SpriterDemoAnimatorSlider(-10f, 10f, 0.1f, skin) {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            spriterAnimator.setScaleX(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return spriterAnimator.getScaleX();
        }
    };

    scaleYSlider = new SpriterDemoAnimatorSlider(-10f, 10f, 0.1f, skin) {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            spriterAnimator.setScaleY(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return spriterAnimator.getScaleY();
        }
    };

    alphaSlider = new SpriterDemoAnimatorSlider(0f, 1f, 0.01f, skin, "%.2f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setAlpha(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getAlpha();
        }
    };

    speedSlider = new SpriterDemoAnimatorSlider(0f, 10f, 0.1f, skin) {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setSpeed(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getSpeed();
        }
    };

    allAnimatorSliders = new SpriterDemoAnimatorSlider[] { scaleXSlider, scaleYSlider, pivotXSlider,
            pivotYSlider, angleSlider, alphaSlider, speedSlider };

    metaLabel = new Label("Meta: ", skin);
    metaLabel.setWrap(true);
    metaLabel.setAlignment(Align.topLeft);

    spriterPlaceholder = new Label("No animator", skin);
    spriterPlaceholder.setAlignment(Align.center);

    spriterAnimator = new SpriterAnimatorActor(animator);
    spriterAnimator.debug();

    playPauseButton = new ImageButton(skin, "play");
    playPauseButton.setChecked(true);
    playPauseButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            boolean playing = playPauseButton.isChecked();
            spriterAnimator.setDisabled(!playing);
        }
    });

    timeSlider = new Slider(0f, 2000f, 1, false, skin);
    timeSlider.addListener(timeSliderListener = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (animator == null)
                return;
            animator.setTime(timeSlider.getValue());
            animator.update(0f);
        }
    });

    timeLabel = new Label("---", skin);

    // Put everything in place

    Table titleTable = new Table(skin);
    titleTable.add(titleLabel).pad(6f);
    titleTable.add().expandX();
    titleTable.add(fpsLabel).padRight(10f);

    Table selectionTable = new Table(skin);
    selectionTable.defaults().pad(3f);

    Table filesTable = new Table(skin);
    filesTable.row();
    filesTable.add(fileChooser).expand().fillX();
    filesTable.add(fileFinder).padLeft(2f).padRight(1f);

    Table animationsTable = new Table(skin);
    animationsTable.row();
    animationsTable.add(animationChooser).expand().fill();
    animationsTable.add(transitionCheckbox).fillX().padLeft(2f);

    ScrollPane scrollableCharmapChooser = new ScrollPane(charmapChooser);

    Table menuTable = new Table(skin);
    menuTable.defaults().pad(3f).expandX().fillX();
    menuTable.row();
    menuTable.add(titleTable).colspan(2);
    menuTable.row();
    menuTable.add("File");
    menuTable.add(filesTable).pad(4f);
    menuTable.row();
    menuTable.add("Entity");
    menuTable.add(entityChooser).pad(4f);
    menuTable.row();
    menuTable.add("Animation");
    menuTable.add(animationsTable).pad(4f);
    menuTable.row();
    menuTable.add("Maps");
    menuTable.add(scrollableCharmapChooser).pad(4f);
    menuTable.row();
    menuTable.add("Angle");
    menuTable.add(angleSlider);
    menuTable.row();
    menuTable.add("Pivot X");
    menuTable.add(pivotXSlider);
    menuTable.row();
    menuTable.add("Pivot Y");
    menuTable.add(pivotYSlider);
    menuTable.row();
    menuTable.add("Scale X");
    menuTable.add(scaleXSlider);
    menuTable.row();
    menuTable.add("Scale Y");
    menuTable.add(scaleYSlider);
    menuTable.row();
    menuTable.add("Alpha");
    menuTable.add(alphaSlider);
    menuTable.row();
    menuTable.add("Speed");
    menuTable.add(speedSlider);
    menuTable.row();
    menuTable.add().expandY();

    Table contentTable = new Table(skin);
    contentTable.row();
    contentTable.add(metaLabel).left().expandX().maxHeight(1f);
    contentTable.row();
    contentTable.stack(spriterPlaceholder, spriterAnimator).expand();

    Table timelineTable = new Table(skin);
    timelineTable.row();
    timelineTable.add("Timeline").expandX().align(Align.bottom);
    timelineTable.row();
    timelineTable.add(timeSlider).expandX().fillX();
    timelineTable.row();
    timelineTable.add(timeLabel).expandX().align(Align.top);

    Table controlTable = new Table(skin);
    controlTable.add(playPauseButton).space(5f).expandY().fillY();
    controlTable.add(timelineTable).expandX().fillX();

    rootTable = new Table(skin);
    rootTable.setFillParent(true);
    rootTable.row();
    rootTable.add(menuTable).expandY().fill();
    rootTable.add(contentTable).expand().fill();
    rootTable.row();
    rootTable.add(controlTable).colspan(2).expandX().fillX();

    stage.addActor(rootTable);

    // Bring input processing to the party

    InputProcessor globalInput = new InputProcessor() {
        @Override
        public boolean keyDown(int keycode) {
            switch (keycode) {
            case Keys.UP:
            case Keys.Z:
            case Keys.W:
                if (lastUsedSelectBox != null)
                    lastUsedSelectBox.setSelectedIndex(Math.max(lastUsedSelectBox.getSelectedIndex() - 1, 0));
                break;
            case Keys.DOWN:
            case Keys.S:
                if (lastUsedSelectBox != null)
                    lastUsedSelectBox.setSelectedIndex(Math.min(lastUsedSelectBox.getSelectedIndex() + 1,
                            lastUsedSelectBox.getItems().size - 1));
                break;

            default:
                break;
            }
            return true;
        }

        @Override
        public boolean keyUp(int keycode) {
            return false;
        }

        @Override
        public boolean keyTyped(char character) {
            return false;
        }

        @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
            return false;
        }

        @Override
        public boolean touchUp(int screenX, int screenY, int pointer, int button) {
            return false;
        }

        @Override
        public boolean touchDragged(int screenX, int screenY, int pointer) {
            return false;
        }

        @Override
        public boolean mouseMoved(int screenX, int screenY) {
            return false;
        }

        @Override
        public boolean scrolled(int amount) {
            amount *= 0.05f; // Zoom coefficient
            scaleXSlider.setValue(scaleXSlider.getValue() + amount);
            scaleYSlider.setValue(scaleYSlider.getValue() + amount);
            return false;
        }
    };
    Gdx.input.setInputProcessor(new InputMultiplexer(stage, globalInput));

    // Add default test resources
    Array<String> testResources = new Array<String>(SpriterTestData.scml);
    testResources.addAll(SpriterTestData.scon);
    testResources.sort();
    for (String path : testResources)
        addFile(Gdx.files.internal(path.replaceFirst("/", "")), assetManager);

    // Also go discover some unknown exotic resources! (won't work in jar though)
    Array<FileHandle> spriterFiles = SpriterDemoUtils.findFiles(new String[] { "scml", "scon" });
    for (FileHandle f : spriterFiles)
        addFile(f, assetManager);

    fileChooser.setItems(files);

    lastUsedSelectBox = fileChooser;

    if (playPauseButton.isChecked())
        animator.play(animator.getAnimations().iterator().next());
}

From source file:com.badlogic.gdx.tests.g3d.ModelCache.java

@Override
public void getRenderables(Array<Renderable> renderables, Pool<Renderable> pool) {
    if (building)
        throw new GdxRuntimeException("Cannot render a ModelCache in between .begin() and .end()");
    renderables.addAll(this.renderables);
}

From source file:com.betmansmall.game.gameLogic.mapLoader.MapLoader.java

License:Apache License

/** Loads the {@link TiledMap} from the given file. The file is resolved via the {@link FileHandleResolver} set in the
 * constructor of this class. By default it will resolve to an internal file.
 * @param fileName the filename/*  w  w w .  java 2s  . co m*/
 * @param parameters specifies whether to use y-up, generate mip maps etc.
 * @return the TiledMap */
public TiledMap load(String fileName, MapLoader.Parameters parameters) {
    try {
        this.convertObjectToTileSpace = parameters.convertObjectToTileSpace;
        this.flipY = parameters.flipY;
        FileHandle tmxFile = resolve(fileName);
        root = xml.parse(tmxFile);
        ObjectMap<String, Texture> textures = new ObjectMap<String, Texture>();
        Array<FileHandle> textureFiles = loadTilesets(root, tmxFile);
        textureFiles.addAll(loadImages(root, tmxFile));

        for (FileHandle textureFile : textureFiles) {
            Texture texture = new Texture(textureFile, parameters.generateMipMaps);
            texture.setFilter(parameters.textureMinFilter, parameters.textureMagFilter);
            textures.put(textureFile.path(), texture);
        }

        DirectImageResolver imageResolver = new DirectImageResolver(textures);
        TiledMap map = loadTilemap(root, tmxFile, imageResolver);
        map.setOwnedResources(textures.values().toArray());
        return map;
    } catch (IOException e) {
        throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e);
    }
}

From source file:com.github.fauu.helix.editor.World.java

License:Open Source License

@Override
public void render() {
    handleInput();/*www . ja  v  a  2s .c  om*/

    if (mapRegion.getMesh().isReady()) {
        Array<RenderableProvider> renderableProviders = new Array<RenderableProvider>();
        renderableProviders.add(mapRegion);
        renderableProviders.addAll(mapRegion.getObjectsModelInstances());

        renderer.render(camera, renderableProviders, null);
    }
}

From source file:com.github.fauu.helix.game.Game.java

License:Open Source License

@Override
public void render() {
    //    cameraInputController.update();

    final float delta = Gdx.graphics.getDeltaTime();
    handleInput(delta);/*from   w  w w  . java 2 s  . c o  m*/
    updateLogic(delta);

    final WaterData waterData = (WaterData) waterModelInstance.userData;
    waterData.waveAngle += waterData.waveFrequency * 2 * Gdx.graphics.getDeltaTime();
    while (waterData.waveAngle > 2 * Math.PI) {
        waterData.waveAngle -= 2 * Math.PI;
    }

    if (mapRegion.getMesh().isReady()) {
        final Array<RenderableProvider> renderableProviders = new Array<RenderableProvider>();
        renderableProviders.add(mapRegion);
        renderableProviders.addAll(mapRegion.getObjectsModelInstances());
        renderableProviders.add(waterModelInstance);

        Array<Decal> decals = new Array<Decal>();
        decals.add(player.getDecal());

        renderer.render(camera, renderableProviders, decals);
    }

    //    final Vector3 playerScreenPosition = camera.project(player.getRealPosition().cpy());

    //    spriteBatch.begin();
    //    player.getSheet().bind();
    //    spriteBatch.draw(player.getCurrentFrame(), playerScreenPosition.x, playerScreenPosition.y, 92, 92);
    //    spriteBatch.end();
}