Package com.prineside.tdi2.systems
Class MapSystem
java.lang.Object
com.prineside.tdi2.Registrable
com.prineside.tdi2.GameSystem
com.prineside.tdi2.systems.MapSystem
- All Implemented Interfaces:
Disposable
,KryoSerializable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
static final class
-
Field Summary
FieldsFields inherited from class com.prineside.tdi2.Registrable
S
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
void
dispose()
Releases all resources of this object.void
short
getDirtyTileGeneration
(int x, int y) short
getDirtyTileGeneration
(Tile tile) void
getEnemiesInCircle
(float centerX, float centerY, float radiusInPixels, AABB.EntryFilter filter, AABB.EntryRetriever<Enemy.EnemyReference> cb) Note: enemy never null (if not modified during the loop)void
getEnemiesInCircle
(float centerX, float centerY, float radiusInPixels, AABB.EntryRetriever<Enemy.EnemyReference> cb) void
getEnemiesInCircle
(Vector2 pos, float radiusInPixels, AABB.EntryRetriever<Enemy.EnemyReference> cb) void
getEnemiesInRect
(float minX, float minY, float maxX, float maxY, AABB.EntryFilter filter, AABB.EntryRetriever<Enemy.EnemyReference> cb) void
getEnemiesInRect
(float minX, float minY, float maxX, float maxY, AABB.EntryRetriever<Enemy.EnemyReference> cb) void
getMap()
int
void
getTileAndNeighbours
(int x, int y, Array<Tile> out) Получить тайл и соседей (по углам тоже)void
void
highlightGate
(Gate gate) void
highlightTile
(Tile tile) boolean
isPointWithinTile
(Tile tile, int x, int y) boolean
boolean
isVisible
(Tile tile, OrthographicCamera camera) boolean
lineCanHitEntry
(float x1, float y1, float x2, float y2) void
void
markTilesDirty
(int x, int y, int range) void
markTilesDirty
(Tile tile, int range) void
Произвести окончательную настройку системы.void
boolean
Нужно ли учитывать время выполнения update() в Debugboolean
rayCastEnemies
(float startX, float startY, float endX, float endY, float rayThickness, ObjectFilter<Enemy.EnemyReference> cb) boolean
rayCastEnemiesSorted
(float startX, float startY, float endX, float endY, float rayThickness, ObjectFilter<Enemy.EnemyReference> cb) void
void
registerGate
(Gate gate) void
registerTile
(Tile tile) Напрямую внести тайл в регистр системы.void
removeBuilding
(Building building) void
void
removeMiner
(Miner miner) void
Изменить гейт во время игрыvoid
void
setMapSize
(int width, int height) void
void
setModifier
(int x, int y, Modifier modifier) void
setPathTracesDrawing
(boolean drawing) Используется в Luavoid
Изменить тайл во время игры TODO trigger an event instead and move all tower/miner/tile related logic therevoid
void
setup()
Произвести начальную настройку системы.void
showTileWarningParticle
(int x, int y) void
showTowerRangeHint
(float x, float y, float minRadius, float maxRadius) void
spawnEnemy
(Enemy enemy) Заспавнить врага на карте.void
void
traverseNeighbourTiles
(int x, int y, ObjectFilter<Tile> cb) void
traverseNeighbourTiles
(Tile tile, ObjectFilter<Tile> cb) void
traverseNeighbourTilesAndThis
(int x, int y, ObjectFilter<Tile> cb) void
traverseNeighbourTilesAndThis
(Tile tile, ObjectFilter<Tile> cb) void
unregisterGate
(Gate gate) void
unregisterTile
(Tile tile) Напрямую вывести тайл из регистра.void
update
(float deltaTime) void
boolean
upgradeCore
(int coreX, int coreY, int col, int row) boolean
upgradeCore
(CoreTile coreTile, int col, int row) Установить улучшение ядраvoid
upgradeCoreAction
(int coreX, int coreY, int col, int row) void
upgradeCoreAction
(CoreTile coreTile, int col, int row) void
Methods inherited from class com.prineside.tdi2.GameSystem
getFastStateHash
Methods inherited from class com.prineside.tdi2.Registrable
isRegistered, setRegistered, setUnregistered
-
Field Details
-
TOWER_RANGE_SELECTED_COLOR
-
TOWER_RANGE_HOVER_COLOR
-
drawPathTraces
public boolean drawPathTraces -
spawnedEnemies
-
spawnedUnits
-
-
Constructor Details
-
MapSystem
public MapSystem()
-
-
Method Details
-
write
- Specified by:
write
in interfaceKryoSerializable
- Overrides:
write
in classRegistrable
-
read
- Specified by:
read
in interfaceKryoSerializable
- Overrides:
read
in classRegistrable
-
affectsGameState
public boolean affectsGameState()- Specified by:
affectsGameState
in classGameSystem
-
getMap
-
getTileAndNeighbours
Получить тайл и соседей (по углам тоже) -
setMap
-
setMapSize
public void setMapSize(int width, int height) -
getDirtyTileGeneration
-
getDirtyTileGeneration
public short getDirtyTileGeneration(int x, int y) -
updateDirtyTiles
public void updateDirtyTiles() -
markAllTilesDirty
public void markAllTilesDirty() -
markTilesDirty
-
markTilesDirty
public void markTilesDirty(int x, int y, int range) - Parameters:
range
- >= 0. If 0, a single tile will be marked dirty
-
getEnemiesInRect
public void getEnemiesInRect(float minX, float minY, float maxX, float maxY, AABB.EntryRetriever<Enemy.EnemyReference> cb) - Parameters:
cb
- returns true to continue iteration and false to stop it
-
getEnemiesInRect
public void getEnemiesInRect(float minX, float minY, float maxX, float maxY, AABB.EntryFilter filter, AABB.EntryRetriever<Enemy.EnemyReference> cb) -
getEnemiesInRect
-
getEnemiesInCircle
public void getEnemiesInCircle(float centerX, float centerY, float radiusInPixels, AABB.EntryFilter filter, AABB.EntryRetriever<Enemy.EnemyReference> cb) Note: enemy never null (if not modified during the loop) -
getEnemiesInCircle
public void getEnemiesInCircle(float centerX, float centerY, float radiusInPixels, AABB.EntryRetriever<Enemy.EnemyReference> cb) -
getEnemiesInCircle
public void getEnemiesInCircle(Vector2 pos, float radiusInPixels, AABB.EntryRetriever<Enemy.EnemyReference> cb) -
setup
public void setup()Description copied from class:GameSystem
Произвести начальную настройку системы. На момент вызова этого метода, systemProvider содержит объекты всех систем.- Overrides:
setup
in classGameSystem
-
postStateRestore
public void postStateRestore()- Overrides:
postStateRestore
in classGameSystem
-
postSetup
public void postSetup()Description copied from class:GameSystem
Произвести окончательную настройку системы. Во время вызова, все системы загружены и установлены (setup()), все слушатели добавлены- Overrides:
postSetup
in classGameSystem
-
showTileWarningParticle
public void showTileWarningParticle(int x, int y) -
removeHighlights
public void removeHighlights() -
highlightTile
-
highlightGate
-
isPointWithinTile
-
isVisible
-
setGate
Изменить гейт во время игры -
setTile
Изменить тайл во время игры TODO trigger an event instead and move all tower/miner/tile related logic there -
registerTile
Напрямую внести тайл в регистр системы. Вызывать при добавлении тайла на карту -
unregisterTile
Напрямую вывести тайл из регистра. Вызывать при удалении тайла из карты -
registerGate
-
unregisterGate
-
setTower
-
setModifier
-
removeBuilding
-
setMiner
-
removeMiner
-
isSpawned
-
spawnEnemy
Заспавнить врага на карте. Враг будет просто учитываться системой, но не получит сразу путь и позицию на карте - использовать эти данные можно только если enemy.setUpByEnemySystem -
spawnUnit
-
lineCanHitEntry
public boolean lineCanHitEntry(float x1, float y1, float x2, float y2) -
rayCastEnemiesSorted
public boolean rayCastEnemiesSorted(float startX, float startY, float endX, float endY, float rayThickness, ObjectFilter<Enemy.EnemyReference> cb) -
rayCastEnemies
public boolean rayCastEnemies(float startX, float startY, float endX, float endY, float rayThickness, ObjectFilter<Enemy.EnemyReference> cb) -
getSpawnedEnemiesCountByWave
-
showTowerRangeHint
public void showTowerRangeHint(float x, float y, float minRadius, float maxRadius) -
hideTowerRangeHint
public void hideTowerRangeHint() -
upgradeCoreAction
-
upgradeCoreAction
public void upgradeCoreAction(int coreX, int coreY, int col, int row) -
upgradeCore
public boolean upgradeCore(int coreX, int coreY, int col, int row) -
upgradeCore
Установить улучшение ядра -
update
public void update(float deltaTime) - Overrides:
update
in classGameSystem
-
profileUpdate
public boolean profileUpdate()Description copied from class:GameSystem
Нужно ли учитывать время выполнения update() в Debug- Overrides:
profileUpdate
in classGameSystem
-
getSystemName
- Specified by:
getSystemName
in classGameSystem
-
setPathTracesDrawing
public void setPathTracesDrawing(boolean drawing) Используется в Lua -
traverseNeighbourTiles
- Parameters:
cb
- should return false to stop the loop
-
traverseNeighbourTiles
-
traverseNeighbourTilesAndThis
- Parameters:
cb
- should return false to stop the loop
-
traverseNeighbourTilesAndThis
-
drawBatch
-
dispose
public void dispose()Description copied from interface:com.badlogic.gdx.utils.Disposable
Releases all resources of this object.- Specified by:
dispose
in interfaceDisposable
- Overrides:
dispose
in classGameSystem
-