public DropItemAction(ActorData actorData, ItemDefinition item, float energyCost, IEntitySpawner entitySpawner, IActionEffectFactory actionEffectFactory, IUiConfig uiConfig) : base(actorData, energyCost, actionEffectFactory) { _item = item; _entitySpawner = entitySpawner; _uiConfig = uiConfig; }
public DeathHandler(IGameConfig gameConfig, IUiConfig uiConfig, IEntityRemover entityRemover, IEntitySpawner entitySpawner, IRandomNumberGenerator rng, IGameContext gameContext) { _gameConfig = gameConfig; _uiConfig = uiConfig; _entityRemover = entityRemover; _entitySpawner = entitySpawner; _rng = rng; _gameContext = gameContext; }
private void SpawnEntity(Entity entity, Optional <GameObject> parent) { IEntitySpawner entitySpawner = ResolveEntitySpawner(entity.TechType); Optional <GameObject> gameObject = entitySpawner.Spawn(entity, parent); alreadySpawnedGuids.Add(entity.Guid); if (entity.ChildEntity.IsPresent() && gameObject.IsPresent()) { SpawnEntity(entity.ChildEntity.Get(), gameObject); } }
private void SpawnEntity(Entity entity, Optional <GameObject> parent) { IEntitySpawner entitySpawner = ResolveEntitySpawner(entity.TechType); Optional <GameObject> gameObject = entitySpawner.Spawn(entity, parent); alreadySpawnedGuids.Add(entity.Guid); foreach (Entity childEntity in entity.ChildEntities) { SpawnEntity(childEntity, gameObject); } }
public UseItemAction(ActorData actorData, ItemDefinition item, bool fromInventory, float energyCost, IEntitySpawner entitySpawner, IUiConfig uiConfig, IActionEffectFactory actionEffectFactory, IEntityDetector entityDetector, IRandomNumberGenerator rng, ITextEffectPresenter textEffectPresenter, IGameContext gameContext, IEntityRemover entityRemover) : base(actorData, energyCost, actionEffectFactory) { _item = item; _fromInventory = fromInventory; _entitySpawner = entitySpawner; _uiConfig = uiConfig; _entityDetector = entityDetector; _rng = rng; _textEffectPresenter = textEffectPresenter; _gameContext = gameContext; _entityRemover = entityRemover; }
public void Init(IGameContext gameContext, IGameConfig gameConfig, IUiConfig uiConfig, IPathfinder pathfinder, IRandomNumberGenerator randomNumberGenerator, IGridInfoProvider gridInfoProvider, IEntitySpawner entitySpawner) { _gameContext = gameContext; _gameConfig = gameConfig; _uiConfig = uiConfig; _pathfinder = pathfinder; _rng = randomNumberGenerator; _gridInfoProvider = gridInfoProvider; _entitySpawner = entitySpawner; _caveTiles = new HashSet <Vector2Int>(); _processedCaveTiles = new HashSet <Vector2Int>(); _caveRootsToCaves = new Dictionary <Vector2Int, HashSet <Vector2Int> >(); }
public ActionFactory(IGridInfoProvider gridInfoProvider, IActionEffectFactory actionEffectFactory, ITextEffectPresenter textEffectPresenter, INeedHandler needHandler, IRandomNumberGenerator randomNumberGenerator, IDeathHandler deathHandler, IEntityRemover entityRemover, IEntityDetector entityDetector, IGameContext gameContext, IEntitySpawner entitySpawner, IUiConfig uiConfig) { _gridInfoProvider = gridInfoProvider; _actionEffectFactory = actionEffectFactory; _textEffectPresenter = textEffectPresenter; _needHandler = needHandler; _randomNumberGenerator = randomNumberGenerator; _deathHandler = deathHandler; _entityRemover = entityRemover; _entityDetector = entityDetector; _gameContext = gameContext; _entitySpawner = entitySpawner; _uiConfig = uiConfig; }
private void Spawn(Entity entity, Optional <GameObject> parent) { alreadySpawnedIds.Add(entity.Id); IEntitySpawner entitySpawner = ResolveEntitySpawner(entity); Optional <GameObject> gameObject = entitySpawner.Spawn(entity, parent); foreach (Entity childEntity in entity.ChildEntities) { if (!alreadySpawnedIds.Contains(childEntity.Id) && !entitySpawner.SpawnsOwnChildren()) { Spawn(childEntity, gameObject); } alreadySpawnedIds.Add(childEntity.Id); } }
public bool SpawnEntity(out List <Entity> entities, IEntitySpawner spawner) { entities = new List <Entity>(); if (!CanHaveMoreOffspring(spawner)) { return(false); } if (!spawner.GetSpawnPrefabs(out List <GameObject> prefabs)) { return(false); } foreach (GameObject prefab in prefabs) { entities.Add(Instantiate(prefab, spawner.currentDirectory.transform).GetComponent <Entity>()); } spawner.offspring.AddRange(entities.Select(e => e.GetGameObject())); return(entities.Count > 0); }
private void Spawn(Entity entity, Optional <GameObject> parent) { alreadySpawnedIds.Add(entity.Id); EntityCell cellRoot = EnsureCell(entity); IEntitySpawner entitySpawner = entitySpawnerResolver.ResolveEntitySpawner(entity); Optional <GameObject> gameObject = entitySpawner.Spawn(entity, parent, cellRoot); if (!entitySpawner.SpawnsOwnChildren()) { foreach (Entity childEntity in entity.ChildEntities) { if (!WasSpawnedByServer(childEntity.Id)) { Spawn(childEntity, gameObject); } } } }
private void Spawn(Entity entity, Optional <GameObject> parent) { alreadySpawnedGuids.Add(entity.Guid); IEntitySpawner entitySpawner = ResolveEntitySpawner(entity); Optional <GameObject> gameObject = entitySpawner.Spawn(entity, parent); foreach (Entity childEntity in entity.ChildEntities) { alreadySpawnedGuids.Add(childEntity.Guid); if (!entitySpawner.SpawnsOwnChildren()) { Spawn(childEntity, gameObject); } } if (gameObject.IsPresent()) { gameObject.Get().AddComponent <NitroxEntity>(); } }
private void Spawn(Entity entity, Optional <GameObject> parent) { alreadySpawnedIds.Add(entity.Id); IEntitySpawner entitySpawner = ResolveEntitySpawner(entity); Optional <GameObject> gameObject = entitySpawner.Spawn(entity, parent); EntityCell cellRoot = EnsureCell(entity, gameObject); if (cellRoot != null && gameObject.Get().GetComponent <LargeWorldEntityCell>() != null) { LargeWorldStreamer.main.cellManager.QueueForAwake(cellRoot); } foreach (Entity childEntity in entity.ChildEntities) { if (!alreadySpawnedIds.Contains(childEntity.Id) && !entitySpawner.SpawnsOwnChildren()) { Spawn(childEntity, gameObject); } alreadySpawnedIds.Add(childEntity.Id); } }
public void SetEntitySpawner(IEntitySpawner spawner) { _entitySpawner = spawner; }
public void InitEntitySpawner(IEntitySpawner entitySpawner) { entitySpawner.onSpawn = new EntitySpawnEvent(); }