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
-