package com.overlap2d.plugins.tiled.save; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; import com.overlap2d.plugins.tiled.data.ParameterVO; import com.overlap2d.plugins.tiled.data.TileVO; import java.util.stream.StreamSupport; /** * Created by mariam on 3/23/16. */ public class DataToSave { private Array<TileVO> tiles; private ParameterVO parameterVO; public DataToSave() { tiles = new Array<>(); parameterVO = new ParameterVO(); } public void addTile(String tileDrawableName) { TileVO newTile = new TileVO(tileDrawableName); if (!tiles.contains(newTile, false)) { tiles.add(newTile); } } public void removeTile(String tileDrawableName) { tiles.forEach(tile -> { if (tile.regionName.equals(tileDrawableName)) { tiles.removeValue(tile, false); } }); } public void setTileGridOffset(TileVO tileVO) { StreamSupport.stream(tiles.spliterator(), false) .filter(tile -> tile.regionName.equals(tileVO.regionName)) .findFirst() .ifPresent(t -> t.gridOffset = tileVO.gridOffset); } public Vector2 getTileGridOffset(String regionName) { return StreamSupport.stream(tiles.spliterator(), false) .filter(tile -> tile.regionName.equals(regionName)) .findFirst() .get() .gridOffset; } public TileVO getTile(String regionName) { return StreamSupport.stream(tiles.spliterator(), false) .filter(tile -> tile.regionName.equals(regionName)) .findFirst() .get(); } public Array<TileVO> getTiles() { return tiles; } public boolean containsTile(String regionName) { return StreamSupport.stream(tiles.spliterator(), false).anyMatch(tile -> tile.regionName.equals(regionName)); } public ParameterVO getParameterVO() { return parameterVO; } public void setParameterVO(ParameterVO parameterVO) { this.parameterVO = parameterVO; } public void setGrid(float gridWidth, float gridHeight) { parameterVO.gridWidth = gridWidth; parameterVO.gridHeight = gridHeight; } }