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 class
static class
static interface
static 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 float
Gate[][][]
com.badlogic.gdx.utils.Array<Gate>
int
int
static final int
static final int
com.badlogic.gdx.utils.Array<PathNode>
com.badlogic.gdx.utils.Array<SpawnTile>
com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Array<TeleportGate>>
boolean
Tile[][]
com.badlogic.gdx.utils.DelayedRemovalArray<Tile>
int
int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Можно временно изменить тайл и вызвать этот метод, чтобы проверить, можно ли так делать.cpy()
Создает копию карты без пустоты по бокамboolean
fitGateToMapPos
(float x, float y, Gate gate) static Map
fromJson
(com.badlogic.gdx.utils.JsonValue jsonValue) int
Считает seed по тайлам карты (их типу и позиции) Лучше не использовать как hashCode, так как не все поля тайлов учитываютсяint
getDefaultPath
(EnemyType enemyType, SpawnTile spawnTile) Возвращает стандартный кэшированный путь для этого типа врага.getDefaultPathWithoutStateChanges
(EnemyType enemyType, SpawnTile spawnTile) float
com.badlogic.gdx.utils.Array<Map.EnemyTypeSpawnPair>
Получить барьер или null, если его нет.getGateByMapPos
(float x, float y) Получить барьер по точке на карте (в основном используется для обработки касаний)double
int[]
Deprecated.getTile
(int x, int y) getTileByMapPos
(float mapX, float mapY) getTileByMapPos
(com.badlogic.gdx.math.Vector2 pos) boolean
hasTilesOfType
(TileType type) boolean
void
multiplyPortalsDifficulty
(float mul) static int
posToCell
(float v) void
read
(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) void
Обновляет массивы соединений и присваивает им индексыvoid
void
void
void
void
setRegistered
(MapSystem mapSystem) void
setSize
(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху.void
Изменить тайл картыvoid
void
toJson
(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStartvoid
tryReplaceGate
(int x, int y, Gate.Side side, Gate byGate) void
tryReplaceTile
(int x, int y, Tile byTile) Можно ли заменить тайл в x, y на тайл byTilevoid
Стоит вызывать, если изменена картаvoid
validate()
Проверяет формат карты.void
write
(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:
write
in interfacecom.esotericsoftware.kryo.KryoSerializable
-
read
public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) - Specified by:
read
in 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:
- среднюю сложность порталов
-
getDifficultyExpectedPlaytime
public float getDifficultyExpectedPlaytime() -
setSize
public void setSize(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху. При увеличении позиции тайлов и гейтов не изменяются. ! Все тайлы, которые будут отброшены (при уменьшении карты) необходимо сначала убрать (setTile() / setGate()) -
getResourcesCount
Deprecated. -
regeneratePreview
public void regeneratePreview() -
getPreview
-
fromJson
-
toJson
public void toJson(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStart -
generateSeed
public int generateSeed()Считает seed по тайлам карты (их типу и позиции) Лучше не использовать как hashCode, так как не все поля тайлов учитываются -
getDefaultPathWithoutStateChanges
-
getDefaultPath
Возвращает стандартный кэшированный путь для этого типа врага. Если throwExceptionOnMissingPath == false, вернет null при отсутствующем пути -
findPath
-
findPath
-
findPath
-
rebuildPathfindingIfNeeded
public void rebuildPathfindingIfNeeded() -
requirePathfindingRebuild
public void requirePathfindingRebuild() -
hasTilesOfType
-
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
-
getTileByMapPos
-
posToCell
public static int posToCell(float v) - Parameters:
v
- must be >= 0
-
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
-