void SpawnDecoration(World.Streaming.IChunk chunk, Vector3 chunkWorldPos, World.Decoration_t decoration) { SpawnPointData spawnPoint; switch (decoration.type) { default: return; case EDecorationType.MonsterSpawn: if (_monsterSpawns.Length < 1) { return; } spawnPoint = _monsterSpawns.GetAtIndexZeroToOne(GetWhiteNoise(chunkWorldPos.x, chunkWorldPos.y, chunkWorldPos.z)); break; case EDecorationType.Merchant: if (_merchantSpawns.Length < 1) { return; } spawnPoint = _merchantSpawns.GetAtIndexZeroToOne(GetWhiteNoise(chunkWorldPos.x, chunkWorldPos.y, chunkWorldPos.z)); break; case EDecorationType.Horse: if (_horseSpawns.Length < 1) { return; } spawnPoint = _horseSpawns.GetAtIndexZeroToOne(GetWhiteNoise(chunkWorldPos.x, chunkWorldPos.y, chunkWorldPos.z)); break; case EDecorationType.Chest: if (_chestSpawns.Length < 1) { return; } spawnPoint = _chestSpawns.GetAtIndexZeroToOne(GetWhiteNoise(chunkWorldPos.x, chunkWorldPos.y, chunkWorldPos.z)); break; case EDecorationType.MapReveal: if (_mapRevealSpawns.Length < 1) { return; } spawnPoint = _mapRevealSpawns.GetAtIndexZeroToOne(GetWhiteNoise(chunkWorldPos.x, chunkWorldPos.y, chunkWorldPos.z)); break; } spawnPoint.Spawn <Actor>(this, decoration.pos, 0); }
void SpawnDecorations(World.Streaming.IChunk chunk) { var decorationCount = chunk.decorationCount; if (decorationCount > 0) { var decorations = chunk.decorations; var wpos = World.WorldToVec3(World.ChunkToWorld(chunk.chunkPos)); for (int i = 0; i < decorationCount; ++i) { SpawnDecoration(chunk, wpos, decorations[i]); } } }
public World.Streaming.IMMappedChunkData MMapChunkData(World.Streaming.IChunk chunk) { return(null); }
protected override void OnChunkUnloaded(World.Streaming.IChunk chunk) { }
protected override void OnChunkLoaded(World.Streaming.IChunk chunk) { SpawnDecorations(chunk); }