Exemplo n.º 1
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)
            {
                if (!entitySpawner.SpawnsOwnChildren())
                {
                    SpawnEntity(childEntity, gameObject);
                }

                alreadySpawnedGuids.Add(childEntity.Guid);
            }
        }
Exemplo n.º 2
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);
            }
        }
Exemplo n.º 3
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);
                    }
                }
            }
        }
Exemplo n.º 4
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>();
            }
        }
Exemplo n.º 5
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);
            }
        }