예제 #1
0
        static int Main(string[] args)
        {
            var a = Args.Parse(args);

            if (!a.Valid)
            {
                return(1);
            }

            var data = Loader.Load(a);

            using (var writer = new GenWriter(null)
            {
                FileName = a.Output
            })
            {
                try
                {
                    data.GenProfileFragment.Generate(data.GenParameters, writer);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    return(1);
                }
            }

            return(0);
        }
예제 #2
0
        public void Generate()
        {
            if (Settings.FileGroup.Profile == "")
            {
                return;
            }

            GenParameters d;
            var           data = BuildFilePath(Settings.FileGroup.FilePath, Settings.FileGroup.FileName);

            using (var dataStream = new FileStream(data, FileMode.Open))
                d = new GenParameters(GenDataDef, dataStream)
                {
                    DataName = Path.GetFileNameWithoutExtension(data)
                };
            var baseFile        = Settings.GetBaseFiles().Find(Settings.FileGroup.BaseFileName);
            var profile         = baseFile.ProfileList.Find(Settings.FileGroup.Profile);
            var profileFileName = BuildFilePath(profile.FilePath, profile.FileName);

            var p = new GenCompactProfileParser(GenDataDef, profileFileName, "")
            {
                GenObject = d.Root
            };

            using (var writer = new GenWriter(null)
            {
                FileName = Settings.GeneratedFile.Replace('/', '\\')
            })
                p.Generate(d, writer);
        }
예제 #3
0
        public void Serialize(GenWriter writer)
        {
            writer.Write((int)0);               // version

            writer.Write(m_Character);
            writer.Write(Time);
            writer.Write(Date);
        }
예제 #4
0
        public void Serialize(GenWriter writer)
        {
            writer.Write((int)0);               // version

            writer.Write(JailInfo.Count);
            foreach (JailInfo info in JailInfo)
            {
                info.Serialize(writer);
            }
        }
예제 #5
0
 protected static string GenerateFragment(GenDataBase genData, GenFragment fragment)
 {
     using (var s = new MemoryStream(100000))
     {
         var w = new GenWriter(s);
         GenFragmentGenerator.Generate(genData.GenDataDef, w, fragment.GenObject ?? genData.Root, fragment.Fragment);
         w.Flush();
         s.Seek(0, SeekOrigin.Begin);
         var r = new StreamReader(s);
         return(r.ReadToEnd());
     }
 }
예제 #6
0
        /// <summary>
        ///     Save the generator data to the specified file name.
        /// </summary>
        /// <param name="genDataBase">The generator data to be saved.</param>
        /// <param name="fileName">The file path to which the data is to be saved.</param>
        public static void SaveToFile(GenDataBase genDataBase, string fileName)
        {
            var profile = CreateProfile(genDataBase.GenDataDef);

            using (var writer = new GenWriter(null)
            {
                FileName = fileName
            })
            {
                profile.Generate(genDataBase, writer);
            }
        }