From 8d263b6f84a23034b72fc778dc5f15c326a4b5a4 Mon Sep 17 00:00:00 2001 From: GMatrixGames Date: Wed, 7 Jul 2021 19:50:46 -0400 Subject: [PATCH] AshtonBoardwalk MI fix --- CUE4Parse | 2 +- FModel/Creator/Bases/FN/BaseMaterialInstance.cs | 5 +++++ FModel/ViewModels/CUE4ParseViewModel.cs | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CUE4Parse b/CUE4Parse index 98a4232f..32c5a34d 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 98a4232fbff2528a85e2e0d836948ebbe86699ea +Subproject commit 32c5a34d1ce89f657508e53eb3535bfd9a37396d diff --git a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs index 1578d40b..50b332a8 100644 --- a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs +++ b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs @@ -19,6 +19,8 @@ namespace FModel.Creator.Bases.FN { if (Object is not UMaterialInstanceConstant material) return; + // MY ONLY GOTO + texture_finding: foreach (var textureParameter in material.TextureParameterValues) // get texture from base material { if (textureParameter.ParameterValue is not UTexture2D texture || Preview != null) continue; @@ -45,6 +47,9 @@ namespace FModel.Creator.Bases.FN if (material == null) return; } + if (Preview == null) + goto texture_finding; + foreach (var vectorParameter in material.VectorParameterValues) { if (vectorParameter.ParameterValue == null) continue; diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs index 73de3ee2..7db6b30b 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -24,6 +24,7 @@ using CUE4Parse.UE4.Assets.Exports.Wwise; using CUE4Parse.UE4.Localization; using CUE4Parse.UE4.Objects.UObject; using CUE4Parse.UE4.Oodle.Objects; +using CUE4Parse.UE4.Shaders; using CUE4Parse.UE4.Wwise; using CUE4Parse_Conversion; using CUE4Parse_Conversion.Materials; @@ -87,7 +88,7 @@ namespace FModel.ViewModels } default: { - Game = gameDirectory.SubstringBeforeLast("\\Content\\").SubstringAfterLast("\\").ToEnum(FGame.Unknown); + Game = gameDirectory.SubstringBeforeLast("\\Content").SubstringAfterLast("\\").ToEnum(FGame.Unknown); if (Game == FGame.StateOfDecay2) Provider = new DefaultFileProvider(new DirectoryInfo(gameDirectory), new List @@ -482,7 +483,7 @@ namespace FModel.ViewModels TabControl.SelectedTab.Image = null; if (Provider.TryCreateReader(fullPath, out var archive)) { - var header = new FDictionaryHeader(archive); + var header = new FOodleDictionaryArchive(archive).Header; TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(header, Formatting.Indented), bulkSave); } @@ -506,8 +507,17 @@ namespace FModel.ViewModels break; case "ushaderbytecode": case "ushadercode": + { TabControl.SelectedTab.Image = null; + + if (Provider.TryCreateReader(fullPath, out var archive)) + { + var ar = new FShaderCodeArchive(archive); + TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(ar, Formatting.Indented), bulkSave); + } + break; + } default: { var exports = Provider.LoadObjectExports(fullPath);