public static void Main(string[] args) { var inFile = Path.GetFullPath(args[0]); var outFile = Path.GetFullPath(args[1]); var parsedFile = new ScriptFile(File.ReadAllText(inFile)); var luaFile = LuaGenerator.Generate(parsedFile); File.WriteAllText(outFile, luaFile); }
public string GenerateLuaChangeScript(int indentLevel = 0) { var script = new StringBuilder(); script.AppendLine(@"local starters = Rom:GetStarters()"); script.AppendLine(); for (int i = 0; i < Starters.Length; i++) { var starter = Starters[i]; var oldPokemon = OriginalStarters[i]; if (starter.PokemonId != oldPokemon.PokemonId) { var variableName = $"starter{oldPokemon.PokemonId:d}"; script.AppendLine($"{LuaGenerator.GenerateIndentation(indentLevel)}local {variableName} = starters:GetStarterById({luaGenerator.GenerateExpression(oldPokemon.PokemonId)})"); script.AppendLine($"{LuaGenerator.GenerateIndentation(indentLevel)}if {variableName} ~= nil then"); script.Append(luaGenerator.GenerateSimpleObjectDiff(oldPokemon, starter, variableName, indentLevel + 1)); script.AppendLine($"{LuaGenerator.GenerateIndentation(indentLevel)}else"); script.AppendLine($"{LuaGenerator.GenerateIndentation(indentLevel + 1)}error(\"Could not find starter '{oldPokemon.PokemonName}' with ID {oldPokemon.PokemonId:d}. This ROM may have already been modified.\")"); script.AppendLine($"{LuaGenerator.GenerateIndentation(indentLevel)}end"); script.AppendLine(); } } return(script.ToString()); }
public static void Dispose() { mGenerator = null; mInterpreter = null; mVariableNames = null; }