Uses of Package
com.prineside.tdi2
Packages that use com.prineside.tdi2
Package
Description
The game itself.
Variants of
Ability
Abilities are what the player can use manually during the game (such things as a Fireball or Nuke).Variants of
Action
Actions are small records of player's activity he performs during the run, for example selling a tower or calling a wave.Variants of
BuffProcessor
Buff processors are single instances stored in BuffSystem
, each of them is responsible for a single type of (de)buff.Variants of
Enemy
EnemySystem
is responsible for handling the enemies and spawned enemies are stored in MapSystem.spawnedEnemies
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2ClassDescriptionAbilities are temporary effects which are normally started by the player manually (for example,
FireballAbility
orNukeAbility
).Placed on PlatformPilesUse this wrapper to store a reference to an enemy (always if there's a chance the enemy will become unregistered between the moment it is stored & stored reference is used in the code) No need to use as method argument / as local variable (if there's no chance for the enemy to become unregistered while it is being used locally)A regular projectile which constantly follows the target enemy.Factories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesOld version of listeners, still used in some placesIMPORTANT (for me): Do not define basic constructor (SystemName()) to avoid unnecessary actions on deserialization - put some arguments into itThread-local objects, stored in S.TSH Each GameSystemProvider has a single instance of this class and provides objects that were usually available as a regular static fields / singletons Since static fields can not be used in a multithreaded environment and ThreadLocal may get costlyUse instanceof Tile.Pos / Gate.PosA base class of things that store a reference toGameSystemProvider
for its usage.Manages all of the (multi)threading stuff Also triggers the EngineCrash event if it catches an unhandled exception in any of the configured threads Stores crash report in a file and provides methods to get the previous crash report on the next game start.Шаблон волны Случайным образом генерирует группы врагов в соответствии с номером и типом волны Если enemyCount равен 0, все враги в волне заспавнилисьИспользуется в BasicLevel для волн, которые прописаны заранее (без probability)Динамическая конфигурация волны, используется при процедурной генерации волн (бесконечный режим) -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.abilitiesClassDescriptionAbilities are temporary effects which are normally started by the player manually (for example,
FireballAbility
orNukeAbility
).Ability type factory is responsible for creation of abilities and provides some additional info for some particular type of ability (such as ability name and color).Factories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference toGameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.actions
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.buffsClassDescriptionAbilities are temporary effects which are normally started by the player manually (for example,
FireballAbility
orNukeAbility
).Use this wrapper to store a reference to an enemy (always if there's a chance the enemy will become unregistered between the moment it is stored & stored reference is used in the code) No need to use as method argument / as local variable (if there's no chance for the enemy to become unregistered while it is being used locally)Factories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modes -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.buffs.processorsClassDescriptionA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.enemiesClassDescriptionFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.enemies.bossesClassDescriptionFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.events.gameClassDescriptionAbilities are temporary effects which are normally started by the player manually (for example,
FireballAbility
orNukeAbility
).Placed on PlatformPilesUse instanceof Tile.Pos / Gate.PosШаблон волны Случайным образом генерирует группы врагов в соответствии с номером и типом волны Если enemyCount равен 0, все враги в волне заспавнились -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.events.mapEditor
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.explosionsClassDescriptionFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.gameplayMods
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.gameplayMods.modsClassDescriptionШаблон волны Случайным образом генерирует группы врагов в соответствии с номером и типом волны Если enemyCount равен 0, все враги в волне заспавнились
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.gatesClassDescriptionFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.itemsClassDescriptionFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modes
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.managersClassDescriptionAbilities are temporary effects which are normally started by the player manually (for example,
FireballAbility
orNukeAbility
).Ability type factory is responsible for creation of abilities and provides some additional info for some particular type of ability (such as ability name and color). -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.managers.music
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.managers.preferences.categories.progress
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.minersClassDescriptionA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.modifiersClassDescriptionPlaced on PlatformPilesFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.modifiers.processorsClassDescriptionA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.pathfinding
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.projectilesClassDescriptionA regular projectile which constantly follows the target enemy.Factories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.screens
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.screens.account
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.serializers
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.shapes
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.systemsClassDescriptionAbilities are temporary effects which are normally started by the player manually (for example,
FireballAbility
orNukeAbility
).Placed on PlatformPilesUse this wrapper to store a reference to an enemy (always if there's a chance the enemy will become unregistered between the moment it is stored & stored reference is used in the code) No need to use as method argument / as local variable (if there's no chance for the enemy to become unregistered while it is being used locally)IMPORTANT (for me): Do not define basic constructor (SystemName()) to avoid unnecessary actions on deserialization - put some arguments into itA base class of things that store a reference toGameSystemProvider
for its usage.Шаблон волны Случайным образом генерирует группы врагов в соответствии с номером и типом волны Если enemyCount равен 0, все враги в волне заспавнилисьИспользуется в BasicLevel для волн, которые прописаны заранее (без probability)Динамическая конфигурация волны, используется при процедурной генерации волн (бесконечный режим) -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.tilesClassDescriptionPlaced on PlatformPilesFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.towersClassDescriptionPlaced on PlatformPilesFactories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.ui.actors
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.ui.componentsClassDescriptionOld version of listeners, still used in some places
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.unitsClassDescriptionUse this wrapper to store a reference to an enemy (always if there's a chance the enemy will become unregistered between the moment it is stored & stored reference is used in the code) No need to use as method argument / as local variable (if there's no chance for the enemy to become unregistered while it is being used locally)Factories provide type-specific info and manage creation / destruction of entities Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc) Game state (single instance of one game) can also do that but can be modified with scripts - I don't like the fact Enums are used, they don't allow new types of entities - How do we handle global / local factories? We need 2 of them this way - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modesA base class of things that store a reference to
GameSystemProvider
for its usage. -
Classes in com.prineside.tdi2 used by com.prineside.tdi2.utilsClassDescriptionUse this wrapper to store a reference to an enemy (always if there's a chance the enemy will become unregistered between the moment it is stored & stored reference is used in the code) No need to use as method argument / as local variable (if there's no chance for the enemy to become unregistered while it is being used locally)
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.utils.errorhandling
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.utils.logging
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.utils.mapeditor
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.utils.mapeditor.tools
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.utils.simulation
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.waves.processorsClassDescriptionШаблон волны Случайным образом генерирует группы врагов в соответствии с номером и типом волны Если enemyCount равен 0, все враги в волне заспавнились
-
Classes in com.prineside.tdi2 used by com.prineside.tdi2.waves.templatesClassDescriptionДинамическая конфигурация волны, используется при процедурной генерации волн (бесконечный режим)