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); }
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); }
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); }
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); }