Interface EntityFactory

All Known Subinterfaces:
Gate.Factory<T>, Item.Factory<T>, Tile.Factory<T>, Unit.Factory<T>
All Known Implementing Classes:
Ability.Factory, AbilityItem.AbilityItemFactory, AbilityTokenItem.AbilityTokenItemFactory, AcceleratorItem.AcceleratorItemFactory, AirFallExplosion.AirFallExplosionFactory, AirProjectile.AirProjectileFactory, AirTower.AirTowerFactory, ArmorBuff.ArmorBuffFactory, ArmoredEnemy.ArmoredEnemyFactory, AttackSpeedModifier.AttackSpeedModifierFactory, BalanceModifier.BalanceModifierFactory, BallLightningAbility.BallLightningAbilityFactory, BallLightningUnit.BallLightningUnitFactory, BarrierHealthGate.BarrierHealthGateFactory, BarrierTypeGate.BarrierTypeGateFactory, BasicProjectile.BasicProjectileFactory, BasicTower.BasicTowerFactory, BitDustItem.BitDustItemFactory, BlastTower.BlastTowerFactory, BlizzardAbility.BlizzardAbilityFactory, BlizzardBuff.BlizzardBuffFactory, BlueprintItem.BlueprintItemFactory, BonusCoinsBuff.BonusCoinsBuffFactory, BonusXpBuff.BonusXpBuffFactory, BossEnemy.BossEnemyFactory, BossTile.BossTileFactory, BountyModifier.BountyModifierFactory, BrootEnemy.BrootEnemyFactory, Buff.Factory, BuffProjectile.BuffProjectileFactory, BulletWallAbility.BulletWallAbilityFactory, BulletWallProjectile.MultishotProjectileFactory, BurnBuff.BurnBuffFactory, CannonExplosion.CannonExplosionFactory, CannonProjectile.CannonProjectileFactory, CannonTower.CannonTowerFactory, CaseItem.CaseItemFactory, CaseKeyItem.CaseKeyItemFactory, ChainLightningProjectile.ChainLightningProjectileFactory, ChainReactionBuff.ChainReactionBuffFactory, ConstructorBossEnemy.ConstructorBossBodyEnemyFactory, CoreTile.CoreTileFactory, CrusherTower.CrusherTowerFactory, DamageModifier.DamageModifierFactory, DatPaperItem.DatPaperItemFactory, DeathExplosionBuff.ExplosionChargeBuffFactory, DisorientedUnit.DisorientedUnitFactory, DoubleGainShardItem.DoubleGainShardItemFactory, DummyTile.DummyTileFactory, Enemy.Factory, EqualizerTile.EqualizerTileFactory, ExperienceModifier.ExperienceModifierFactory, Explosion.Factory, FastEnemy.FastEnemyFactory, FighterEnemy.FighterEnemyFactory, FireballAbility.FireballAbilityFactory, FireballExplosion.FireballExplosionFactory, FirestormAbility.FirestormAbilityFactory, FlamethrowerTower.FlamethrowerTowerFactory, FreezingBuff.FreezingBuffFactory, FreezingTower.FreezingTowerFactory, GameValueGlobalItem.GameValueGlobalItemFactory, GameValueLevelItem.GameValueLevelItemFactory, GameValueTile.GameValueTileFactory, Gate.Factory.AbstractFactory, GateItem.GateItemFactory, GaussTower.GaussTowerFactory, GenericEnemy.GenericEnemyFactory, GenericExplosion.GenericExplosionFactory, GreenPaperItem.GreenPaperItemFactory, HealerEnemy.HealerEnemyFactory, HeliEnemy.HeliEnemyFactory, IceFieldUnit.IceFieldUnitFactory, IcyEnemy.IcyEnemyFactory, InvulnerabilityBuff.InvulnerabilityBuffFactory, Item.Factory.AbstractFactory, JetEnemy.JetEnemyFactory, LaserProjectile.LaserProjectileFactory, LaserTower.LaserTowerFactory, LightEnemy.LightEnemyFactory, LoicAbility.LoicAbilityFactory, LoopAbility.RepeatAbilityFactory, LootBoostItem.LootBoostItemFactory, LuckyShotTokenItem.LuckyShotTokenItemFactory, MagnetAbility.MagnetAbilityFactory, MetaphorBossCreepEnemy.MetaphorBossCreepEnemyFactory, MetaphorBossEnemy.MetaphorBossEnemyFactory, MicrogunUnit.MicrogunUnitFactory, MineUnit.MineUnitFactory, MinigunTower.MinigunTowerFactory, MiningSpeedModifier.MiningSpeedModifierFactory, MissileExplosion.MissileExplosionFactory, MissileProjectile.MissileProjectileFactory, MissileTower.MissileTowerFactory, MobchainBossBodyEnemy.MobchainBossBodyEnemyFactory, MobchainBossCreepEnemy.MobchainBossCreepEnemyFactory, MobchainBossHeadEnemy.MobchainBossHeadEnemyFactory, Modifier.Factory, MultishotProjectile.MultishotProjectileFactory, MultishotTower.MultishotTowerFactory, NoBonusSystemPointsBuff.NoBonusSystemPointsBuffFactory, NoDamageBuff.NoDamageBuffFactory, NukeAbility.NukeAbilityFactory, OpenedResearchItem.OpenedResearchItemFactory, OverloadAbility.OverloadAbilityFactory, PlatformTile.SpaceTileFactory, PoisonBuff.PoisonBuffFactory, PowerModifier.PowerModifierFactory, PrestigeDustItem.PrestigeDustItemFactory, PrestigeTokenItem.PrestigeTokenItemFactory, Projectile.Factory, QuadTile.QuadTileFactory, RandomBarrierItem.RandomBarrierItemFactory, RandomTeleportItem.RandomTeleportItemFactory, RandomTileItem.RandomTileItemFactory, RarityBoostItem.RarityBoostItemFactory, RegenerationBuff.RegenerationBuffFactory, RegularEnemy.RegularEnemyFactory, ResearchTokenItem.ResearchTokenItemFactory, ResearchTokenUsedItem.ResearchTokenUsedItemFactory, ResourceItem.ResourceItemFactory, RoadTile.RoadTileFactory, ScriptTile.ScriptTileFactory, SearchModifier.SearchModifierFactory, SkillPointItem.SkillPointItemFactory, SlippingBuff.SlippingBuffFactory, SmokeBombAbility.SmokeBombAbilityFactory, SnakeBossBodyEnemy.SnakeBossBodyEnemyFactory, SnakeBossHeadEnemy.SnakeBossHeadEnemyFactory, SnakeBossTailEnemy.SnakeBossTailEnemyFactory, SniperTower.SniperTowerFactory, SnowballBuff.SnowballBuffFactory, SnowballUnit.SnowballUnitFactory, SourceTile.SourceTileFactory, SpawnTile.SpawnTileFactory, SplashProjectile.SplashProjectileFactory, SplashTower.SplashTowerFactory, SplinterProjectile.SplinterProjectileFactory, StarItem.StarItemFactory, StrongEnemy.StrongEnemyFactory, StunBuff.StunBuffFactory, TargetTile.TargetTileFactory, TeleportGate.TeleportGateFactory, TeslaTower.TeslaTowerFactory, ThrowBackBuff.BlastThrowBackBuffFactory, ThunderAbility.ThunderAbilityFactory, Tile.Factory.AbstractFactory, TileItem.TileItemFactory, Tower.Factory, ToxicEnemy.ToxicEnemyFactory, TrophyItem.TrophyItemFactory, Unit.Factory.BasicAbstractFactory, VenomProjectile.VenomProjectileFactory, VenomTower.VenomTowerFactory, VulnerabilityBuff.VulnerabilityBuffFactory, WindstormAbility.WindstormAbilityFactory, XmMusicTrackTile.XmMusicTrackTileFactory

public interface EntityFactory
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