Package com.prineside.tdi2.systems
Class PathfindingSystem
java.lang.Object
com.prineside.tdi2.Registrable
com.prineside.tdi2.GameSystem
com.prineside.tdi2.systems.PathfindingSystem
- All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable
,com.esotericsoftware.kryo.KryoSerializable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
static final class
static final class
static final class
static final class
static final class
-
Field Summary
FieldsFields inherited from class com.prineside.tdi2.Registrable
S
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
Можно временно изменить тайл и вызвать этот метод, чтобы проверить, можно ли так делать.void
drawDebug
(com.badlogic.gdx.graphics.g2d.Batch batch) Can be called concurrently but do not mix with pathfinding-modifying operationsvoid
getDefaultPath
(EnemyType enemyType, SpawnTile spawnTile) Возвращает стандартный кэшированный путь для этого типа врага.getDefaultPathWithoutStateChanges
(EnemyType enemyType, SpawnTile spawnTile) com.badlogic.gdx.utils.Array<Map.EnemyTypeSpawnPair>
boolean
void
Произвести окончательную настройку системы.void
void
read
(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) void
Обновляет массивы соединений и присваивает им индексыvoid
void
setup()
Произвести начальную настройку системы.void
update
(float deltaTime) void
write
(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) Methods inherited from class com.prineside.tdi2.GameSystem
dispose, getFastStateHash, profileUpdate
Methods inherited from class com.prineside.tdi2.Registrable
isRegistered, setRegistered, setUnregistered
-
Field Details
-
throwExceptionOnMissingPath
public boolean throwExceptionOnMissingPath -
pathfindingNodes
-
-
Constructor Details
-
PathfindingSystem
public PathfindingSystem()
-
-
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
- Overrides:
write
in classRegistrable
-
read
public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) - Specified by:
read
in interfacecom.esotericsoftware.kryo.KryoSerializable
- Overrides:
read
in classRegistrable
-
setup
public void setup()Description copied from class:GameSystem
Произвести начальную настройку системы. На момент вызова этого метода, systemProvider содержит объекты всех систем.- Overrides:
setup
in classGameSystem
-
postSetup
public void postSetup()Description copied from class:GameSystem
Произвести окончательную настройку системы. Во время вызова, все системы загружены и установлены (setup()), все слушатели добавлены- Overrides:
postSetup
in classGameSystem
-
postStateRestore
public void postStateRestore()- Overrides:
postStateRestore
in classGameSystem
-
isWalkablePlatforms
public boolean isWalkablePlatforms() -
canAllEnemiesFindPath
public boolean canAllEnemiesFindPath()Можно временно изменить тайл и вызвать этот метод, чтобы проверить, можно ли так делать.- Returns:
- true если от каждого спавна к базе есть путь для каждого типа врага, который там спавнится
-
forcePathfindingRebuild
public void forcePathfindingRebuild() -
findPath
-
findPath
Can be called concurrently but do not mix with pathfinding-modifying operations -
findPath
-
getDefaultPathWithoutStateChanges
-
rebuildPathfindingIfNeeded
public void rebuildPathfindingIfNeeded() -
rebuildPathfinding
public void rebuildPathfinding()Обновляет массивы соединений и присваивает им индексы -
getEnemyTypesThatCantFindPath
-
getDefaultPath
Возвращает стандартный кэшированный путь для этого типа врага. Если throwExceptionOnMissingPath == false, вернет null при отсутствующем пути -
update
public void update(float deltaTime) - Overrides:
update
in classGameSystem
-
drawDebug
public void drawDebug(com.badlogic.gdx.graphics.g2d.Batch batch) -
affectsGameState
public boolean affectsGameState()- Specified by:
affectsGameState
in classGameSystem
-
getSystemName
- Specified by:
getSystemName
in classGameSystem
-