Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions JotunnLib/Managers/MockSystem/FieldMember.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public FieldMember(FieldInfo fieldInfo)
IsUnityObject = MemberType.IsSameOrSubclass(typeof(Object));
IsClass = MemberType.IsClass;
HasGetMethod = true;
HasSetMethod = true;
EnumeratedType = MemberType.GetEnumeratedType();
IsEnumerableOfUnityObjects = EnumeratedType?.IsSameOrSubclass(typeof(Object)) == true;
IsEnumeratedClass = EnumeratedType?.IsClass == true;
Expand Down
1 change: 1 addition & 0 deletions JotunnLib/Managers/MockSystem/MemberBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ namespace Jotunn {
internal abstract class MemberBase
{
public bool HasGetMethod { get; protected set; }
public bool HasSetMethod { get; protected set; }
public Type MemberType { get; protected set; }
public Type EnumeratedType { get; protected set; }
public bool IsUnityObject { get; protected set; }
Expand Down
4 changes: 2 additions & 2 deletions JotunnLib/Managers/MockSystem/MockManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ private static void FixMemberReferences(MemberBase member, object objectToFix, i
return;
}

if (member.IsUnityObject && member.HasGetMethod)
if (member.IsUnityObject && member.HasGetMethod && member.HasSetMethod)
{
var target = (Object)member.GetValue(objectToFix);
var realPrefab = GetRealPrefabFromMock(target, member.MemberType);
Expand All @@ -324,7 +324,7 @@ private static void FixMemberReferences(MemberBase member, object objectToFix, i
TryFixMaterial(material);
}
}
else if (member.IsEnumeratedClass && member.IsEnumerableOfUnityObjects)
else if (member.IsEnumeratedClass && member.IsEnumerableOfUnityObjects && member.HasSetMethod)
{
var isArray = member.MemberType.IsArray;
var isList = member.MemberType.IsGenericType && member.MemberType.GetGenericTypeDefinition() == typeof(List<>);
Expand Down
1 change: 1 addition & 0 deletions JotunnLib/Managers/MockSystem/PropertyMember.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public PropertyMember(PropertyInfo propertyInfo)
IsUnityObject = MemberType.IsSameOrSubclass(typeof(Object));
IsClass = MemberType.IsClass;
HasGetMethod = propertyInfo.GetIndexParameters().Length == 0 && propertyInfo.GetMethod != null;
HasSetMethod = propertyInfo.SetMethod != null;
EnumeratedType = MemberType.GetEnumeratedType();
IsEnumerableOfUnityObjects = EnumeratedType?.IsSameOrSubclass(typeof(Object)) == true;
IsEnumeratedClass = EnumeratedType?.IsClass == true;
Expand Down
Loading