Ejemplo n.º 1
0
        protected override Boolean LoadExternal()
        {
            try
            {
                if (!_initialized)
                {
                    return(false);
                }

                Int32 fieldZoneId = FF9TextToolAccessor.GetFieldZoneId();

                String[] result;
                if (!_cache.TryGetValue(fieldZoneId, out result))
                {
                    Log.Warning($"[{TypeName}] Failed to find zone by ID: {fieldZoneId}].");
                    return(true);
                }

                if (result != null)
                {
                    FF9TextToolAccessor.SetFieldText(result);
                    FF9TextToolAccessor.SetTableText(FF9TextToolInterceptor.ExtractTableText(result));
                }

                return(true);
            }
            catch (Exception ex)
            {
                _initialized = true;
                Log.Error(ex, $"[{TypeName}] Failed to import resource.");
                return(false);
            }
        }
Ejemplo n.º 2
0
        protected override Boolean LoadInternal()
        {
            Int32 fieldZoneId = FF9TextToolAccessor.GetFieldZoneId();

            String[] text;
            if (ReadEmbadedText(fieldZoneId, out text))
            {
                FF9TextToolAccessor.SetFieldText(text);
                FF9TextToolAccessor.SetTableText(FF9TextToolInterceptor.ExtractTableText(text));
            }

            return(true);
        }
Ejemplo n.º 3
0
        private static Boolean ReadEmbadedText(Int32 fieldZoneId, out String[] text)
        {
            String path = EmbadedTextResources.GetCurrentPath("/Field/" + FF9TextToolInterceptor.GetFieldTextFileName(fieldZoneId) + ".mes");
            String raw  = EmbadedSentenseLoader.LoadText(path);

            if (raw != null)
            {
                raw  = TextOpCodeModifier.Modify(raw);
                text = FF9TextToolInterceptor.ExtractSentense(raw);
                return(true);
            }

            text = null;
            return(false);
        }
Ejemplo n.º 4
0
        public void Export()
        {
            try
            {
                String directory = ModTextResources.Export.FieldsDirectory;
                if (Directory.Exists(directory))
                {
                    Log.Warning($"[{nameof(FieldExporter)}] Some fields refer to each other. They should be exported together.");
                    Log.Warning($"[{nameof(FieldExporter)}] Export was skipped bacause the directory already exists: [{directory}].");
                    return;
                }

                Log.Message($"[{nameof(FieldExporter)}] Exporting...");
                FieldFormatter formatter = new FieldFormatter();

                foreach (KeyValuePair <Int32, String> pair in FF9DBAll.EventDB)
                {
                    Int32 fieldZoneId = pair.Key;

                    String path = EmbadedTextResources.GetCurrentPath("/Field/" + GetFieldTextFileName(fieldZoneId) + ".mes");
                    String text = EmbadedSentenseLoader.LoadText(path);
                    if (text == null)
                    {
                        continue;
                    }

                    String name = fieldZoneId.ToString("D4", CultureInfo.InvariantCulture) + '_' + pair.Value;
                    text = TextOpCodeModifier.Modify(text);
                    String[] lines = FF9TextToolInterceptor.ExtractSentense(text);

                    TxtEntry[] commands = formatter.Build(name, lines);

                    Directory.CreateDirectory(directory);
                    String outputPath = Path.Combine(directory, name + ".strings");
                    TxtWriter.WriteStrings(outputPath, commands);
                }

                ExportTags(directory, formatter);

                Log.Message($"[{nameof(FieldExporter)}] Exporting completed successfully.");
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"[{nameof(FieldExporter)}] Failed to export resource.");
            }
        }
Ejemplo n.º 5
0
        public static String[] LoadSentense(String path)
        {
            String text = AssetManager.Load <TextAsset>(path)?.text;

            return(text == null ? null : FF9TextToolInterceptor.ExtractSentenseEnd(text));
        }