public void Generate(string seed = null) { if (string.IsNullOrEmpty(seed)) { seed = RandomUtilities.GenerateSeed(); } Seed = seed; seed = seed.ToLower(); Random.InitState(seed.GetHashCode()); CreateChunks(); foreach (ITerrainProcessor process in terrainProcesses) { process.Generate(WorldData); } //terrainProcessor.Execute(WorldData); //Table generatedData = Lua.GetVariable("worldData").Table; //for (int x = 0; x < WorldData.Width; ++x) //{ // for (int y = 0; y < WorldData.Height; ++y) // { // int key = x * WorldData.Height + y; // DynValue value = generatedData.Parse(key); // if (value.IsNotNil()) // { // WorldData.SetTileTypeAt(x, y, TileType.Grass/*(TileType)generatedData[key]*/); // } // } //} //Lua.RunSourceCode("worldData = nil; collectgarbage()"); Save("moo.data"); }