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
-