Exemple #1
0
 public DropItemAction(ActorData actorData, ItemDefinition item, float energyCost, IEntitySpawner entitySpawner,
                       IActionEffectFactory actionEffectFactory, IUiConfig uiConfig)
     : base(actorData, energyCost, actionEffectFactory)
 {
     _item          = item;
     _entitySpawner = entitySpawner;
     _uiConfig      = uiConfig;
 }
Exemple #2
0
 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;
 }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 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> >();
        }
Exemple #7
0
 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;
 }
Exemple #8
0
        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);
            }
        }
Exemple #9
0
 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);
 }
Exemple #10
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);
                    }
                }
            }
        }
Exemple #11
0
        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>();
            }
        }
Exemple #12
0
        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;
 }
Exemple #14
0
 public void InitEntitySpawner(IEntitySpawner entitySpawner)
 {
     entitySpawner.onSpawn = new EntitySpawnEvent();
 }