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 class
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final float
static final float
static final int
static final int
static final float
static final float
static final float
static final float
static final float
static final float
static final float
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncpy()
Создает копию карты без пустоты по бокамboolean
fitGateToMapPos
(float x, float y, Gate helperGate) static Map
fromJson
(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>
int
float
getGate
(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[][][]
int
void
getNeighbourTiles
(com.badlogic.gdx.utils.Array<Tile> toArray, int x, int y) Same as traverseNeighborTiles but fills an arraydouble
int[]
getTargetTile
(boolean exceptionIfNotExists) void
getTeleportGates
(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 int
getTileIdByPos
(Tile tile) static int
getTileIndex
(float position) <T extends Tile>
com.badlogic.gdx.utils.Array<T>getTilesByType
(Class<T> tClass) Tile[][]
int
getWidth()
boolean
void
multiplyPortalsDifficulty
(float mul) static int
positionToCoordinate
(float pos) static int
posToCell
(float v) void
read
(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) void
void
void
setSize
(int width, int height) Изменить размер карты Уменьшается удалением тайлов справа / сверху.void
Изменить тайл картыvoid
toJson
(com.badlogic.gdx.utils.Json json) Вызывать в writeObjectStartvoid
traverseNeighborTiles
(int x, int y, com.badlogic.gdx.utils.Predicate<Tile> predicate) Get tiles neighboring with x,yvoid
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:
-
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:
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
-
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
-