public void Initialise(VoxelTypeManager voxelTypeManager, IChunkManager chunkManager, FrameworkEventManager eventManager) { throw new NotImplementedException(); }
public override void Initialise(VoxelTypeManager voxelTypeManager, IChunkManager chunkManager, FrameworkEventManager eventManager) { base.Initialise(voxelTypeManager, chunkManager, eventManager); dirtID = voxelTypeManager.GetId(dirtType); grassID = voxelTypeManager.GetId(grassType); }
public override void Initialise(VoxelTypeManager voxelTypeManager, IChunkManager chunkManager, FrameworkEventManager eventManager) { base.Initialise(voxelTypeManager, chunkManager, eventManager); Assert.IsNotNull(bedrockType, $"{typeof(NoisyProvider)} must have a valid reference to a bedrock block type"); Assert.IsNotNull(waterType, $"{typeof(NoisyProvider)} must have a valid reference to a water block type"); Assert.IsNotNull(biomeDatabaseComponent, $"{typeof(NoisyProvider)} must have a valid reference to a biome database component"); if (SceneMessagePasser.TryConsumeMessage <SeedMessage>(out var message)) { worldSettings.seed = GetSeedAsFloat(message.seed); Debug.Log($"Int seed: {message.seed}, derived seed: {worldSettings.seed}"); } InitialiseSeeds(); bedrockID = voxelTypeManager.GetId(bedrockType); waterID = voxelTypeManager.GetId(waterType); chunkDimensions = chunkManager.ChunkDimensions.ToNative(); if (chunkManager.WorldLimits.IsWorldHeightLimited) { minY = chunkManager.WorldLimits.MinChunkY * chunkManager.ChunkDimensions.y; } worldSettings.Initialise(minY, chunkManager.ChunkDimensions.ToNative()); treeSettings.Initialise(); biomeDatabaseComponent.Initialise(); //Setup ocean config try { var oceanZone = biomeDatabaseComponent.config.elevationLowToHigh.Find((zone) => zone.Name.Equals("Ocean")); var oceanBiomes = oceanZone.moistureLevelsLowToHigh.Select((def) => def.biomeDefinition).ToArray(); oceanGenConfig.oceanIDs = new NativeArray <int>(oceanBiomes.Length, Allocator.Persistent); for (int i = 0; i < oceanBiomes.Length; i++) { oceanGenConfig.oceanIDs[i] = biomeDatabaseComponent.GetBiomeID(oceanBiomes[i]); } oceanGenConfig.sealevel = math.floor(math.lerp(worldSettings.minPossibleHmValue, worldSettings.maxPossibleHmValue, biomeDatabaseComponent.GetMaxElevationFraction(oceanBiomes[0]))); oceanGenConfig.waterID = waterID; } catch (Exception e) { throw new Exception($"Failed to find any ocean biomes for biome config {biomeDatabaseComponent.config.name}. Cause {e.Message}"); } noiseMaps = new Dictionary <Vector2Int, ChunkColumnNoiseMaps>(); numActiveChunksInColumn = new Dictionary <Vector2Int, int>(); noiseGenReferenceCounter = new JobReferenceCounter <Vector2Int, NativeChunkColumnNoiseMaps>(MakeNoiseJob); structureGenerator = new StructureGenerator(); structureGenerator.Initalise(voxelTypeManager, biomeDatabaseComponent, treeSettings.TreeThreshold, (int)treemapNoise.Seed); oreSettings.Initialise(voxelTypeManager); eventManager.OnChunkActivated += OnChunkActivated; eventManager.OnChunkDeactivated += OnChunkDeactivated; }
public override void Initialise(VoxelTypeManager voxelTypeManager, IChunkManager chunkManager, FrameworkEventManager eventManager) { base.Initialise(voxelTypeManager, chunkManager, eventManager); CullFaces = true; }