Patcher.Data.Plugins.Content.MemberInfo.GetReferencedFormIds C# (CSharp) Method

GetReferencedFormIds() public method

public GetReferencedFormIds ( object target ) : IEnumerable
target object
return IEnumerable
        public IEnumerable<uint> GetReferencedFormIds(object target)
        {
            if (IsReference)
            {
                if (IsListType)
                {
                    foreach (object item in (IEnumerable)GetValue(target))
                    {
                        yield return (uint)item;
                    }
                }
                else
                {
                    yield return (uint)GetValue(target);
                }
            }
            else if (!IsPrimitiveType)
            {
                if (IsListType)
                {
                    // No references if list is null
                    var value = GetValue(target);
                    if (value == null)
                        yield break;

                    foreach (object item in (IEnumerable)value)
                    {
                        var field = (Field)item;
                        if (field != null)
                        {
                            foreach (var formId in field.GetReferencedFormIds())
                            {
                                yield return formId;
                            }
                        }
                    }
                }
                else
                {
                    var field = (Field)GetValue(target);
                    if (field != null)
                    {
                        foreach (var formId in field.GetReferencedFormIds())
                        {
                            yield return formId;
                        }
                    }
                }
            }
        }