Class MapSystem

All Implemented Interfaces:
Disposable, KryoSerializable

public final class MapSystem extends GameSystem
  • Field Details

  • Constructor Details

    • MapSystem

      public MapSystem()
  • Method Details

    • write

      public void write(Kryo kryo, Output output)
      Specified by:
      write in interface KryoSerializable
      Overrides:
      write in class Registrable
    • read

      public void read(Kryo kryo, Input input)
      Specified by:
      read in interface KryoSerializable
      Overrides:
      read in class Registrable
    • affectsGameState

      public boolean affectsGameState()
      Specified by:
      affectsGameState in class GameSystem
    • aabbGenerated

      public boolean aabbGenerated()
      AABB may be not present if no updates happened yet. Usually used by the UI code which may be executed after the game is continued but no frames were simulated since.
      Returns:
      true if AABB is generated and can be accessed
    • getMap

      public Map getMap()
    • getTileAndNeighbours

      public void getTileAndNeighbours(int x, int y, Array<Tile> out)
      Получить тайл и соседей (по углам тоже)
    • setMap

      public void setMap(Map map)
    • setMapSize

      public void setMapSize(int width, int height)
    • getDirtyTileGeneration

      public short getDirtyTileGeneration(Tile tile)
    • getDirtyTileGenerationAt

      public short getDirtyTileGenerationAt(int x, int y)
    • updateDirtyTiles

      public void updateDirtyTiles()
    • markAllTilesDirty

      public void markAllTilesDirty()
    • markTilesDirtyNearTile

      public void markTilesDirtyNearTile(Tile tile, int range)
    • 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
    • getEnemiesInRectFiltered

      public void getEnemiesInRectFiltered(float minX, float minY, float maxX, float maxY, AABB.EntryFilter filter, AABB.EntryRetriever<Enemy.EnemyReference> cb)
    • getEnemiesInRectV

      public void getEnemiesInRectV(Vector2 v1, Vector2 v2, AABB.EntryRetriever<Enemy.EnemyReference> cb)
    • getEnemiesInCircleFiltered

      public void getEnemiesInCircleFiltered(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)
    • getEnemiesInCircleV

      public void getEnemiesInCircleV(Vector2 pos, float radiusInPixels, AABB.EntryRetriever<Enemy.EnemyReference> cb)
    • setup

      public void setup()
      Description copied from class: GameSystem
      Performs the initial configuration of the system. At the moment of call, systemProvider already contains all objects of systems.
      Overrides:
      setup in class GameSystem
    • postStateRestore

      public void postStateRestore()
      Overrides:
      postStateRestore in class GameSystem
    • postSetup

      public void postSetup()
      Description copied from class: GameSystem
      Performs the final configuration of the system. At the moment of call, all systems are already loaded and setup(), all listeners are already added.
      Overrides:
      postSetup in class GameSystem
    • showTileWarningParticle

      public void showTileWarningParticle(int x, int y)
    • removeHighlights

      public void removeHighlights()
    • highlightTile

      public void highlightTile(Tile tile)
    • highlightGate

      public void highlightGate(Gate gate)
    • isPointWithinTile

      public boolean isPointWithinTile(Tile tile, int x, int y)
    • isVisible

      public boolean isVisible(Tile tile, OrthographicCamera camera)
    • setGate

      public void setGate(int x, int y, boolean leftSide, @Null Gate gate)
      Изменить гейт во время игры
    • setTile

      public void setTile(int x, int y, @Null Tile tile)
      Изменить тайл во время игры TODO trigger an event instead and move all tower/miner/tile related logic there
    • registerTile

      public void registerTile(Tile tile)
      Напрямую внести тайл в регистр системы. Вызывать при добавлении тайла на карту
    • unregisterTile

      public void unregisterTile(Tile tile)
      Напрямую вывести тайл из регистра. Вызывать при удалении тайла из карты
    • registerGate

      public void registerGate(Gate gate)
    • unregisterGate

      public void unregisterGate(Gate gate)
    • setTower

      public void setTower(int x, int y, Tower tower)
    • setModifier

      public void setModifier(int x, int y, Modifier modifier)
    • removeBuilding

      public void removeBuilding(Building building)
    • setMiner

      public void setMiner(int x, int y, Miner miner)
    • removeMiner

      public void removeMiner(Miner miner)
    • isSpawned

      public boolean isSpawned(Unit unit)
    • spawnEnemy

      public void spawnEnemy(Enemy enemy)
      Заспавнить врага на карте. Враг будет просто учитываться системой, но не получит сразу путь и позицию на карте - использовать эти данные можно только если enemy.setUpByEnemySystem
    • spawnUnit

      public void spawnUnit(Unit unit)
    • 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

      public int getSpawnedEnemiesCountByWave(Wave wave)
    • showTowerRangeHint

      public void showTowerRangeHint(float x, float y, float minRadius, float maxRadius)
    • hideTowerRangeHint

      public void hideTowerRangeHint()
    • upgradeCoreAction

      public void upgradeCoreAction(CoreTile coreTile, int col, int row)
    • upgradeCoreActionAt

      public void upgradeCoreActionAt(int coreX, int coreY, int col, int row)
    • upgradeCoreAt

      public boolean upgradeCoreAt(int coreX, int coreY, int col, int row)
    • upgradeCore

      public boolean upgradeCore(CoreTile coreTile, int col, int row)
      Установить улучшение ядра
    • update

      public void update(float deltaTime)
      Overrides:
      update in class GameSystem
    • profileUpdate

      public boolean profileUpdate()
      Description copied from class: GameSystem
      Should the update() method be rendered on the debug overlay
      Overrides:
      profileUpdate in class GameSystem
    • getSystemName

      public String getSystemName()
      Specified by:
      getSystemName in class GameSystem
    • setPathTracesDrawing

      public void setPathTracesDrawing(boolean drawing)
      Используется в Lua
    • traverseNeighborTilesAroundPos

      public void traverseNeighborTilesAroundPos(int x, int y, ObjectFilter<Tile> cb)
      Parameters:
      cb - should return false to stop the loop
    • traverseNeighborTilesAroundTile

      public void traverseNeighborTilesAroundTile(Tile tile, ObjectFilter<Tile> cb)
    • traverseNeighborTilesIncludingPos

      public void traverseNeighborTilesIncludingPos(int x, int y, ObjectFilter<Tile> cb)
      Parameters:
      cb - should return false to stop the loop
    • traverseNeighborTilesIncludingTile

      public void traverseNeighborTilesIncludingTile(Tile tile, ObjectFilter<Tile> cb)
    • drawBatch

      public void drawBatch(Batch batch, float deltaTime)
    • dispose

      public void dispose()
      Description copied from interface: com.badlogic.gdx.utils.Disposable
      Releases all resources of this object.
      Specified by:
      dispose in interface Disposable
      Overrides:
      dispose in class GameSystem