mirror of
https://github.com/4sval/FModel.git
synced 2026-04-07 09:36:29 -05:00
Skip emissive
This commit is contained in:
parent
3b82f14290
commit
5b13bb0b46
|
|
@ -1 +1 @@
|
|||
Subproject commit 8713445a76718e26f58d1a85d9dab114979d1bfc
|
||||
Subproject commit 0f442379903ce789dfef2ed2c784120525036b81
|
||||
|
|
@ -137,7 +137,7 @@ public class CUE4ParseViewModel : ViewModel
|
|||
private Lazy<WwiseProvider> _wwiseProviderLazy;
|
||||
public WwiseProvider WwiseProvider => _wwiseProviderLazy.Value;
|
||||
private Lazy<FModProvider> _fmodProviderLazy;
|
||||
public FModProvider FmodProvider => _fmodProviderLazy?.Value;
|
||||
public FModProvider FmodProvider => _fmodProviderLazy?.Value;
|
||||
private Lazy<CriWareProvider> _criWareProviderLazy;
|
||||
public CriWareProvider CriWareProvider => _criWareProviderLazy?.Value;
|
||||
public ConcurrentBag<string> UnknownExtensions = [];
|
||||
|
|
@ -293,7 +293,7 @@ public class CUE4ParseViewModel : ViewModel
|
|||
|
||||
Provider.Initialize();
|
||||
_wwiseProviderLazy = new Lazy<WwiseProvider>(() => new WwiseProvider(Provider, UserSettings.Default.WwiseMaxBnkPrefetch));
|
||||
_fmodProviderLazy = new Lazy<FModProvider>(() => new FModProvider(Provider, UserSettings.Default.GameDirectory));
|
||||
_fmodProviderLazy = new Lazy<FModProvider>(() => new FModProvider(Provider, UserSettings.Default.GameDirectory));
|
||||
_criWareProviderLazy = new Lazy<CriWareProvider>(() => new CriWareProvider(Provider, UserSettings.Default.GameDirectory));
|
||||
Log.Information($"{Provider.Versions.Game} ({Provider.Versions.Platform}) | Archives: x{Provider.UnloadedVfs.Count} | AES: x{Provider.RequiredKeys.Count} | Loose Files: x{Provider.Files.Count}");
|
||||
});
|
||||
|
|
@ -648,6 +648,7 @@ public class CUE4ParseViewModel : ViewModel
|
|||
case "dnearchive": // Banishers: Ghosts of New Eden
|
||||
case "gitignore":
|
||||
case "LICENSE":
|
||||
case "playstats": // Dispatch
|
||||
case "template":
|
||||
case "stUMeta": // LIS: Double Exposure
|
||||
case "vmodule":
|
||||
|
|
@ -775,38 +776,38 @@ public class CUE4ParseViewModel : ViewModel
|
|||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "awb":
|
||||
{
|
||||
var archive = entry.CreateReader();
|
||||
var awbReader = new AwbReader(archive);
|
||||
|
||||
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(awbReader, Formatting.Indented), saveProperties, updateUi);
|
||||
|
||||
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
|
||||
var extractedSounds = CriWareProvider.ExtractCriWareSounds(awbReader, archive.Name);
|
||||
foreach (var sound in extractedSounds)
|
||||
{
|
||||
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "acb":
|
||||
{
|
||||
var archive = entry.CreateReader();
|
||||
var acbReader = new AcbReader(archive);
|
||||
|
||||
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(acbReader, Formatting.Indented), saveProperties, updateUi);
|
||||
|
||||
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
|
||||
var extractedSounds = CriWareProvider.ExtractCriWareSounds(acbReader, archive.Name);
|
||||
foreach (var sound in extractedSounds)
|
||||
{
|
||||
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "awb":
|
||||
{
|
||||
var archive = entry.CreateReader();
|
||||
var awbReader = new AwbReader(archive);
|
||||
|
||||
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(awbReader, Formatting.Indented), saveProperties, updateUi);
|
||||
|
||||
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
|
||||
var extractedSounds = CriWareProvider.ExtractCriWareSounds(awbReader, archive.Name);
|
||||
foreach (var sound in extractedSounds)
|
||||
{
|
||||
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "acb":
|
||||
{
|
||||
var archive = entry.CreateReader();
|
||||
var acbReader = new AcbReader(archive);
|
||||
|
||||
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(acbReader, Formatting.Indented), saveProperties, updateUi);
|
||||
|
||||
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
|
||||
var extractedSounds = CriWareProvider.ExtractCriWareSounds(acbReader, archive.Name);
|
||||
foreach (var sound in extractedSounds)
|
||||
{
|
||||
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "xvag":
|
||||
case "flac":
|
||||
|
|
@ -1032,27 +1033,27 @@ public class CUE4ParseViewModel : ViewModel
|
|||
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
case USoundAtomCueSheet or UAtomCueSheet or USoundAtomCue or UAtomWaveBank when (isNone || saveAudio) && pointer.Object.Value is UObject atomObject:
|
||||
{
|
||||
var extractedSounds = atomObject switch
|
||||
{
|
||||
USoundAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
|
||||
UAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
|
||||
USoundAtomCue cue => CriWareProvider.ExtractCriWareSounds(cue),
|
||||
UAtomWaveBank awb => CriWareProvider.ExtractCriWareSounds(awb),
|
||||
_ => []
|
||||
};
|
||||
|
||||
var directory = Path.GetDirectoryName(atomObject.Owner?.Name) ?? "/Criware/";
|
||||
directory = Path.GetDirectoryName(atomObject.Owner.Provider.FixPath(directory));
|
||||
foreach (var sound in extractedSounds)
|
||||
{
|
||||
SaveAndPlaySound(Path.Combine(directory, sound.Name).Replace("\\", "/"), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
case UAkMediaAssetData when isNone || saveAudio:
|
||||
}
|
||||
case USoundAtomCueSheet or UAtomCueSheet or USoundAtomCue or UAtomWaveBank when (isNone || saveAudio) && pointer.Object.Value is UObject atomObject:
|
||||
{
|
||||
var extractedSounds = atomObject switch
|
||||
{
|
||||
USoundAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
|
||||
UAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
|
||||
USoundAtomCue cue => CriWareProvider.ExtractCriWareSounds(cue),
|
||||
UAtomWaveBank awb => CriWareProvider.ExtractCriWareSounds(awb),
|
||||
_ => []
|
||||
};
|
||||
|
||||
var directory = Path.GetDirectoryName(atomObject.Owner?.Name) ?? "/Criware/";
|
||||
directory = Path.GetDirectoryName(atomObject.Owner.Provider.FixPath(directory));
|
||||
foreach (var sound in extractedSounds)
|
||||
{
|
||||
SaveAndPlaySound(Path.Combine(directory, sound.Name).Replace("\\", "/"), sound.Extension, sound.Data, saveAudio);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
case UAkMediaAssetData when isNone || saveAudio:
|
||||
case USoundWave when isNone || saveAudio:
|
||||
{
|
||||
var shouldDecompress = UserSettings.Default.CompressedAudioMode == ECompressedAudio.PlayDecompressed;
|
||||
|
|
@ -1273,4 +1274,4 @@ public class CUE4ParseViewModel : ViewModel
|
|||
{
|
||||
return (a & b) == b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -240,6 +240,18 @@ public class Options
|
|||
Services.ApplicationService.ApplicationView.CUE4Parse.ModelIsWaitingAnimation = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Skip emmisive for specific games, cause of excessive use in their materials
|
||||
/// </summary>
|
||||
public bool SkipEmmisive()
|
||||
{
|
||||
return _game switch
|
||||
{
|
||||
"LIESOFP" => true,
|
||||
_ => false,
|
||||
};
|
||||
}
|
||||
|
||||
public void ResetModelsLightsAnimations()
|
||||
{
|
||||
foreach (var model in Models.Values)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
|
|
@ -121,10 +121,15 @@ public class Material : IDisposable
|
|||
RoughnessMax = roughness + d;
|
||||
}
|
||||
|
||||
if (Parameters.TryGetScalar(out var emissiveMultScalar, "emissive mult", "Emissive_Mult", "EmissiveIntensity", "EmissionIntensity"))
|
||||
EmissiveMult = emissiveMultScalar;
|
||||
else if (Parameters.TryGetLinearColor(out var emissiveMultColor, "Emissive Multiplier", "EmissiveMultiplier"))
|
||||
EmissiveMult = emissiveMultColor.R;
|
||||
if (!options.SkipEmmisive())
|
||||
{
|
||||
if (Parameters.TryGetScalar(out var emissiveMultScalar, "emissive mult", "Emissive_Mult", "EmissiveIntensity", "EmissionIntensity"))
|
||||
EmissiveMult = emissiveMultScalar;
|
||||
else if (Parameters.TryGetLinearColor(out var emissiveMultColor, "Emissive Multiplier", "EmissiveMultiplier"))
|
||||
EmissiveMult = emissiveMultColor.R;
|
||||
}
|
||||
else
|
||||
EmissiveMult = 0f;
|
||||
|
||||
if (Parameters.TryGetLinearColor(out var EmissiveUVs,
|
||||
"EmissiveUVs_RG_UpperLeftCorner_BA_LowerRightCorner",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user