/// <summary> /// 保存输出CBH文件 /// </summary> /// <param name="filename"></param> public void SaveAs(string filename) { //string cwd = Environment.CurrentDirectory; if (!filename.EndsWith(".cbh")) { filename += ".cbh"; } using (FileStream fs = new FileStream(Path.Combine(filename), FileMode.Create)) { using (StreamWriter sw = new StreamWriter(fs)) { sw.BaseStream.Seek(0, SeekOrigin.End); sw.WriteLine("#Layout"); sw.WriteLine(string.Join("+", SpanList.Select(t => t / 1000.0))); sw.WriteLine(Width / 1000.0); sw.WriteLine(MBeamDist / 1000.0); sw.WriteLine(HBeamDist / 1000.0); sw.WriteLine(MBeamSRank); sw.WriteLine(HBeamSRank); sw.WriteLine(CRank); sw.WriteLine("#CrossSection"); if (SectList.Count != 0) { foreach (IBSection s in SectList) { sw.WriteLine(s.GetString()); } } sw.WriteLine("#Splitlist"); if (SectSplitList.Count != 0) { foreach (SplitTuple st in SectSplitList) { sw.WriteLine(string.Concat(st.SectID, ",", st.Length)); } } sw.WriteLine("#Thickness"); sw.WriteLine(PlateThick); sw.WriteLine(AsphaltThick); sw.WriteLine("#Loads"); sw.WriteLine(MainBeamFactor); sw.WriteLine(LiveLoadFactor); sw.WriteLine(PlateUnitWeight); sw.WriteLine(CurbLengthWeight); sw.WriteLine(string.Concat(HeighTemp, ",", LowTemp)); sw.WriteLine(string.Concat(DeltHeighTemp, ",", DeltLowTemp)); sw.WriteLine(WindPressure); sw.WriteLine("#Construction"); sw.WriteLine("#MidasOutput"); sw.WriteLine("#AnsysOutput"); sw.Flush(); } } }
private static void GameBananaAddImages(GameBananaMod file, WebDownloadablePackage package) { if (file.PreviewMedia?.Images == null) { return; } var gbImages = file.PreviewMedia.Images; if (gbImages.Length <= 0) { return; } var images = new DownloadableImage[gbImages.Length]; var imagesSpan = new SpanList <DownloadableImage>(images); var thumbsSpan = new DownloadableImageThumbnail[GameBananaPreviewImage.MaxThumbnailCount]; foreach (var gbImage in gbImages) { var baseUri = new Uri($"{gbImage.BaseUrl}/", UriKind.Absolute); var image = new DownloadableImage() { Uri = new Uri(baseUri, gbImage.File), Caption = gbImage.Caption }; var thumbs = new SpanList <DownloadableImageThumbnail>(thumbsSpan); if (!string.IsNullOrEmpty(gbImage.FileWidth100)) { thumbs.Add(new DownloadableImageThumbnail(new Uri(baseUri, gbImage.FileWidth100), 100)); } if (!string.IsNullOrEmpty(gbImage.FileWidth220)) { thumbs.Add(new DownloadableImageThumbnail(new Uri(baseUri, gbImage.FileWidth220), 220)); } if (!string.IsNullOrEmpty(gbImage.FileWidth530)) { thumbs.Add(new DownloadableImageThumbnail(new Uri(baseUri, gbImage.FileWidth530), 530)); } if (thumbs.Length > 0) { image.Thumbnails = thumbs.AsSpan.ToArray(); } imagesSpan.Add(image); } package.Images = images; }
/// <summary> /// 解析桥跨序列 /// </summary> /// <param name="splist"></param> public void ReadSpanList(string splist) { if (splist.StartsWith("示例:")) { splist = string.Concat(splist.Skip(3)); } string[] slist = splist.Split('+'); foreach (string s in slist) { try { SpanList.Add(double.Parse(s) * 1000.0); } catch { SpanList.Clear(); throw new ArgumentException("桥跨序列"); } } }