internal virtual void OnGameWorldLoaded() { LoadGlobalConfig(api); worldheight = api.WorldManager.MapSizeY; chunkRand = new FastPositionalRandom(api.WorldManager.Seed); }
internal override void OnGameWorldLoaded() { base.OnGameWorldLoaded(); regionSize = api.WorldManager.RegionSize; regionChunkSize = api.WorldManager.RegionSize / chunksize; noiseSizeClimate = regionSize / TerraGenConfig.climateMapScale; noiseSizeOre = regionSize / TerraGenConfig.oreMapScale; int seed = api.WorldManager.Seed; for (int i = 0; i < deposits.variants.Length; i++) { DepositVariant variant = deposits.variants[i]; variant.Init(api); if (variant.WithOreMap) { NoiseOre noiseOre = new NoiseOre(seed++); variant.OreMap = GenMaps.GetOreMap(seed++, noiseOre); } if (variant.ChildDeposits != null) { for (int k = 0; k < variant.ChildDeposits.Length; k++) { DepositVariant childVariant = variant.ChildDeposits[k]; if (childVariant.WithOreMap) { NoiseOre noiseOre = new NoiseOre(seed++); childVariant.OreMap = GenMaps.GetOreMap(seed++, noiseOre); } } } } depositRand = new FastPositionalRandom(api.WorldManager.Seed + 34613); blockTypes = api.World.Blocks; }
private void CmdCaveGenTest(IServerPlayer player, int groupId, CmdArgs args) { chunkRand = new FastPositionalRandom(api.WorldManager.Seed); airBlockId = api.World.GetBlock(new AssetLocation("rock-granite")).BlockId; int baseChunkX = api.World.BlockAccessor.MapSizeX / 2 / chunksize; int baseChunkZ = api.World.BlockAccessor.MapSizeZ / 2 / chunksize; for (int dx = -5; dx <= 5; dx++) { for (int dz = -5; dz <= 5; dz++) { int chunkX = baseChunkX + dx; int chunkZ = baseChunkZ + dz; IServerChunk[] chunks = GetChunkColumn(chunkX, chunkZ); ClearChunkColumn(chunks); for (int gdx = -chunkRange; gdx <= chunkRange; gdx++) { for (int gdz = -chunkRange; gdz <= chunkRange; gdz++) { chunkRand.InitPositionSeed(chunkX + gdx, chunkZ + gdz); GeneratePartial(chunks, chunkX, chunkZ, gdx, gdz); } } MarkDirty(chunkX, chunkZ, chunks); } } airBlockId = 0; player.SendMessage(groupId, "Generated and chunks force resend flags set", EnumChatType.Notification); }
public CloudRenderer(ICoreClientAPI capi, WeatherSimulation weatherSim) { this.capi = capi; capi.Event.RegisterRenderer(this, EnumRenderStage.OIT); capi.Event.RegisterGameTickListener(OnGameTick, 20); this.weatherSim = weatherSim; capi.Event.ReloadShader += LoadShader; LoadShader(); rand = new Random(capi.World.Seed); brightnessRand = new FastPositionalRandom(rand.Next()); double time = capi.World.Calendar.TotalHours * 60; windOffsetX += 2f * time; windOffsetZ += 0.1f * time; tileOffsetX += (int)(windOffsetX / CloudTileSize); windOffsetX %= CloudTileSize; tileOffsetZ += (int)(windOffsetZ / CloudTileSize); windOffsetZ %= CloudTileSize; InitCloudTiles((9 * capi.World.Player.WorldData.DesiredViewDistance)); LoadCloudModel(); capi.Settings.AddWatcher <int>("viewDistance", OnViewDistanceChanged); capi.Settings.AddWatcher <bool>("renderClouds", (val) => renderClouds = val); renderClouds = capi.Settings.Bool["renderClouds"]; InitCustomDataBuffers(updateMesh); }
internal override void OnGameWorldLoaded() { base.OnGameWorldLoaded(); caveRand = new FastPositionalRandom(api.WorldManager.Seed + 123128); }