Package com.prineside.tdi2
Class Map
java.lang.Object
com.prineside.tdi2.Map
- All Implemented Interfaces:
 com.esotericsoftware.kryo.KryoSerializable
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic class - 
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final floatstatic final floatstatic final intstatic final intstatic final floatstatic final floatstatic final floatstatic final floatstatic final floatstatic final floatstatic final float - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptioncpy()Создает копию карты без пустоты по бокамbooleanfitGateToMapPos(float x, float y, Gate helperGate) static MapfromJson(com.badlogic.gdx.utils.JsonValue jsonValue) intСчитает seed по тайлам карты (их типу и позиции) Лучше не использовать как hashCode, так как не все поля тайлов учитываютсяcom.badlogic.gdx.utils.DelayedRemovalArray<Gate>com.badlogic.gdx.utils.Array<EnemyType>com.badlogic.gdx.utils.ObjectSet<EnemyType>com.badlogic.gdx.utils.DelayedRemovalArray<Tile>intfloatgetGate(int x, int y, boolean leftSide) Получить барьер или null, если его нет.getGateByMapPos(float x, float y) Получить барьер по точке на карте (в основном используется для обработки касаний)<T extends Gate>
com.badlogic.gdx.utils.Array<T>getGatesByType(Class<T> tClass) Gate[][][]intvoidgetNeighbourTiles(com.badlogic.gdx.utils.Array<Tile> toArray, int x, int y) Same as traverseNeighborTiles but fills an arraydoubleint[]getTargetTile(boolean exceptionIfNotExists) voidgetTeleportGates(com.badlogic.gdx.utils.IntMap<com.badlogic.gdx.utils.Array<TeleportGate>> out) getTile(int x, int y) getTileByMapPos(float mapX, float mapY) getTileByMapPos(com.badlogic.gdx.math.Vector2 pos) getTileCoordinatesByMapPos(float mapX, float mapY) static intgetTileIdByPos(Tile tile) static intgetTileIndex(float position) <T extends Tile>
com.badlogic.gdx.utils.Array<T>getTilesByType(Class<T> tClass) Tile[][]intgetWidth()booleanvoidmultiplyPortalsDifficulty(float mul) static intpositionToCoordinate(float pos) static intposToCell(float v) voidread(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) voidvoidvoidsetSize(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху.voidИзменить тайл картыvoidtoJson(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStartvoidtraverseNeighborTiles(int x, int y, com.badlogic.gdx.utils.Predicate<Tile> predicate) Get tiles neighboring with x,yvoidvoidvalidate()Проверяет формат карты.voidwrite(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output)  
- 
Field Details
- 
MAX_TECHNICAL_SIZE
public static final int MAX_TECHNICAL_SIZE- See Also:
 
 - 
MAX_SIZE
public static final int MAX_SIZE- See Also:
 
 - 
WALK_COST_1
public static final float WALK_COST_1- See Also:
 
 - 
WALK_COST_1_PLUS
public static final float WALK_COST_1_PLUS- See Also:
 
 - 
WALK_COST_2
public static final float WALK_COST_2- See Also:
 
 - 
WALK_COST_3
public static final float WALK_COST_3- See Also:
 
 - 
WALK_COST_4
public static final float WALK_COST_4- See Also:
 
 - 
WALK_COST_MAX
public static final float WALK_COST_MAX- See Also:
 
 - 
VOID_WALK_COST
public static final float VOID_WALK_COST- See Also:
 
 - 
BARRIER_WALK_COST
public static final float BARRIER_WALK_COST- See Also:
 
 - 
GATE_HIT_AREA_WIDTH
public static final float GATE_HIT_AREA_WIDTH- See Also:
 
 
 - 
 - 
Constructor Details
- 
Map
public Map(int width, int height)  - 
Map
- Parameters:
 gates- должен быть на 1 тайл шире и выше: [height + 1][width + 1][Gate.Side.values.length]
 
 - 
 - 
Method Details
- 
write
public void write(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) - Specified by:
 writein interfacecom.esotericsoftware.kryo.KryoSerializable
 - 
read
public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) - Specified by:
 readin interfacecom.esotericsoftware.kryo.KryoSerializable
 - 
positionToCoordinate
public static int positionToCoordinate(float pos) - Returns:
 - -1 if position is invalid
 
 - 
getTileIndex
public static int getTileIndex(float position) - Returns:
 - -1 if position is invalid
 
 - 
getTargetTile
 - 
getTargetTile
 - 
traverseNeighborTiles
Get tiles neighboring with x,y- Parameters:
 predicate- is being evaluated for every tile near x,y. If predicate returns false, this method will stop traversing the neighbors
 - 
getNeighbourTiles
Same as traverseNeighborTiles but fills an array - 
getMaxedAbilitiesConfiguration
- Returns:
 - конфигурацию навыков, которые дает база и GV-тайлы
 
 - 
getTileIdByPos
 - 
getPrestigeScore
public double getPrestigeScore() - 
getTilesByType
 - 
getGatesByType
 - 
getTeleportGates
public void getTeleportGates(com.badlogic.gdx.utils.IntMap<com.badlogic.gdx.utils.Array<TeleportGate>> out)  - 
multiplyPortalsDifficulty
public void multiplyPortalsDifficulty(float mul)  - 
getAverageDifficulty
public int getAverageDifficulty()- Returns:
 - среднюю сложность порталов
 
 - 
getDifficultyExpectedPlaytime
public float getDifficultyExpectedPlaytime() - 
setSize
public void setSize(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху. При увеличении позиции тайлов и гейтов не изменяются. ! Все тайлы, которые будут отброшены (при уменьшении карты) необходимо сначала убрать (setTile() / setGate()) - 
getResourcesCount
public int[] getResourcesCount()- Returns:
 - количество ресурсов на всей карте. Последний индекс (ResourceType.values.length) - сколько относительно "пустых" ресурсов (из-за плотности ресурсов)
 
 - 
unloadPreview
public void unloadPreview() - 
regeneratePreview
public void regeneratePreview() - 
getPreview
 - 
fromJson
 - 
toJson
public void toJson(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStart - 
generateSeed
public int generateSeed()Считает seed по тайлам карты (их типу и позиции) Лучше не использовать как hashCode, так как не все поля тайлов учитываются - 
hasTileThatAllowsWalkablePlatforms
public boolean hasTileThatAllowsWalkablePlatforms() - 
getGate
Получить барьер или null, если его нет.- Parameters:
 leftSide- сторона тайла. Чтобы получить верхний: y + 1 BOTTOM, чтобы получить правый: y + 1 LEFT
 - 
fitGateToMapPos
- Returns:
 - Gate, если точка на карте, в противном случае null (в этой точке барьер поставить нельзя)
 
 - 
getGateByMapPos
Получить барьер по точке на карте (в основном используется для обработки касаний) - 
setGate
 - 
getTile
 - 
getGate
 - 
getTile
- Returns:
 - Tile или null, если тайла нет или позиция за рамками карты
 
 - 
getTilesRaw
 - 
getGatesRaw
 - 
getAllTiles
- Returns:
 - array of all of the tiles, ordered
 
 - 
getAllGates
 - 
getTileByMapPos
 - 
getTileCoordinatesByMapPos
- Returns:
 - tile coordinates if mapX and mapY are in valid range, false otherwise. Where a = x, b = y
 
 - 
getTileByMapPos
 - 
setTile
Изменить тайл карты- Parameters:
 tile- может быть null
 - 
cpy
 - 
getTrimBounds
 - 
getWidth
public int getWidth() - 
getHeight
public int getHeight() - 
cpyTrimmed
Создает копию карты без пустоты по бокам - 
getBossWaves
- Returns:
 - волны боссов или null
 
 - 
posToCell
public static int posToCell(float v) - Parameters:
 v- must be >= -255 (ideally >= 0)
 - 
getAllowedEnemies
 - 
getAllowedEnemiesSet
 - 
getMusicTile
 - 
validate
Проверяет формат карты. НЕ проверяет, есть ли путь от спавна до цели- Throws:
 Map.InvalidMapException
 
 -