DeltaVR/Assets/Asset Cleaner/Data/AufSerializableData.cs
2021-02-23 02:13:14 +02:00

74 lines
2.6 KiB
C#

using System;
using System.Linq;
namespace Asset_Cleaner {
[Serializable]
class AufSerializableData {
public const int CurrentVersion = 1;
public int Version;
public bool MarkRed;
public int RebuildCacheOnDemand;
public bool ShowInfoBox;
public string IgnorePathContainsCombined;
public bool IgnoreMaterial;
public bool IgnoreScriptable;
static int BoolToInt(bool val) {
return val ? 2 : 1;
}
static bool IntToBool(int val, bool defaultVal) {
switch (val) {
case 2:
return true;
case 1:
return false;
default:
return defaultVal;
}
}
public static AufSerializableData Default() {
return new AufSerializableData {
Version = CurrentVersion,
MarkRed = true,
ShowInfoBox = true,
IgnorePathContainsCombined = "Gizmos;Resources;Editor;Asset Cleaner;Asset Usage Finder;",
IgnoreMaterial = false,
IgnoreScriptable = true,
RebuildCacheOnDemand = 2,
};
}
public static void OnSerialize(in Config src, out AufSerializableData result) {
result = new AufSerializableData();
result.Version = CurrentVersion;
result.MarkRed = src.MarkRed;
result.ShowInfoBox = src.ShowInfoBox;
result.IgnorePathContainsCombined = src.IgnorePathContainsCombined;
result.IgnoreMaterial = src.IgnoreMaterial;
result.IgnoreScriptable = src.IgnoreScriptable;
result.RebuildCacheOnDemand = BoolToInt(src.RebuildCacheOnDemand);
}
public static void OnDeserialize(in AufSerializableData src, ref Config result) {
var def = Default();
result.MarkRed = src.MarkRed;
result.IgnorePathContainsCombined = src.IgnorePathContainsCombined;
result.ShowInfoBox = src.ShowInfoBox;
result.IgnorePathContains = result.IgnorePathContainsCombined
.Split(';')
.Select(s => s.Trim())
.Where(s => !string.IsNullOrWhiteSpace(s))
.ToArray();
result.IgnoreMaterial = src.IgnoreMaterial;
result.IgnoreScriptable = src.IgnoreScriptable;
result.RebuildCacheOnDemand = IntToBool(src.RebuildCacheOnDemand, def.RebuildCacheOnDemand == 2);
}
public bool Valid() {
return Version == CurrentVersion || IgnorePathContainsCombined == null;
}
}
}