diff --git a/CUE4Parse b/CUE4Parse index 6409f38e..756358e4 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 6409f38e09e2a21aa839cd77b4515bca6c66f280 +Subproject commit 756358e40b47b65106a8c74893652c659eb56633 diff --git a/FModel/Enums.cs b/FModel/Enums.cs index 6d599d95..0f016230 100644 --- a/FModel/Enums.cs +++ b/FModel/Enums.cs @@ -169,6 +169,7 @@ public enum EAssetCategory : uint LegoBatman = GameSpecific + 5, ArcSys = GameSpecific + 6, GothamKnights = GameSpecific + 7, + Nascar = GameSpecific + 8, } public enum EAssetFamily diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs index d9374782..e7882e7b 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -30,6 +30,7 @@ using CUE4Parse.GameTypes.DFHO.Assets.Objects; using CUE4Parse.GameTypes.HonorOfKings.FileProvider; using CUE4Parse.GameTypes.KRD.Assets.Exports; using CUE4Parse.GameTypes.LegoBatman.Assets; +using CUE4Parse.GameTypes.Nascar.Assets.Exports; using CUE4Parse.GameTypes.LordOfMysteries.FileProvider; using CUE4Parse.GameTypes.Tencent.RocoKingdomWorld.Assets.Objects; using CUE4Parse.GameTypes.SMG.UE4.Assets.Exports.Wwise; @@ -1594,6 +1595,7 @@ public class CUE4ParseViewModel : ViewModel // }: case UPaperSprite when isNone && UserSettings.Default.PreviewMaterials: case UStaticMesh when isNone && UserSettings.Default.PreviewStaticMeshes: + case UIRMesh when isNone && UserSettings.Default.PreviewStaticMeshes: case UGeometryCollection when isNone && UserSettings.Default.PreviewStaticMeshes: case USkinnedAsset when isNone && UserSettings.Default.PreviewSkeletalMeshes: case USkeleton when isNone && UserSettings.Default.SaveSkeletonAsMesh: @@ -1621,6 +1623,7 @@ public class CUE4ParseViewModel : ViewModel return true; } case UStaticMesh when HasFlag(bulk, EBulkType.Meshes): + case UIRMesh when HasFlag(bulk, EBulkType.Meshes): case UGeometryCollection when HasFlag(bulk, EBulkType.Meshes): case USkinnedAsset when HasFlag(bulk, EBulkType.Meshes): case USkeleton when UserSettings.Default.SaveSkeletonAsMesh && HasFlag(bulk, EBulkType.Meshes): diff --git a/FModel/ViewModels/GameFileViewModel.cs b/FModel/ViewModels/GameFileViewModel.cs index dffb8191..7b9551ae 100644 --- a/FModel/ViewModels/GameFileViewModel.cs +++ b/FModel/ViewModels/GameFileViewModel.cs @@ -11,6 +11,7 @@ using CUE4Parse.GameTypes.Borderlands3.Assets.Exports; using CUE4Parse.GameTypes.Borderlands4.Assets.Exports; using CUE4Parse.GameTypes.FN.Assets.Exports.DataAssets; using CUE4Parse.GameTypes.LegoBatman.Assets; +using CUE4Parse.GameTypes.Nascar.Assets.Exports; using CUE4Parse.GameTypes.RED.Assets.Exports; using CUE4Parse.GameTypes.SMG.UE4.Assets.Exports.Wwise; using CUE4Parse.GameTypes.SMG.UE4.Assets.Objects; @@ -294,6 +295,7 @@ public class GameFileViewModel(GameFile asset) : ViewModel UWubAudioEvent or UWubDialogueEvent when GameVersion is EGame.GAME_LEGOBatmanLegacyoftheDarkKnight => (EAssetCategory.LegoBatman, EBulkType.Audio), // Lego Batman: Legacy of the Dark Knight; UREDBinaryObject => (EAssetCategory.ArcSys, EBulkType.None), // Arc System Works games; UOrpheusBank or UOrpheusEvent => (EAssetCategory.GothamKnights, EBulkType.Audio), // Gotham Knights; + UIRMesh => (EAssetCategory.Nascar, EBulkType.Meshes), // iRacing games; _ => (EAssetCategory.All, EBulkType.None), }; diff --git a/FModel/Views/Resources/Colors.xaml b/FModel/Views/Resources/Colors.xaml index 990915bb..b3f257e5 100644 --- a/FModel/Views/Resources/Colors.xaml +++ b/FModel/Views/Resources/Colors.xaml @@ -60,10 +60,11 @@ - - - - - - + + + + + + + diff --git a/FModel/Views/Resources/Converters/FileToGeometryConverter.cs b/FModel/Views/Resources/Converters/FileToGeometryConverter.cs index 790c3091..515650c1 100644 --- a/FModel/Views/Resources/Converters/FileToGeometryConverter.cs +++ b/FModel/Views/Resources/Converters/FileToGeometryConverter.cs @@ -102,6 +102,7 @@ public class FileToGeometryConverter : IMultiValueConverter EAssetCategory.DeltaForce => ("DeltaForceIcon", "DeltaForceBrush"), EAssetCategory.LegoBatman or EAssetCategory.GothamKnights => ("BatmanIcon", "BatmanBrush"), EAssetCategory.ArcSys => ("ArcSysIcon", "ArcSysBrush"), + EAssetCategory.Nascar => ("NascarIcon", "NascarBrush"), _ => ("AssetIcon", "NeutralBrush") }; diff --git a/FModel/Views/Resources/Icons.xaml b/FModel/Views/Resources/Icons.xaml index 42d63ec6..e3cc5cab 100644 --- a/FModel/Views/Resources/Icons.xaml +++ b/FModel/Views/Resources/Icons.xaml @@ -130,4 +130,5 @@ M87 394c0-104.133.024-207.766-.03-311.4-.006-13.608 6.762-23.51 16.837-31.523 7.754-6.167 16.77-8.237 26.768-8.193 54.98.243 109.963.145 164.946.055 3.949-.007 6.776 1.039 9.657 3.986 21.836 22.338 43.869 44.483 65.897 66.632 17.974 18.074 36.077 36.02 53.959 54.186 1.608 1.634 2.842 4.459 2.845 6.733.143 86.305.357 172.612-.118 258.915-.076 13.886-8.294 24.513-20.337 31.764-6.993 4.211-14.445 5.94-22.668 5.928-85.805-.135-171.61-.012-257.416-.15-15.197-.024-26.452-7.599-34.362-20.33-4.292-6.908-6.424-14.292-6.09-22.616.45-11.146.112-22.323.112-33.987m230.036-58.587c-9.35-15.192-18.706-30.381-28.048-45.578-11.872-19.312-23.87-38.549-35.49-58.01-2.627-4.397-4.007-2.94-5.855.058-9.028 14.64-18.017 29.304-27.02 43.96-11.697 19.041-23.413 38.07-35.08 57.13-4.59 7.5-9.068 15.067-13.964 23.214h23.358l-24.97 72.229 1.251 1.045 91.933-98.061h-31.955l-1.005-1.367 20.48-33.026L300.65 378c-16.866 0-32.688-.103-48.506.122-2.142.03-4.694 1.242-6.3 2.725-3.49 3.222-6.49 6.974-9.692 10.508-5.703 6.298-11.408 12.595-17.472 19.29h144.534c-15.406-25.159-30.557-49.9-46.177-75.232M323.5 121l-44.175-43.55v114.26h114.883z M209.195,326.458l-91.46-38.359c-2.957-1.241-6.329-0.987-9.067,0.68c-2.739,1.667-4.512,4.546-4.769,7.742 c-2.154,26.854,13.093,51.897,37.941,62.319c7.675,3.219,15.756,4.851,24.02,4.851c18.062,0,35.201-7.822,47.024-21.461 c2.1-2.423,2.911-5.706,2.181-8.827C214.334,330.281,212.151,327.698,209.195,326.458z M165.859,343.691 c-5.593,0-11.071-1.109-16.284-3.295c-12.136-5.09-20.896-15.321-24.306-27.45l60.906,25.544 C180.02,341.866,173.047,343.691,165.859,343.691z M394.87,0.131c-4.841-0.789-9.535,2.045-11.091,6.693l-55.704,166.286c-28.719-19.709-63.039-30.432-98.075-30.432 s-69.355,10.724-98.075,30.432L76.222,6.825c-1.557-4.648-6.251-7.482-11.091-6.693c-4.837,0.789-8.391,4.968-8.391,9.87v359.52 c0,3.808,2.163,7.286,5.579,8.969l163.26,80.48c1.394,0.687,2.908,1.031,4.421,1.031s3.028-0.344,4.421-1.031l163.26-80.48 c3.416-1.684,5.579-5.161,5.579-8.969V10.001C403.261,5.099,399.708,0.92,394.87,0.131z M383.261,363.301l-153.26,75.551 L76.74,363.301V71.335l40.616,121.247c1.043,3.114,3.549,5.518,6.704,6.43c3.155,0.913,6.558,0.217,9.102-1.86 c27.234-22.231,61.625-34.475,96.838-34.475s69.604,12.243,96.838,34.475c2.545,2.077,5.947,2.771,9.102,1.86 c3.155-0.912,5.661-3.316,6.704-6.43l40.616-121.247V363.301z M250.806,326.458c-2.957,1.24-5.14,3.823-5.87,6.945c-0.73,3.122,0.081,6.405,2.181,8.827 c11.823,13.639,28.962,21.461,47.024,21.461c8.263,0,16.344-1.632,24.02-4.851c24.848-10.421,40.095-35.465,37.941-62.319 c-0.257-3.196-2.03-6.075-4.769-7.742c-2.739-1.667-6.111-1.92-9.067-0.68L250.806,326.458z M310.426,340.396 c-5.213,2.186-10.691,3.295-16.284,3.295c-7.188,0-14.16-1.825-20.315-5.2l60.906-25.544 C331.322,325.075,322.562,335.306,310.426,340.396z z M260.83 96.87C259.13 95.64 257.42 94.4 255.71 93.17C253.64 92.07 251.57 90.98 249.5 89.89C248.25 88.98 247 88.07 245.76 87.17C245.1 86.83 244.45 86.5 243.79 86.17C243.03 85.78 242.26 85.39 241.5 85C240.83 84.69 240.17 84.37 239.5 84.06C237.5 83.33 235.5 82.6 233.5 81.87C233.17 81.55 232.83 81.24 232.5 80.92C231.83 80.92 231.17 80.92 230.5 80.92C230.17 80.59 229.83 80.26 229.5 79.93C228.83 79.93 228.17 79.93 227.5 79.93C227.17 79.6 226.83 79.27 226.5 78.94C225.83 78.94 225.17 78.94 224.5 78.94C224.17 78.63 223.83 78.32 223.5 78.01C222.17 77.67 220.83 77.32 219.5 76.98C217.5 76.61 215.5 76.25 213.5 75.89C211.83 75.55 210.17 75.21 208.5 74.87C206.21 73.8 204.03 73.92 201.5 73.87C198.81 72.36 195.24 72.92 192.17 72.88C190.11 72.86 188.47 72.1 186.5 72C184.29 71.89 182.55 72.68 180.47 72.84C176.59 73.15 171.98 72 168.5 73.87C166.01 73.92 163.68 73.67 161.5 74.93C160.5 74.93 159.5 74.93 158.5 74.93C158.17 75.26 157.83 75.59 157.5 75.92C156.5 75.92 155.5 75.92 154.5 75.92C153.17 76.27 151.83 76.63 150.5 76.98C149.17 77.62 147.83 78.27 146.5 78.92C145.83 78.92 145.17 78.92 144.5 78.92C144.17 79.25 143.83 79.59 143.5 79.92C142.83 79.92 142.17 79.92 141.5 79.92C141.17 80.26 140.83 80.59 140.5 80.93C139.83 80.93 139.17 80.93 138.5 80.93C137.5 81.58 136.5 82.24 135.5 82.89C134.83 83.21 134.17 83.54 133.5 83.86C132.17 84.25 130.83 84.64 129.5 85.03C128.75 85.41 128 85.79 127.24 86.17C125.33 87.41 123.41 88.65 121.5 89.9C120.41 90.32 119.33 90.74 118.24 91.17C114.23 93.83 110.23 96.5 106.22 99.17C103.76 102.38 100.3 104.54 97.33 107.16C94.08 110.02 91.62 113.71 88.62 116.79C86.87 118.6 82.39 123.22 81.89 125.5C80.56 127.5 79.23 129.5 77.9 131.5C76.89 133.17 75.89 134.83 74.89 136.5C72.75 138.67 70.27 143.5 69.85 146.5C68.88 148.17 67.91 149.83 66.94 151.5C66.94 152.17 66.94 152.83 66.94 153.5C65.94 155.5 64.95 157.5 63.95 159.5C63.95 160.17 63.95 160.83 63.95 161.5C63.59 162.83 63.22 164.17 62.86 165.5C62.57 165.83 62.28 166.17 62 166.5C61.66 167.83 61.32 169.17 60.98 170.5C60.6 173.17 60.23 175.83 59.86 178.5C59.58 178.83 59.31 179.17 59.03 179.5C58.92 181.56 59.35 183.91 57.86 185.5C57.86 193 57.86 200.49 57.86 207.99C43.96 207.99 30.06 207.99 16.17 207.99C14.39 205.52 15.13 193.25 15.54 189.79C15.92 186.5 15.67 183.13 16.12 179.85C17.74 168 20.89 156.79 24.79 145.61C36.35 112.48 62.96 83.82 94.3 68.16C106.51 62.06 120.22 58.02 133.59 55.15C153.36 50.9 175.04 53.16 194.35 57.82C213.62 62.47 231.46 71.58 247.05 83.78C250.09 86.16 260.28 93.47 260.83 96.87ZM270.65 116.5C269.32 117.12 268.53 116.34 267.74 115.17C266.66 114.46 265.58 113.75 264.5 113.05C262.83 112.05 261.17 111.05 259.5 110.05C258.83 109.71 258.17 109.38 257.5 109.05C256.83 108.71 256.17 108.38 255.5 108.05C254.83 107.71 254.17 107.38 253.5 107.05C251.17 106.05 248.83 105.05 246.5 104.04C245.83 104.04 245.17 104.04 244.5 104.04C244.17 103.71 243.83 103.38 243.5 103.04C242.83 103.04 242.17 103.04 241.5 103.04C241.17 102.71 240.83 102.38 240.5 102.05C239.35 101.72 238.2 101.39 237.05 101.07C236.2 101.07 235.35 101.07 234.5 101.07C234.17 100.73 233.83 100.39 233.5 100.04C232.5 100.04 231.5 100.04 230.5 100.04C230.17 99.71 229.83 99.37 229.5 99.04C227.39 99.04 225.28 99.04 223.17 99.04C222.72 98.71 222.28 98.38 221.83 98.05C214.06 98.05 206.28 98.05 198.5 98.05C196.18 99.58 193.57 98.84 190.88 99.17C190.42 99.46 189.96 99.75 189.5 100.05C188.5 100.05 187.5 100.05 186.5 100.05C186.17 100.38 185.83 100.71 185.5 101.04C184.5 101.04 183.5 101.04 182.5 101.04C181.35 101.41 180.2 101.79 179.05 102.17C177.87 102.46 176.68 102.75 175.5 103.05C175.17 103.38 174.83 103.71 174.5 104.05C173.83 104.05 173.17 104.05 172.5 104.05C171.83 104.38 171.17 104.71 170.5 105.05C170.17 105.38 169.83 105.71 169.5 106.04C168.83 106.34 168.17 106.65 167.5 106.96C164.5 108.32 161.5 109.68 158.5 111.05C157.83 111.38 157.17 111.71 156.5 112.05C155.44 112.75 154.38 113.46 153.32 114.17C152.32 114.83 151.32 115.5 150.32 116.17C149.38 116.79 148.44 117.42 147.5 118.05C145.86 119.74 143.89 120.79 142.18 122.34C137.68 126.41 133.94 131.58 129.17 135.32C128.17 136.66 127.17 137.99 126.17 139.32C124.83 141.32 123.5 143.32 122.17 145.32C121.46 146.38 120.75 147.44 120.05 148.5C119.32 150.17 118.6 151.83 117.88 153.5C117.56 154.17 117.24 154.83 116.93 155.5C116.61 156.17 116.29 156.83 115.97 157.5C115.33 158.5 114.69 159.5 114.05 160.5C113.71 161.83 113.38 163.17 113.04 164.5C112.7 164.83 112.36 165.17 112.02 165.5C112.02 166.17 112.02 166.83 112.02 167.5C111.69 167.83 111.36 168.17 111.02 168.5C111.02 169.17 111.02 169.83 111.02 170.5C110.69 170.83 110.36 171.17 110.03 171.5C110.03 172.28 110.03 173.06 110.03 173.83C109.71 174.28 109.39 174.72 109.06 175.17C109.06 175.94 109.06 176.72 109.06 177.5C108.72 177.83 108.38 178.17 108.05 178.5C108.05 179.83 108.05 181.17 108.05 182.5C107.75 182.96 107.46 183.43 107.17 183.89C106.9 186.03 107.27 187.67 106.04 189.5C106.04 195.69 106.04 201.87 106.04 208.06C94.62 208.06 83.2 208.06 71.78 208.06C69.79 203.28 71.31 194.33 71.73 189.17C73.32 169.77 79.51 151.92 89.75 135.59C113.98 96.94 161.95 75.37 207.15 83.76C212.51 84.76 218.19 85.37 223.35 87.17C234.32 90.98 245.99 96.11 255.34 103.16C259.12 106.02 263.12 109.01 266.61 112.24C268.07 113.59 269.06 115.23 270.65 116.5ZM278.19 132.5C277 132.68 274.66 131.29 273.78 130.17C271.35 129.07 268.93 127.97 266.5 126.87C265.83 126.54 265.17 126.2 264.5 125.87C263.5 125.23 262.5 124.58 261.5 123.94C260.83 123.94 260.17 123.94 259.5 123.94C259.17 123.6 258.83 123.25 258.5 122.91C257.83 122.91 257.17 122.91 256.5 122.91C256.17 122.59 255.83 122.27 255.5 121.95C254.28 121.61 253.06 121.27 251.83 120.93C250.72 120.93 249.61 120.93 248.5 120.93C248.17 120.59 247.83 120.25 247.5 119.92C245.83 119.92 244.17 119.92 242.5 119.92C240.89 118.52 238.89 118.98 236.83 118.95C232.81 118.9 222.52 117.78 219.5 119.91C217.83 119.91 216.17 119.91 214.5 119.91C214.17 120.25 213.83 120.58 213.5 120.92C212.5 120.92 211.5 120.92 210.5 120.92C210.17 121.25 209.83 121.58 209.5 121.91C208.83 121.91 208.17 121.91 207.5 121.91C207.11 122.22 206.72 122.53 206.33 122.83C204.72 123.21 203.11 123.58 201.5 123.95C200.5 124.31 199.5 124.66 198.5 125.01C197.5 125.63 196.5 126.25 195.5 126.87C194.83 127.2 194.17 127.53 193.5 127.86C192.83 128.2 192.17 128.53 191.5 128.87C190.42 129.3 189.34 129.73 188.27 130.17C185.27 132.17 182.28 134.17 179.29 136.17C176.57 139.32 172.95 141.22 170.16 144.33C167.45 147.35 165.36 151.78 162.17 154.2C161.5 155.22 160.83 156.24 160.17 157.27C159.17 158.93 158.17 160.59 157.17 162.25C156.83 162.92 156.5 163.58 156.17 164.25C155.83 164.91 155.5 165.58 155.17 166.24C154.75 167 154.34 167.75 153.93 168.5C153.93 169.17 153.93 169.83 153.93 170.5C153.28 171.5 152.62 172.5 151.97 173.5C151.97 174.17 151.97 174.83 151.97 175.5C151.62 175.83 151.27 176.17 150.91 176.5C150.91 177.28 150.91 178.06 150.91 178.83C150.56 180.06 150.22 181.28 149.87 182.5C148.71 183.95 148.88 185.49 148.83 187.33C148.52 187.72 148.21 188.11 147.9 188.5C147.9 190.11 147.9 191.72 147.9 193.33C147.59 193.72 147.27 194.11 146.96 194.5C146.96 199.01 146.96 203.52 146.96 208.03C137.98 208.03 129.01 208.03 120.03 208.03C118.36 205.93 119.31 197.65 119.61 194.83C120.93 182.23 123.58 171.1 128.82 159.67C147.41 119.03 195.48 97.71 238.44 109.78C249.79 112.96 259.93 117.72 269.44 124.72C272.06 126.65 277.24 129.25 278.19 132.5Z + M253.01.08h36.82c3.01 1.66 19.6 2.17 24.62 3.14 18.63 3.63 36.72 8.49 54.17 16.01 62.17 26.81 111.64 81.47 131.54 146.16a239 239 0 0 1 9.02 42.45c.57 4.78 1.71 10.08 1.18 14.86-3.68.74-11.79-2.71-15.77-3.59-13.25-2.96-26.37-6.61-39.54-9.9-44.82-11.2-89.76-21.98-134.5-33.46-11.12-2.86-23.02-7.34-34.62-7.4-18.74-.09-37.3 13.03-42.78 31.09-2.77 9.13-2.15 18.59-2.15 28.04v73.41c0 12.76-.35 24.77 6.21 36.13 8.02 13.91 21.93 19.05 36.18 24.18 9.9 3.56 19.77 7.29 29.57 11.08 46.37 17.94 93.3 34.5 139.66 52.5 13.3 5.16 26.76 9.99 40.11 15.04 3.92 1.48 13.07 3.58 15.76 6.39-.29 5.88-3.67 12.3-6.17 17.52-8.68 18.09-23.96 32.76-42.24 40.99a78 78 0 0 1-15.44 5.16c-3.05.65-7.59.45-10.21 2.04h-17.77c-2.37-1.56-7.06-1.44-9.95-2.01-5.23-1.02-10.38-2.77-15.53-4.11a2330 2330 0 0 1-61.89-17.02c-68.01-19.71-137-36.21-204.84-56.53-13.26-3.97-26.82-6.95-40.06-11-9.2-2.8-18.59-4.56-27.4-8.58a97 97 0 0 1-47.8-48.05C.67 345.68 1 325.98 1 305.56c0-14.61-.57-29.36.27-43.95 1.76-30.54 7.21-60.38 16.91-89.31a275 275 0 0 1 12.07-30.05c2.13-4.51 6.12-9.94 6.84-14.83-8.32-9.13-17.55-17.52-26.22-26.32-4.18-4.24-9.47-8.37-9.83-14.83-.52-9.54 6.26-13.56 13.57-17.64A636 636 0 0 1 53.23 48.8c42.71-20.13 87.89-32.69 134.19-41.57a301 301 0 0 1 41.46-5.19c5.11-.24 20.33-.22 24.13-1.96ZM311 204.21v134.93c-4.36.19-10.13-3.44-14.23-4.95-7.04-2.6-17.65-4.46-22.5-10.66-4.93-6.32-3.27-15.6-3.27-23.11V220c0-7.16-.15-14.11 6.23-18.74 8.79-6.39 24.13.85 33.77 2.95Zm200 50.15v159.68l-170-63.42V212.05zm-381.62-33.97c-21.42 4.06-39.7 17.24-46.13 38.91-10.73 36.16 19.9 75.1 58.19 70.48 25.78-3.11 46.62-23.41 49.35-49.47 2.99-28.5-18.1-55.09-46.08-59.48-4.96-.78-10.33-1.39-15.33-.44Zm2.34 29.93c31.2-6.61 42.1 44.02 7.85 49.46-31.39 4.99-39.97-42.65-7.85-49.46Z diff --git a/FModel/Views/Snooper/Models/StaticModel.cs b/FModel/Views/Snooper/Models/StaticModel.cs index d0fba195..f7af310b 100644 --- a/FModel/Views/Snooper/Models/StaticModel.cs +++ b/FModel/Views/Snooper/Models/StaticModel.cs @@ -1,12 +1,14 @@ using System; using System.Numerics; -using CUE4Parse_Conversion.Dto; +using CUE4Parse.GameTypes.Nascar.Assets.Exports; using CUE4Parse.UE4.Assets.Exports.GeometryCollection; using CUE4Parse.UE4.Assets.Exports.Material; using CUE4Parse.UE4.Assets.Exports.StaticMesh; using CUE4Parse.UE4.Assets.Exports.Texture; using CUE4Parse.UE4.Objects.Core.Math; using CUE4Parse.UE4.Objects.PhysicsEngine; +using CUE4Parse.UE4.Objects.UObject; +using CUE4Parse_Conversion.Dto; using FModel.Views.Snooper.Shading; using OpenTK.Graphics.OpenGL4; @@ -150,6 +152,12 @@ public class StaticModel : UModel Box = staticMesh.Bounds * Constants.SCALE_DOWN_RATIO; } + public StaticModel(UIRMesh export, StaticMeshDto mesh) + : base(export, mesh.LODs[LodLevel], new FPackageIndex[mesh.Materials.Length], mesh.LODs[LodLevel].Vertices, mesh.LODs.Count) + { + Box = mesh.Bounds * Constants.SCALE_DOWN_RATIO; + } + public override void RenderCollision(Shader shader) { base.RenderCollision(shader); diff --git a/FModel/Views/Snooper/Renderer.cs b/FModel/Views/Snooper/Renderer.cs index baaf5b93..e2749c52 100644 --- a/FModel/Views/Snooper/Renderer.cs +++ b/FModel/Views/Snooper/Renderer.cs @@ -13,6 +13,7 @@ using CUE4Parse.UE4.Assets.Exports.GeometryCollection; using CUE4Parse.UE4.Assets.Exports.Material; using CUE4Parse.UE4.Assets.Exports.StaticMesh; using CUE4Parse.UE4.Assets.Exports.Texture; +using CUE4Parse.GameTypes.Nascar.Assets.Exports; using CUE4Parse.UE4.Objects.Core.Math; using CUE4Parse.UE4.Objects.Core.Misc; using CUE4Parse.UE4.Objects.Engine; @@ -90,6 +91,9 @@ public class Renderer : IDisposable case UStaticMesh when export.Value is UStaticMesh st: LoadStaticMesh(st, UserSettings.Default.NaniteMeshExportFormat); break; + case UIRMesh when export.Value is UIRMesh ir: + LoadIRMesh(ir); + break; case UGeometryCollection when export.Value is UGeometryCollection gc: LoadStaticMesh(gc, UserSettings.Default.NaniteMeshExportFormat); break; @@ -366,13 +370,39 @@ public class Renderer : IDisposable Options.SelectModel(guid); } + private void LoadIRMesh(UIRMesh original) + { + var guid = new FGuid((uint) original.GetFullName().GetHashCode()); + if (Options.TryGetModel(guid, out var model)) + { + model.AddInstance(Transform.Identity); + Application.Current.Dispatcher.Invoke(model.SetupInstances); + return; + } + + StaticMeshDto mesh; + try + { + mesh = new StaticMeshDto(original); + } + catch (Exception e) + { + Log.Error(e, "Failed to convert IR mesh"); + return; + } + + Options.Models[guid] = new StaticModel(original, mesh); + mesh.Dispose(); + Options.SelectModel(guid); + } + private void LoadStaticMesh(UGeometryCollection original, ENaniteMeshFormat naniteFormat = ENaniteMeshFormat.NoNanite) { var guid = new FGuid((uint) original.GetFullName().GetHashCode()); if (Options.TryGetModel(guid, out var model)) { model.AddInstance(Transform.Identity); - Application.Current.Dispatcher.Invoke(() => model.SetupInstances()); + Application.Current.Dispatcher.Invoke(model.SetupInstances); return; } @@ -397,7 +427,7 @@ public class Renderer : IDisposable if (Options.TryGetModel(guid, out var model)) { model.AddInstance(Transform.Identity); - Application.Current.Dispatcher.Invoke(() => model.SetupInstances()); + Application.Current.Dispatcher.Invoke(model.SetupInstances); return; } @@ -408,7 +438,7 @@ public class Renderer : IDisposable } catch (Exception e) { - Log.Error(e, "Failed to convert chaos cloth asset"); + Log.Error(e, "Failed to convert skinned asset"); return; } @@ -456,7 +486,7 @@ public class Renderer : IDisposable if (Options.TryGetModel(guid, out var model)) { model.AddInstance(Transform.Identity); - Application.Current.Dispatcher.Invoke(() => model.SetupInstances()); + Application.Current.Dispatcher.Invoke(model.SetupInstances); return; }