From 7b56359ba2f8b58420bc011a58f56dfc9de5523b Mon Sep 17 00:00:00 2001 From: Valentin Date: Sun, 21 Nov 2021 18:08:42 +0100 Subject: [PATCH 1/2] 6 --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6e9a4217..6c02694b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,10 +21,10 @@ jobs: - name: Fetch Submodules Recursively run: git submodule update --init --recursive - - name: .NET 5 Setup + - name: .NET 6 Setup uses: actions/setup-dotnet@v1 with: - dotnet-version: 5.0.x + dotnet-version: 6.0.x - name: .NET Restore run: dotnet restore FModel From 20602edee530c946da9af738c5a6b39514fe3c31 Mon Sep 17 00:00:00 2001 From: shade Date: Sat, 8 Jan 2022 23:15:22 -0500 Subject: [PATCH 2/2] display all offerimages in a dav2 --- .../Creator/Bases/FN/BaseMaterialInstance.cs | 4 +- .../Creator/Bases/FN/BaseOfferDisplayData.cs | 73 +++++++++++++++++++ FModel/Creator/CreatorPackage.cs | 3 + 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 FModel/Creator/Bases/FN/BaseOfferDisplayData.cs diff --git a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs index 37cfd489..8de7f501 100644 --- a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs +++ b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using CUE4Parse.UE4.Assets.Exports; using CUE4Parse.UE4.Assets.Exports.Material; using CUE4Parse.UE4.Assets.Exports.Texture; @@ -84,4 +84,4 @@ namespace FModel.Creator.Bases.FN return SKImage.FromBitmap(ret); } } -} \ No newline at end of file +} diff --git a/FModel/Creator/Bases/FN/BaseOfferDisplayData.cs b/FModel/Creator/Bases/FN/BaseOfferDisplayData.cs new file mode 100644 index 00000000..d750ba67 --- /dev/null +++ b/FModel/Creator/Bases/FN/BaseOfferDisplayData.cs @@ -0,0 +1,73 @@ +using System.Collections.Generic; +using CUE4Parse.UE4.Assets.Exports; +using CUE4Parse.UE4.Assets.Exports.Material; +using SkiaSharp; + +namespace FModel.Creator.Bases.FN +{ + public class BaseOfferDisplayData : UCreator + { + private List _offerImages; + + public BaseOfferDisplayData(UObject uObject, EIconStyle style) : base(uObject, style) + { + } + + public override void ParseForInfo() + { + if (Object.ExportType != "AthenaItemShopOfferDisplayData") + return; + + if (!Object.TryGetValue(out UMaterialInterface[] presentations, "Presentations")) + return; + + _offerImages = new List(); + foreach (var p in presentations) + { + var offerImage = new BaseMaterialInstance(p, Style); + offerImage.ParseForInfo(); + _offerImages.Add(offerImage.Draw()); + } + } + + public override SKImage Draw() + { + int imageOrder; + + if (_offerImages.Count < 4) + imageOrder = _offerImages.Count; + else if (_offerImages.Count == 4) + imageOrder = 2; + else if (_offerImages.Count <= 9) + imageOrder = 3; + else imageOrder = 5; + + Width = 512 * imageOrder; + Height = _offerImages.Count / imageOrder; + + if (_offerImages.Count % imageOrder != 0) + Height++; + + Height *= 512; + + using var bitmap = new SKBitmap(Width, Height); + using var canvas = new SKCanvas(bitmap); + var point = new SKPoint(0, 0); + + for (int i = 0, placement = 0; i < _offerImages.Count; i++) + { + if (placement >= imageOrder) + { + placement = 0; + point.Y += 512; + } + point.X = 512 * placement; + + canvas.DrawImage(_offerImages[i], point); + placement++; + } + + return SKImage.FromBitmap(bitmap); + } + } +} diff --git a/FModel/Creator/CreatorPackage.cs b/FModel/Creator/CreatorPackage.cs index 1490362f..cebd1a81 100644 --- a/FModel/Creator/CreatorPackage.cs +++ b/FModel/Creator/CreatorPackage.cs @@ -131,6 +131,9 @@ namespace FModel.Creator _object.Owner.Name.EndsWith($"/MI_BPTile/{_object.Name}", StringComparison.OrdinalIgnoreCase)): creator = new BaseMaterialInstance(_object, _style); return true; + case "AthenaItemShopOfferDisplayData": + creator = new BaseOfferDisplayData(_object, _style); + return true; case "FortMtxOfferData": creator = new BaseMtxOffer(_object, _style); return true;