Imports Substrate Imports Substrate.Core ' This example will reset and rebuild the lighting (heightmap, block light, ' skylight) for all chunks in a map. ' Note: If it looks silly to reset the lighting, loading and saving ' all the chunks, just to load and save them again later: it's not. ' If the world lighting is not correct, it must be completely reset ' before rebuilding the light in any chunks. That's just how the ' algorithms work, in order to limit the number of chunks that must ' be loaded at any given time. Module Module1 Sub Main(args As String()) If args.Length < 1 Then Console.WriteLine("You must specify a target directory") Return End If Dim dest As String = args(0) ' Opening an NbtWorld will try to autodetect if a world is Alpha-style or Beta-style Dim world As NbtWorld = NbtWorld.Open(dest) ' Grab a generic chunk manager reference Dim cm As IChunkManager = world.GetChunkManager() ' First blank out all of the lighting in all of the chunks For Each chunk As ChunkRef In cm chunk.Blocks.RebuildHeightMap() chunk.Blocks.ResetBlockLight() chunk.Blocks.ResetSkyLight() cm.Save() Console.WriteLine("Reset Chunk {0},{1}", chunk.X, chunk.Z) Next ' In a separate pass, reconstruct the light For Each chunk As ChunkRef In cm chunk.Blocks.RebuildBlockLight() chunk.Blocks.RebuildSkyLight() ' Save the chunk to disk so it doesn't hang around in RAM cm.Save() Console.WriteLine("Lit Chunk {0},{1}", chunk.X, chunk.Z) Next End Sub End Module