Пример #1
0
        /// <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();
                }
            }
        }
Пример #2
0
    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;
    }
Пример #3
0
 /// <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("桥跨序列");
         }
     }
 }