Skip to content

Commit

Permalink
MaterialColorToggle
Browse files Browse the repository at this point in the history
  • Loading branch information
4sval committed Nov 25, 2021
1 parent 212d8a1 commit 1b9bd2c
Show file tree
Hide file tree
Showing 12 changed files with 113 additions and 120 deletions.
2 changes: 1 addition & 1 deletion CUE4Parse
Submodule CUE4Parse updated 90 files
+0 −36 CUE4Parse.sln
+2 −2 CUE4Parse/CUE4Parse.csproj
+12 −17 CUE4Parse/FileProvider/AbstractFileProvider.cs
+22 −2 CUE4Parse/FileProvider/DefaultFileProvider.cs
+1 −1 CUE4Parse/FileProvider/GameFile.cs
+6 −3 CUE4Parse/FileProvider/OsGameFile.cs
+13 −3 CUE4Parse/UE4/AssetRegistry/Objects/FAssetPackageData.cs
+23 −22 CUE4Parse/UE4/AssetRegistry/Objects/FAssetRegistryVersion.cs
+4 −3 CUE4Parse/UE4/Assets/Exports/Animation/FMeshBoneInfo.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Animation/FRawAnimSequenceTrack.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/Animation/FReferenceSkeleton.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Animation/FSmartNameMapping.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Animation/UAnimSequence.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Animation/UAnimationAsset.cs
+4 −4 CUE4Parse/UE4/Assets/Exports/Animation/USkeleton.cs
+34 −1 CUE4Parse/UE4/Assets/Exports/Component/StaticMesh/FStaticMeshComponentLODInfo.cs
+47 −11 CUE4Parse/UE4/Assets/Exports/Engine/UCurveTable.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/Material/FTextureParameterValue.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Material/MaterialResourceTypes.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/Material/UMaterial.cs
+4 −3 CUE4Parse/UE4/Assets/Exports/Material/UMaterialInstance.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FMultisizeIndexContainer.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FRuntimeSkinWeightProfileData.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSkelMeshChunk.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSkelMeshSection.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSkeletalMaterial.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSkeletalMeshVertexBuffer.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSkeletalMeshVertexClothBuffer.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSkeletalMeshVertexColorBuffer.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FSoftVertex.cs
+3 −3 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/FStaticLODModel.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/SkeletalMesh/USkeletalMesh.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Sound/Node/USoundNode.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Sound/USoundCue.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/Sound/USoundWave.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/StaticMesh/DistanceFieldAtlas.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/StaticMesh/FRawStaticIndexBuffer.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/StaticMesh/FStaticMeshLODResources.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/StaticMesh/FStaticMeshRenderData.cs
+1 −1 CUE4Parse/UE4/Assets/Exports/StaticMesh/FStaticMeshVertexBuffer.cs
+5 −3 CUE4Parse/UE4/Assets/Exports/StaticMesh/UStaticMesh.cs
+2 −3 CUE4Parse/UE4/Assets/Exports/Texture/FTexture2DMipMap.cs
+1 −2 CUE4Parse/UE4/Assets/Exports/Texture/FTexturePlatformData.cs
+2 −2 CUE4Parse/UE4/Assets/Exports/Texture/UTexture2D.cs
+17 −4 CUE4Parse/UE4/Assets/IoPackage.cs
+1 −1 CUE4Parse/UE4/Assets/Objects/FByteBulkDataHeader.cs
+1 −1 CUE4Parse/UE4/Assets/Objects/FPropertyTag.cs
+5 −5 CUE4Parse/UE4/Assets/Objects/FPropertyTagData.cs
+4 −4 CUE4Parse/UE4/Assets/Objects/UScriptArray.cs
+13 −1 CUE4Parse/UE4/Assets/Package.cs
+4 −4 CUE4Parse/UE4/IO/Objects/FExportMapEntry.cs
+1 −1 CUE4Parse/UE4/IO/Objects/FPackageImportReference.cs
+1 −1 CUE4Parse/UE4/IO/Objects/FPackageObjectIndex.cs
+1 −1 CUE4Parse/UE4/IO/Objects/FZenPackageSummary.cs
+3 −3 CUE4Parse/UE4/Objects/Core/Math/FLinearColor.cs
+1 −1 CUE4Parse/UE4/Objects/Core/Math/FPlane.cs
+3 −3 CUE4Parse/UE4/Objects/Core/Math/FQuat.cs
+5 −5 CUE4Parse/UE4/Objects/Core/Math/FTransform.cs
+8 −8 CUE4Parse/UE4/Objects/Core/Math/FVector.cs
+5 −5 CUE4Parse/UE4/Objects/Core/Math/Matrix.cs
+1 −1 CUE4Parse/UE4/Objects/Core/Math/UnrealMathUtility.cs
+1 −1 CUE4Parse/UE4/Objects/Core/Misc/FEngineVersion.cs
+2 −2 CUE4Parse/UE4/Objects/Core/i18N/FText.cs
+1 −1 CUE4Parse/UE4/Objects/Engine/Animation/UAnimationAsset.cs
+2 −2 CUE4Parse/UE4/Objects/Engine/Curves/RichCurve.cs
+2 −2 CUE4Parse/UE4/Objects/Engine/Curves/SimpleCurve.cs
+3 −3 CUE4Parse/UE4/Objects/Engine/Curves/UCurveLinearColor.cs
+1 −2 CUE4Parse/UE4/Objects/Engine/FLightmassPrimitiveSettings.cs
+7 −2 CUE4Parse/UE4/Objects/Engine/FStripDataFlags.cs
+2 −2 CUE4Parse/UE4/Objects/Engine/UBlueprintCore.cs
+12 −5 CUE4Parse/UE4/Objects/Engine/UModel.cs
+1 −1 CUE4Parse/UE4/Objects/Meshes/FColorVertexBuffer.cs
+1 −1 CUE4Parse/UE4/Objects/PhysicsEngine/UBodySetup.cs
+4 −4 CUE4Parse/UE4/Objects/UObject/FName.cs
+1 −1 CUE4Parse/UE4/Objects/UObject/FNameEntrySerialized.cs
+41 −22 CUE4Parse/UE4/Objects/UObject/FPackageFileSummary.cs
+1 −1 CUE4Parse/UE4/Objects/UObject/FSoftObjectPath.cs
+5 −5 CUE4Parse/UE4/Objects/UObject/ObjectResource.cs
+1 −2 CUE4Parse/UE4/Objects/UObject/UClass.cs
+2 −3 CUE4Parse/UE4/Objects/UObject/UEnum.cs
+1 −2 CUE4Parse/UE4/Objects/UObject/UFunction.cs
+1 −1 CUE4Parse/UE4/Readers/FArchive.cs
+40 −31 CUE4Parse/UE4/Versions/EGame.cs
+674 −11 CUE4Parse/UE4/Versions/ObjectVersion.cs
+0 −809 CUE4Parse/UE4/Versions/UE4Version.cs
+4 −4 CUE4Parse/UE4/Versions/VersionContainer.cs
+45 −0 CUE4Parse/UE4/Versions/VersionUtils.cs
+1 −1 CUE4Parse/UE4/Vfs/AbstractVfsReader.cs
+1 −1 CUE4Parse/UE4/Vfs/IVfsReader.cs
+2 −2 CUE4Parse/Utils/MathUtils.cs
6 changes: 3 additions & 3 deletions FModel/Creator/Bases/FN/BaseIconStats.cs
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,10 @@ private bool TryGetCurveTableStat(FStructFallback property, out float statValue)
if (property.TryGetValue(out FStructFallback curve, "Curve") &&
curve.TryGetValue(out FName rowName, "RowName") &&
curve.TryGetValue(out UCurveTable curveTable, "CurveTable") &&
curveTable.TryGetCurveTableRow(rowName.Text, StringComparison.OrdinalIgnoreCase, out var rowValue) &&
rowValue.TryGetValue(out FSimpleCurveKey[] keys, "Keys") && keys.Length > 0)
curveTable.TryFindCurve(rowName, out var rowValue) &&
rowValue is FSimpleCurve s && s.Keys.Length > 0)
{
statValue = keys[0].Value;
statValue = s.Keys[0].Value;
return true;
}

Expand Down
27 changes: 0 additions & 27 deletions FModel/Settings/UserSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -259,33 +259,6 @@ public int ImageMergerMargin
set => SetProperty(ref _overridedGame, value);
}

private IDictionary<FGame, UE4Version> _overridedUEVersion = new Dictionary<FGame, UE4Version>
{
{FGame.Unknown, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.FortniteGame, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.ShooterGame, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.DeadByDaylight, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.OakGame, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.Dungeons, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.WorldExplorers, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.g3, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.StateOfDecay2, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.Prospect, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.Indiana, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.RogueCompany, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.SwGame, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.Platform, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.BendGame, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.TslGame, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.PortalWars, UE4Version.VER_UE4_DETERMINE_BY_GAME},
{FGame.Gameface, UE4Version.VER_UE4_DETERMINE_BY_GAME}
};
public IDictionary<FGame, UE4Version> OverridedUEVersion
{
get => _overridedUEVersion;
set => SetProperty(ref _overridedUEVersion, value);
}

private IDictionary<FGame, List<FCustomVersion>> _overridedCustomVersions = new Dictionary<FGame, List<FCustomVersion>>
{
{FGame.Unknown, null},
Expand Down
10 changes: 5 additions & 5 deletions FModel/ViewModels/AssetsFolderViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ public string MountPoint
private set => SetProperty(ref _mountPoint, value);
}

private UE4Version _version;
public UE4Version Version
private int _version;
public int Version
{
get => _version;
private set => SetProperty(ref _version, value);
Expand All @@ -61,7 +61,7 @@ public UE4Version Version
public RangeObservableCollection<TreeItem> Folders { get; }
public ICollectionView FoldersView { get; }

public TreeItem(string header, string package, string mountPoint, UE4Version version, string pathHere)
public TreeItem(string header, string package, string mountPoint, int version, string pathHere)
{
Header = header;
Package = package;
Expand Down Expand Up @@ -129,7 +129,7 @@ static TreeItem FindByHeaderOrNull(IReadOnlyList<TreeItem> list, string header)
if (lastNode == null)
{
var nodePath = builder.ToString();
lastNode = new TreeItem(folder, item.Package, entry.Vfs.MountPoint, entry.Vfs.Ver, nodePath[..^1]);
lastNode = new TreeItem(folder, item.Package, entry.Vfs.MountPoint, entry.Vfs.Ver.Value, nodePath[..^1]);
lastNode.Folders.SetSuppressionState(true);
lastNode.AssetsList.Assets.SetSuppressionState(true);
parentNode.Add(lastNode);
Expand Down Expand Up @@ -168,4 +168,4 @@ static void InvokeOnCollectionChanged(TreeItem item)
});
}
}
}
}
18 changes: 8 additions & 10 deletions FModel/ViewModels/CUE4ParseViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,8 @@ public CUE4ParseViewModel(string gameDirectory)
Provider = new StreamedFileProvider("FortniteLive", true,
new VersionContainer(
UserSettings.Default.OverridedGame[Game],
UserSettings.Default.OverridedUEVersion[Game],
UserSettings.Default.OverridedCustomVersions[Game],
UserSettings.Default.OverridedOptions[Game]));
customVersions: UserSettings.Default.OverridedCustomVersions[Game],
optionOverrides: UserSettings.Default.OverridedOptions[Game]));
break;
}
case Constants._VAL_LIVE_TRIGGER:
Expand All @@ -96,17 +95,16 @@ public CUE4ParseViewModel(string gameDirectory)
Provider = new StreamedFileProvider("ValorantLive", true,
new VersionContainer(
UserSettings.Default.OverridedGame[Game],
UserSettings.Default.OverridedUEVersion[Game],
UserSettings.Default.OverridedCustomVersions[Game],
UserSettings.Default.OverridedOptions[Game]));
customVersions: UserSettings.Default.OverridedCustomVersions[Game],
optionOverrides: UserSettings.Default.OverridedOptions[Game]));
break;
}
default:
{
Game = gameDirectory.SubstringBeforeLast("\\Content").SubstringAfterLast("\\").ToEnum(FGame.Unknown);
var versions = new VersionContainer(
UserSettings.Default.OverridedGame[Game], UserSettings.Default.OverridedUEVersion[Game],
UserSettings.Default.OverridedCustomVersions[Game], UserSettings.Default.OverridedOptions[Game]);
var versions = new VersionContainer(UserSettings.Default.OverridedGame[Game],
customVersions: UserSettings.Default.OverridedCustomVersions[Game],
optionOverrides: UserSettings.Default.OverridedOptions[Game]);

if (Game == FGame.StateOfDecay2)
Provider = new DefaultFileProvider(new DirectoryInfo(gameDirectory), new List<DirectoryInfo>
Expand Down Expand Up @@ -395,7 +393,7 @@ public async Task LoadVirtualPaths()
if (VirtualPathCount > 0) return;
await _threadWorkerView.Begin(cancellationToken =>
{
VirtualPathCount = Provider.LoadVirtualPaths(UserSettings.Default.OverridedUEVersion[Game], cancellationToken);
VirtualPathCount = Provider.LoadVirtualPaths(UserSettings.Default.OverridedGame[Game].GetVersion(), cancellationToken);
if (VirtualPathCount > 0)
{
FLogger.AppendInformation();
Expand Down
77 changes: 42 additions & 35 deletions FModel/ViewModels/ModelViewerViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,43 +51,11 @@ public Camera Cam
set => SetProperty(ref _cam, value);
}

private Geometry3D _xAxis;
public Geometry3D XAxis
{
get => _xAxis;
set => SetProperty(ref _xAxis, value);
}

private Geometry3D _yAxis;
public Geometry3D YAxis
{
get => _yAxis;
set => SetProperty(ref _yAxis, value);
}

private Geometry3D _zAxis;
public Geometry3D ZAxis
{
get => _zAxis;
set => SetProperty(ref _zAxis, value);
}

private ModelAndCam _selectedModel; // selected mesh
public ModelAndCam SelectedModel
{
get => _selectedModel;
set
{
SetProperty(ref _selectedModel, value);
if (_selectedModel == null) return;

XAxis = _selectedModel.XAxis;
YAxis = _selectedModel.YAxis;
ZAxis = _selectedModel.ZAxis;
Cam.UpDirection = new Vector3D(0, 1, 0);
Cam.Position = _selectedModel.Position;
Cam.LookDirection = _selectedModel.LookDirection;
}
set => SetProperty(ref _selectedModel, value);
}

private readonly ObservableCollection<ModelAndCam> _loadedModels; // mesh list
Expand All @@ -107,6 +75,8 @@ public bool AppendMode

private readonly FGame _game;
private readonly int[] _facesIndex = { 1, 0, 2 };
private readonly float[] _table = { 255 * 0.9f, 25 * 3.0f, 255 * 0.6f, 255 * 0.0f };
private readonly int[] _table2 = { 0, 1, 2, 4, 7, 3, 5, 6 };

public ModelViewerViewModel(FGame game)
{
Expand Down Expand Up @@ -155,7 +125,11 @@ public async Task LoadExport(UObject export)
};
});
if (!valid) return;

SelectedModel = p;
Cam.UpDirection = new Vector3D(0, 1, 0);
Cam.Position = p.Position;
Cam.LookDirection = p.LookDirection;
}

#region PUBLIC METHODS
Expand Down Expand Up @@ -183,6 +157,12 @@ public void WirefreameToggle()
}
}

public void MaterialColorToggle()
{
if (SelectedModel == null) return;
SelectedModel.ShowMaterialColor = !SelectedModel.ShowMaterialColor;
}

public void DiffuseOnlyToggle()
{
if (SelectedModel == null) return;
Expand Down Expand Up @@ -317,10 +297,12 @@ private bool TryLoadSkeletalMesh(USkeletalMesh mesh, ModelAndCam cam)

private void PushLod(CMeshSection[] sections, CMeshVertex[] verts, FRawStaticIndexBuffer indices, ModelAndCam cam)
{
foreach (var section in sections) // each section is a mesh part with its own material
for (int i = 0; i < sections.Length; i++) // each section is a mesh part with its own material
{
var section = sections[i];
var builder = new MeshBuilder();
cam.TriangleCount += section.NumFaces; // NumFaces * 3 (triangle) = next section FirstIndex

for (var j = 0; j < section.NumFaces; j++) // draw a triangle for each face
{
foreach (var t in _facesIndex) // triangle face 1 then 0 then 2
Expand All @@ -339,18 +321,26 @@ private void PushLod(CMeshSection[] sections, CMeshVertex[] verts, FRawStaticInd
if (section.Material == null || !section.Material.TryLoad<UMaterialInterface>(out var unrealMaterial))
continue;

var index = (i & 0xFFF8) | _table2[i & 7] ^ 7;
var (m, isRendering, isTransparent) = LoadMaterial(unrealMaterial);

Application.Current.Dispatcher.Invoke(() =>
{
cam.Group3d.Add(new MeshGeometryModel3D
{
Name = FixName(unrealMaterial.Name), Geometry = builder.ToMeshGeometry3D(),
Material = m, IsTransparent = isTransparent, IsRendering = isRendering
Material = m, IsTransparent = isTransparent, IsRendering = isRendering,
Tag = new PBRMaterial
{
AlbedoColor = new Color4(_table[C(index)] / 255, _table[C(index >> 1)] / 255, _table[C(index >> 2)] / 255, 1)
}
});
});
}
}

private int C(int x) => (x & 1) | ((x >> 2) & 2);

private (PBRMaterial material, bool isRendering, bool isTransparent) LoadMaterial(UMaterialInterface unrealMaterial)
{
var m = new PBRMaterial { RenderShadowMap = true, EnableAutoTangent = true, RenderEnvironmentMap = true };
Expand Down Expand Up @@ -539,6 +529,23 @@ public bool IsVisible
set => SetProperty(ref _isVisible, value);
}

private bool _showMaterialColor;
public bool ShowMaterialColor
{
get => _showMaterialColor;
set
{
SetProperty(ref _showMaterialColor, value);
foreach (var g in Group3d)
{
if (g is not MeshGeometryModel3D geometryModel)
continue;

(geometryModel.Material, geometryModel.Tag) = ((PBRMaterial)geometryModel.Tag, geometryModel.Material);
}
}
}

private MeshGeometryModel3D _selectedGeometry; // selected material
public MeshGeometryModel3D SelectedGeometry
{
Expand Down
18 changes: 1 addition & 17 deletions FModel/ViewModels/SettingsViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,6 @@ public EGame SelectedUeGame
set => SetProperty(ref _selectedUeGame, value);
}

private UE4Version _selectedUeVersion;
public UE4Version SelectedUeVersion
{
get => _selectedUeVersion;
set => SetProperty(ref _selectedUeVersion, value);
}

private List<FCustomVersion> _selectedCustomVersions;
public List<FCustomVersion> SelectedCustomVersions
{
Expand Down Expand Up @@ -127,7 +120,6 @@ public ETextureFormat SelectedTextureExportFormat
public ReadOnlyObservableCollection<EUpdateMode> UpdateModes { get; private set; }
public ObservableCollection<string> Presets { get; private set; }
public ReadOnlyObservableCollection<EGame> UeGames { get; private set; }
public ReadOnlyObservableCollection<UE4Version> UeVersions { get; private set; }
public ReadOnlyObservableCollection<ELanguage> AssetLanguages { get; private set; }
public ReadOnlyObservableCollection<EAesReload> AesReloads { get; private set; }
public ReadOnlyObservableCollection<EDiscordRpc> DiscordRpcs { get; private set; }
Expand All @@ -146,7 +138,6 @@ public ETextureFormat SelectedTextureExportFormat
private EUpdateMode _updateModeSnapshot;
private string _presetSnapshot;
private EGame _ueGameSnapshot;
private UE4Version _ueVersionSnapshot;
private List<FCustomVersion> _customVersionsSnapshot;
private Dictionary<string, bool> _optionsSnapshot;
private ELanguage _assetLanguageSnapshot;
Expand All @@ -168,7 +159,6 @@ public void Initialize()
_updateModeSnapshot = UserSettings.Default.UpdateMode;
_presetSnapshot = UserSettings.Default.Presets[_game];
_ueGameSnapshot = UserSettings.Default.OverridedGame[_game];
_ueVersionSnapshot = UserSettings.Default.OverridedUEVersion[_game];
_customVersionsSnapshot = UserSettings.Default.OverridedCustomVersions[_game];
_optionsSnapshot = UserSettings.Default.OverridedOptions[_game];
_assetLanguageSnapshot = UserSettings.Default.AssetLanguage;
Expand All @@ -181,7 +171,6 @@ public void Initialize()
SelectedUpdateMode = _updateModeSnapshot;
SelectedPreset = _presetSnapshot;
SelectedUeGame = _ueGameSnapshot;
SelectedUeVersion = _ueVersionSnapshot;
SelectedCustomVersions = _customVersionsSnapshot;
SelectedOptions = _optionsSnapshot;
SelectedAssetLanguage = _assetLanguageSnapshot;
Expand All @@ -196,7 +185,6 @@ public void Initialize()
UpdateModes = new ReadOnlyObservableCollection<EUpdateMode>(new ObservableCollection<EUpdateMode>(EnumerateUpdateModes()));
Presets = new ObservableCollection<string>(EnumeratePresets());
UeGames = new ReadOnlyObservableCollection<EGame>(new ObservableCollection<EGame>(EnumerateUeGames()));
UeVersions = new ReadOnlyObservableCollection<UE4Version>(new ObservableCollection<UE4Version>(EnumerateUeVersions()));
AssetLanguages = new ReadOnlyObservableCollection<ELanguage>(new ObservableCollection<ELanguage>(EnumerateAssetLanguages()));
AesReloads = new ReadOnlyObservableCollection<EAesReload>(new ObservableCollection<EAesReload>(EnumerateAesReloads()));
DiscordRpcs = new ReadOnlyObservableCollection<EDiscordRpc>(new ObservableCollection<EDiscordRpc>(EnumerateDiscordRpcs()));
Expand Down Expand Up @@ -226,7 +214,6 @@ public void SwitchPreset(string key)
{
if (_gamePreset?.Versions == null || !_gamePreset.Versions.TryGetValue(key, out var version)) return;
SelectedUeGame = version.GameEnum.ToEnum(EGame.GAME_UE4_LATEST);
SelectedUeVersion = (UE4Version)version.UeVer;

SelectedCustomVersions = new List<FCustomVersion>();
foreach (var (guid, v) in version.CustomVersions)
Expand All @@ -244,7 +231,6 @@ public void SwitchPreset(string key)
public void ResetPreset()
{
SelectedUeGame = _ueGameSnapshot;
SelectedUeVersion = _ueVersionSnapshot;
SelectedCustomVersions = _customVersionsSnapshot;
SelectedOptions = _optionsSnapshot;
}
Expand All @@ -253,7 +239,7 @@ public SettingsOut Save()
{
var ret = SettingsOut.Nothing;

if (_ueGameSnapshot != SelectedUeGame || _ueVersionSnapshot != SelectedUeVersion || // comboboxes
if (_ueGameSnapshot != SelectedUeGame || // combobox
_customVersionsSnapshot != SelectedCustomVersions || _optionsSnapshot != SelectedOptions ||
_outputSnapshot != UserSettings.Default.OutputDirectory || // textbox
_gameSnapshot != UserSettings.Default.GameDirectory) // textbox
Expand All @@ -265,7 +251,6 @@ public SettingsOut Save()
UserSettings.Default.UpdateMode = SelectedUpdateMode;
UserSettings.Default.Presets[_game] = SelectedPreset;
UserSettings.Default.OverridedGame[_game] = SelectedUeGame;
UserSettings.Default.OverridedUEVersion[_game] = SelectedUeVersion;
UserSettings.Default.OverridedCustomVersions[_game] = SelectedCustomVersions;
UserSettings.Default.OverridedOptions[_game] = SelectedOptions;
UserSettings.Default.AssetLanguage = SelectedAssetLanguage;
Expand All @@ -289,7 +274,6 @@ private IEnumerable<string> EnumeratePresets()
yield return Constants._NO_PRESET_TRIGGER;
}
private IEnumerable<EGame> EnumerateUeGames() => Enum.GetValues(SelectedUeGame.GetType()).Cast<EGame>();
private IEnumerable<UE4Version> EnumerateUeVersions() => Enum.GetValues(SelectedUeVersion.GetType()).Cast<UE4Version>();
private IEnumerable<ELanguage> EnumerateAssetLanguages() => Enum.GetValues(SelectedAssetLanguage.GetType()).Cast<ELanguage>();
private IEnumerable<EAesReload> EnumerateAesReloads() => Enum.GetValues(SelectedAesReload.GetType()).Cast<EAesReload>();
private IEnumerable<EDiscordRpc> EnumerateDiscordRpcs() => Enum.GetValues(SelectedDiscordRpc.GetType()).Cast<EDiscordRpc>();
Expand Down
2 changes: 1 addition & 1 deletion FModel/Views/ModelViewer.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<helix:LineGeometryModel3D Geometry="{Binding ModelViewer.SelectedModel.YAxis}" Color="#85CB22" />
<helix:LineGeometryModel3D Geometry="{Binding ModelViewer.SelectedModel.ZAxis}" Color="#388EED" />

<helix:GroupModel3D x:Name="MyAntiCrashGroup" ItemsSource="{Binding ModelViewer.SelectedModel.Group3d}" />
<helix:GroupModel3D x:Name="MyAntiCrashGroup" ItemsSource="{Binding ModelViewer.SelectedModel.Group3d}" Mouse3DDown="OnMouse3DDown" />
</helix:Viewport3DX>
</Grid>
</adonisControls:AdonisWindow>

0 comments on commit 1b9bd2c

Please sign in to comment.