74 lines
2.6 KiB
C#
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;
|
|
}
|
|
}
|
|
} |