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); } }
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); } }
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); } }