Exemplo n.º 1
0
        public void Unpack()
        {
            if (Directory.Exists(_scriptDirectory))
            {
                Directory.Delete(_scriptDirectory, true);
            }
            Directory.CreateDirectory(_scriptDirectory);

            IEnumerable <string> sceneFiles = Directory.GetFiles(_sceneDirectory, "*.scn");

            foreach (string sceneFile in sceneFiles)
            {
                string fileTemplate = Path.Combine(_scriptDirectory, Path.GetFileName(sceneFile) + ".txt");

                int lineCounter = 0;

                StringExtractor stringExtractor = new StringExtractor();
                byte[]          data            = File.ReadAllBytes(sceneFile);
                stringExtractor.Import(data);

                List <string> templateLines = new List <string>();
                foreach (string line in stringExtractor.Strings)
                {
                    templateLines.Add($"<{(lineCounter++):0000}> {line}");
                }
                File.AppendAllLines(fileTemplate, templateLines);
            }
        }
Exemplo n.º 2
0
        public void Pack()
        {
            foreach (string templateFile in Directory.GetFiles(_scriptDirectory, "*.txt"))
            {
                string sceneFile = Path.Combine(_sceneDirectory, Path.GetFileNameWithoutExtension(templateFile));

                StringExtractor stringExtractor = new StringExtractor();
                stringExtractor.Import(sceneFile);

                string[] templateLines = File.ReadAllLines(templateFile);
                foreach (string line in templateLines.Select(x => x.Trim()).Where(x => !x.StartsWith("//")))
                {
                    Match m = REGEX_SCRIPT_LINES.Match(line);
                    if (m.Success)
                    {
                        stringExtractor.Strings[int.Parse(m.Groups["number"].Value)] = m.Groups["text"].Value;
                    }
                }

                stringExtractor.Export(Path.Combine(_scriptDirectory, Path.GetFileName(sceneFile)));
            }
        }