Skip to content

Commit fa20d3d

Browse files
committed
added "reset all values to original" button
1 parent fb28645 commit fa20d3d

2 files changed

Lines changed: 25 additions & 4 deletions

File tree

Editor/SOVariant.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public bool SetParent(T parent, bool setToParentData = true)
7878
AddToChildrenData(AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(parent)), targetGUID);
7979

8080
if (setToParentData)
81-
InitialiseNewParent();
81+
SetAllFieldsToParent();
8282
else
8383
InitialiseNewParentOverrides();
8484
}
@@ -235,7 +235,7 @@ private List<string> DeserializeChildrenData(string data)
235235
return children;
236236
}
237237

238-
private void InitialiseNewParent()
238+
private void SetAllFieldsToParent()
239239
{
240240
foreach (FieldInfo fieldInfo in FieldInfoHelper.GetAllFields(_parent.GetType()))
241241
{
@@ -244,6 +244,16 @@ private void InitialiseNewParent()
244244
}
245245
}
246246

247+
public void ResetAllFieldsToParentValue()
248+
{
249+
List<string> oldOverrides = new List<string>(_overridden);
250+
_overridden.Clear();
251+
252+
SetAllFieldsToParent();
253+
254+
SaveData(_overridden, oldOverrides);
255+
}
256+
247257
private void InitialiseNewParentOverrides()
248258
{
249259
foreach (FieldInfo fieldInfo in FieldInfoHelper.GetAllFields(_parent.GetType()))

Editor/SOVariantAttributeProcessor.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public override void ProcessMemberProperties(List<InspectorPropertyInfo> propert
6969

7070
if (_soVariant._parent != null)
7171
{
72+
7273
_soVariant._otherSerializationBackend = new List<string>();
7374
foreach (InspectorPropertyInfo propertyInfo in new List<InspectorPropertyInfo>(propertyInfos))
7475
{
@@ -88,13 +89,23 @@ public override void ProcessMemberProperties(List<InspectorPropertyInfo> propert
8889
// ! enable to debug
8990
// propertyInfo.GetEditableAttributesList().Add(new ShowDrawerChainAttribute());
9091
}
92+
93+
propertyInfos.AddDelegate("Reset all values to Original", () =>
94+
{
95+
_soVariant.ResetAllFieldsToParentValue();
96+
_soVariant._overridden = null;
97+
Property.RefreshSetup();
98+
});
99+
100+
var propertyButton = propertyInfos.Last();
101+
propertyInfos.Insert(0, propertyButton);
102+
propertyInfos.RemoveAt(propertyInfos.Count - 1);
103+
propertyButton.GetEditableAttributesList().Add(bxa);
91104
}
92105

93106
propertyInfos.AddValue("Original", () => _soVariant._parent, ParentSetter);
94107

95108
InspectorPropertyInfo parentPropertyInfo = propertyInfos.Last();
96-
97-
98109
propertyInfos.Insert(0, parentPropertyInfo);
99110
propertyInfos.RemoveAt(propertyInfos.Count - 1);
100111

0 commit comments

Comments
 (0)