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 interfacestatic class - 
Field Summary
FieldsModifier and TypeFieldDescriptioncom.badlogic.gdx.utils.Array<EnemyType>com.badlogic.gdx.utils.ObjectSet<EnemyType>com.badlogic.gdx.utils.Array<CoreTile>static final floatGate[][][]com.badlogic.gdx.utils.Array<Gate>intintstatic final intstatic final intcom.badlogic.gdx.utils.Array<PathNode>com.badlogic.gdx.utils.Array<SpawnTile>com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Array<TeleportGate>>booleanTile[][]com.badlogic.gdx.utils.DelayedRemovalArray<Tile>intint - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionbooleanМожно временно изменить тайл и вызвать этот метод, чтобы проверить, можно ли так делать.cpy()Создает копию карты без пустоты по бокамvoidfinalize()booleanbooleanbooleanfitGateToMapPos(float x, float y, Gate gate) static MapfromJson(com.badlogic.gdx.utils.JsonValue jsonValue) intСчитает seed по тайлам карты (их типу и позиции) Лучше не использовать как hashCode, так как не все поля тайлов учитываютсяintcom.badlogic.gdx.utils.IntMap<BossType>int[]Возвращает номера волн, после которых сложность переходит на новый этапgetDefaultPath(EnemyType enemyType, SpawnTile spawnTile) Возвращает стандартный кэшированный путь для этого типа врага.getDefaultPathWithoutStateChanges(EnemyType enemyType, SpawnTile spawnTile) com.badlogic.gdx.utils.Array<Map.EnemyTypeSpawnPair>Получить барьер или null, если его нет.getGateByMapPos(float x, float y) Получить барьер по точке на карте (в основном используется для обработки касаний)getNewPath(EnemyType enemyType, SpawnTile spawnTile) Создает новый объект пути и наполняет узлами от старта к целиdoubleint[]getTile(int x, int y) getTileByMapPos(float mapX, float mapY) booleanvoidmultiplyPortalsDifficulty(float mul) voidvoidread(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) voidОбновляет массивы соединений и присваивает им индексыvoidvoidvoidvoidvoidsetRegistered(MapSystem mapSystem) voidsetSize(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху.voidИзменить тайл картыvoidvoidtoJson(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStartvoidtryReplaceGate(int x, int y, Gate.Side side, Gate byGate) voidtryReplaceTile(int x, int y, Tile byTile) Можно ли заменить тайл в x, y на тайл byTilevoidСтоит вызывать, если изменена картаvoidvalidate()Проверяет формат карты.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:
 
 - 
GATE_HIT_AREA_WIDTH
public static final float GATE_HIT_AREA_WIDTH- See Also:
 
 - 
listeners
 - 
tiles
 - 
gates
 - 
tilesArray
 - 
teleportGates
 - 
spawnTiles
 - 
gatesArray
 - 
targetTile
 - 
coreTiles
 - 
bossTile
 - 
xmMusicTrackTile
 - 
allowedEnemies
 - 
allowedEnemiesSet
 - 
widthTiles
public int widthTiles - 
heightTiles
public int heightTiles - 
widthPixels
public int widthPixels - 
heightPixels
public int heightPixels - 
throwExceptionOnMissingPath
public boolean throwExceptionOnMissingPath - 
pathfindingNodes
 - 
mapSystem
 
 - 
 - 
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
 - 
getMaxedAbilitiesConfiguration
- Returns:
 - конфигурацию навыков, которые дает база и GV-тайлы
 
 - 
setRegistered
 - 
setUnregistered
public void setUnregistered() - 
getPrestigeScore
public double getPrestigeScore() - 
multiplyPortalsDifficulty
public void multiplyPortalsDifficulty(float mul)  - 
getAverageDifficulty
public int getAverageDifficulty()- Returns:
 - среднюю сложность порталов
 
 - 
getComplexityWaveMilestones
public int[] getComplexityWaveMilestones()Возвращает номера волн, после которых сложность переходит на новый этап- Returns:
 - int[3]
 
 - 
setSize
public void setSize(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху. При увеличении позиции тайлов и гейтов не изменяются. ! Все тайлы, которые будут отброшены (при уменьшении карты) необходимо сначала убрать (setTile() / setGate()) - 
getResourcesCount
public int[] getResourcesCount()- Returns:
 - количество ресурсов на всей карте. Последний индекс (ResourceType.values.length) - сколько относительно "пустых" ресурсов (из-за плотности ресурсов)
 
 - 
regeneratePreview
public void regeneratePreview() - 
getPreview
 - 
fromJson
 - 
toJson
public void toJson(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStart - 
generateSeed
public int generateSeed()Считает seed по тайлам карты (их типу и позиции) Лучше не использовать как hashCode, так как не все поля тайлов учитываются - 
getDefaultPathWithoutStateChanges
 - 
prepareDefaultPathsIfNeeded
public void prepareDefaultPathsIfNeeded() - 
getDefaultPath
Возвращает стандартный кэшированный путь для этого типа врага. Если throwExceptionOnMissingPath == false, вернет null при отсутствующем пути - 
getNewPath
Создает новый объект пути и наполняет узлами от старта к цели - 
findPath
 - 
findPath
 - 
rebuildPathfindingIfNeeded
public void rebuildPathfindingIfNeeded() - 
requirePathfindingRebuild
public void requirePathfindingRebuild() - 
hasTileThatAllowsWalkablePlatforms
public boolean hasTileThatAllowsWalkablePlatforms() - 
rebuildPathfinding
public void rebuildPathfinding()Обновляет массивы соединений и присваивает им индексы - 
updateCache
public void updateCache()Стоит вызывать, если изменена карта - 
getGate
Получить барьер или null, если его нет.- Parameters:
 side- сторона тайла. Чтобы получить верхний: y + 1 BOTTOM, чтобы получить правый: y + 1 LEFT
 - 
fitGateToMapPos
- Parameters:
 gate- барьер, позиция и сторона которого будет изменена так, чтобы соответствовать точке на карте- Returns:
 - true, если точка на карте, в противном случае false (в этой точке барьер поставить нельзя)
 
 - 
getGateByMapPos
Получить барьер по точке на карте (в основном используется для обработки касаний) - 
setGate
 - 
getTile
- Returns:
 - Tile или null, если тайла нет или позиция за рамками карты
 
 - 
getTileByMapPos
 - 
setTile
Изменить тайл карты- Parameters:
 tile- может быть null
 - 
cpy
 - 
getTrimBounds
 - 
cpyTrimmed
Создает копию карты без пустоты по бокам - 
canAllEnemiesFindPath
public boolean canAllEnemiesFindPath()Можно временно изменить тайл и вызвать этот метод, чтобы проверить, можно ли так делать.- Returns:
 - true если от каждого спавна к базе есть путь для каждого типа врага, который там спавнится
 
 - 
getBossWaves
- Returns:
 - волны боссов или null
 
 - 
getEnemyTypesThatCantFindPath
 - 
tryReplaceTile
Можно ли заменить тайл в x, y на тайл byTile- Throws:
 Map.InvalidMapException
 - 
tryReplaceGate
public void tryReplaceGate(int x, int y, Gate.Side side, Gate byGate) throws Map.InvalidMapException - Throws:
 Map.InvalidMapException
 - 
validate
Проверяет формат карты. НЕ проверяет, есть ли путь от спавна до цели- Throws:
 Map.InvalidMapException
 - 
finalize
- Throws:
 Throwable
 
 -