public ScriptZoneGenerator GetZoneGenerator(string name) { ScriptZoneGenerator result = null; zoneGenerators.TryGetValue(name, out result); return(result); }
private void LoadZoneGenerationScripts() { DirectoryInfo dirInfo = new DirectoryInfo(ZoneGeneratorsPath); DirectoryInfo[] generatorDirectories = dirInfo.GetDirectories(); for (int i = 0; i < generatorDirectories.Length; i++) { FileInfo generatorFile = new FileInfo(Path.Combine(generatorDirectories[i].FullName, "generator.lua")); FileInfo settingsFile = new FileInfo(Path.Combine(generatorDirectories[i].FullName, "settings.json")); if (generatorFile.Exists && settingsFile.Exists) { try { string generatorName = generatorDirectories[i].Name; Script script = LoadScript(generatorFile.FullName); string settingsString = File.ReadAllText(settingsFile.FullName); ScriptZoneGenerator generator = new ScriptZoneGenerator(generatorName, script, settingsString); zoneGenerators.Add(generatorName, generator); if (debug) { server.AttachToScript(script, generatorName); } } catch (SyntaxErrorException e) { Debug.Log(e.DecoratedMessage); e.Rethrow(); } } } }