Example #1
0
        private static int RunComposite(CompositeOptions options)
        {
            Directory.CreateDirectory(options.TargetDir);
            ContentDefinition cd;

            using (var ifs = new FileStream(options.ContentDefinition, FileMode.Open, FileAccess.Read)) {
                cd = AuthoringUtil.JsonDeserialize <ContentDefinition>(ifs);
            }

            var rm = new DataManager();

            rm.RegisterDataProvider(
                new FileDataProvider(options.ContentDir ?? Path.GetDirectoryName(options.ContentDefinition)));
            var opts = new LiveLoadOptions(loadTextures: true);
            var lc   = ContentUtil.LoadLiveContent(cd, rm, opts);

            foreach (var(name, image) in lc.RenderedCoTextures)
            {
                using (var ofs = new FileStream(Path.Combine(options.TargetDir, name + ".png"), FileMode.Create,
                                                FileAccess.Write))
                    image.SaveAsPng(ofs);
            }

            return(0);
        }
Example #2
0
        private static int RunMakeMesh(MakeMeshOptions options)
        {
            LiveMesh mesh;

            using (var ifs = new FileStream(options.SourceFile, FileMode.Open, FileAccess.Read)) {
                Dictionary <string, BoneType>        boneRegexs        = null;
                Dictionary <string, AttachPointType> attachPointRegexs = null;
                if (options.MatchFile != null)
                {
                    MatchRules mf;
                    using (var mfFs = new FileStream(options.MatchFile, FileMode.Open, FileAccess.Read))
                        mf = AuthoringUtil.JsonDeserialize <MatchRules>(mfFs);
                    boneRegexs        = mf.Bones;
                    attachPointRegexs = mf.AttachPoints;
                }

                Console.WriteLine("Parsing...");
                mesh = options.DebugLog
                    ? AuthoringUtil.GenerateLiveMesh(ifs, boneRegexs, attachPointRegexs, Console.WriteLine)
                    : AuthoringUtil.GenerateLiveMesh(ifs, boneRegexs, attachPointRegexs);
            }

            mesh.UniqueName      = options.UniqueName;
            mesh.VariantTypeName = options.VariantTypeName;
            mesh.FitUniqueName   = options.FitUniqueName;

            Stream ofs = new FileStream(options.TargetFile, FileMode.Create, FileAccess.Write);

            try {
                if (options.Compress)
                {
                    ofs = new DeflateStream(ofs, CompressionLevel.Optimal, false);
                }
                Console.WriteLine("Serializing...");
                Serializer.Serialize(ofs, mesh);
            }
            finally {
                ofs.Dispose();
            }

            return(0);
        }
Example #3
0
        private static int RunMakeTl(MakeTlOptions options)
        {
            Dictionary <string, string> dict;

            using (var ifs = new FileStream(options.SourceFile, FileMode.Open, FileAccess.Read))
                dict = AuthoringUtil.JsonDeserialize <Dictionary <string, string> >(ifs);
            Stream ofs = new FileStream(options.TargetFile, FileMode.Create, FileAccess.Write);

            try {
                if (options.Compress)
                {
                    ofs = new DeflateStream(ofs, CompressionLevel.Optimal, false);
                }
                Console.WriteLine("Serializing...");
                Serializer.Serialize(ofs, dict);
            }
            finally {
                ofs.Dispose();
            }

            return(0);
        }
Example #4
0
        private static int RunPack(PackOptions options)
        {
            ContentDefinition def = null;

            if (options.ContentDefinition != null)
            {
                using (var defFs = new FileStream(options.ContentDefinition, FileMode.Open, FileAccess.Read))
                    def = AuthoringUtil.JsonDeserialize <ContentDefinition>(defFs);
            }

            var bList = new List <FileInfo>();

            if (options.Resources != null)
            {
                foreach (var res in options.Resources)
                {
                    bList.Add(new FileInfo(res));
                }
            }
            var metaList = new List <MutableKeyValuePair <string, int> >();

            foreach (var ent in bList)
            {
                metaList.Add(new MutableKeyValuePair <string, int>(ent.Name, (int)ent.Length));
            }
            using (var ofs = new FileStream(options.TargetFile, FileMode.Create, FileAccess.Write)) {
                CzBox.WriteHead(ofs, def, metaList);
                foreach (var ent in bList)
                {
                    using (var eStream = ent.OpenRead())
                        eStream.CopyTo(ofs);
                }
            }

            return(0);
        }