Exemple #1
0
 public void Register()
 {
     LoquiRegistration.Register(DynamicLeveledLists.Internals.ModSettings_Registration.Instance);
     LoquiRegistration.Register(DynamicLeveledLists.Internals.DebugSettings_Registration.Instance);
     LoquiRegistration.Register(DynamicLeveledLists.Internals.CountSettings_Registration.Instance);
     LoquiRegistration.Register(DynamicLeveledLists.Internals.SpawningPerformance_Registration.Instance);
 }
Exemple #2
0
        static MajorRecordInstantiator()
        {
            if (!LoquiRegistration.TryGetRegister(typeof(TMajor), out var regis))
            {
                throw new ArgumentException();
            }

            var ctorInfo = regis.ClassType.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic)
                           .Where(c =>
            {
                var param = c.GetParameters();
                if (param.Length != 2)
                {
                    return(false);
                }
                if (param[0].ParameterType != typeof(FormKey))
                {
                    return(false);
                }
                if (param[1].ParameterType != typeof(GameRelease))
                {
                    return(false);
                }
                return(true);
            })
                           .First();
            var paramInfo = ctorInfo.GetParameters();
            ParameterExpression formKey     = Expression.Parameter(typeof(FormKey), "formKey");
            ParameterExpression gameRelease = Expression.Parameter(typeof(GameRelease), "gameRelease");
            NewExpression       newExp      = Expression.New(ctorInfo, formKey, gameRelease);
            LambdaExpression    lambda      = Expression.Lambda(typeof(Func <FormKey, GameRelease, TMajor>), newExp, formKey, gameRelease);

            Activator = (Func <FormKey, GameRelease, TMajor>)lambda.Compile();
        }
Exemple #3
0
    public bool TryGetTranslator(Type?t, out GetResponse <ObjTransl> not)
    {
        if (t == null)
        {
            not = NullTranslationItem;
            return(true);
        }

        if (typeDict.TryGetValue(t, out var item))
        {
            not = item;
            return(true);
        }

        if (LoquiRegistration.TryGetRegister(t, out var regis))
        {
            var loquiTypes = new Type[]
            {
                regis.ClassType
            };

            var xmlConverterGenType = loquiTranslation.MakeGenericType(loquiTypes);
            var xmlCaster           = GetCaster(xmlConverterGenType, regis.ClassType);
            item = GetResponse <ObjTransl> .Succeed(xmlCaster);

            typeDict[t] = item;
            not         = item;
            return(true);
        }

        if (t.IsEnum ||
            (Nullable.GetUnderlyingType(t)?.IsEnum ?? false))
        {
            var implType = enumTranslation.MakeGenericType(Nullable.GetUnderlyingType(t) ?? t);
            var caster   = GetCaster(implType, t);
            not = SetTranslator(caster, t);
            return(true);
        }

        foreach (var genType in GenericTypes)
        {
            var defs = genType.GetGenericArguments();
            if (defs.Length != 1)
            {
                continue;
            }
            var def = defs[0];
            if (t.InheritsFrom(def))
            {
                var implType = genType.MakeGenericType(t);
                var caster   = GetCaster(implType, t);
                not = SetTranslator(caster, t);
                return(true);
            }
        }
        not = default;
        return(false);
    }
        /// <inheritdoc />
        public bool TryResolve(FormKey formKey, Type type, [MaybeNullWhen(false)] out IMajorRecordCommonGetter majorRec)
        {
            if (!_hasAny || formKey.IsNull)
            {
                majorRec = default;
                return(false);
            }

            DepthCache <IMajorRecordCommonGetter> cache;

            lock (this._winningRecords)
            {
                // Get cache object by type
                if (!this._winningRecords.TryGetValue(type, out cache))
                {
                    cache = new DepthCache <IMajorRecordCommonGetter>();
                    if (type.Equals(typeof(IMajorRecordCommon)) ||
                        type.Equals(typeof(IMajorRecordCommonGetter)))
                    {
                        this._winningRecords[typeof(IMajorRecordCommon)]       = cache;
                        this._winningRecords[typeof(IMajorRecordCommonGetter)] = cache;
                    }
                    else if (LoquiRegistration.TryGetRegister(type, out var registration))
                    {
                        this._winningRecords[registration.ClassType]  = cache;
                        this._winningRecords[registration.GetterType] = cache;
                        this._winningRecords[registration.SetterType] = cache;
                        if (registration.InternalGetterType != null)
                        {
                            this._winningRecords[registration.InternalGetterType] = cache;
                        }
                        if (registration.InternalSetterType != null)
                        {
                            this._winningRecords[registration.InternalSetterType] = cache;
                        }
                    }
                    else
                    {
                        if (!_linkInterfaces.TryGetValue(type, out var objs))
                        {
                            throw new ArgumentException($"A lookup was queried for an unregistered type: {type.Name}");
                        }
                        this._winningRecords[type] = cache;
                    }
                }
            }

            lock (cache)
            {
                // Check for record
                if (cache.TryGetValue(formKey, out majorRec))
                {
                    return(true);
                }
                if (IsPastDepth(cache.Depth))
                {
                    majorRec = default !;
Exemple #5
0
 static ModInstantiator()
 {
     if (!LoquiRegistration.TryGetRegister(typeof(TMod), out var regis))
     {
         throw new ArgumentException();
     }
     Activator = ModInstantiatorReflection.GetActivator <TMod>(regis);
     Importer  = ModInstantiatorReflection.GetImporter <TMod>(regis);
 }
        private static Type GetRecordType(Type t)
        {
            if (LoquiRegistration.TryGetRegister(t, out var regis))
            {
                return(regis.ClassType);
            }

            return(t);
        }
Exemple #7
0
 public static RecordException Enrich <TMajor>(Exception ex, FormKey?formKey, string?edid, ModKey?modKey = null)
     where TMajor : IMajorRecordCommonGetter
 {
     return(Enrich(
                ex,
                formKey,
                LoquiRegistration.GetRegister(typeof(TMajor)).ClassType,
                edid,
                modKey));
 }
Exemple #8
0
            static GroupRecordTypeGetter()
            {
                var regis = LoquiRegistration.GetRegister(typeof(T));

                if (regis == null)
                {
                    throw new ArgumentException();
                }
                GRUP_RECORD_TYPE = (RecordType)regis.ClassType.GetField(Mutagen.Bethesda.Internals.Constants.GrupRecordTypeMember) !.GetValue(null) !;
            }
        /// <summary>
        /// Looks up a given FormKey to try to locate the target record.
        ///
        /// Will only look into the Groups that are applicable to the given type.
        /// </summary>
        /// <param name="formKey">FormKey to search for</param>
        /// <param name="majorRec">MajorRecord if found</param>
        /// <typeparam name="TMajor">MajorRecod type or interface to look for</typeparam>
        /// <returns>True if record was found</returns>
        /// <exception cref="ArgumentException">
        /// An unexpected TMajor type will throw an exception.
        /// Unexpected types include:
        ///   - Major Record Types that are not part of this game type.  (Querying for Oblivion records on a Skyrim mod)
        ///   - A setter type is requested from a getter only object.
        /// </exception>
        public bool TryLookup <TMajor>(FormKey formKey, [MaybeNullWhen(false)] out TMajor majorRec)
            where TMajor : class, IMajorRecordCommonGetter
        {
            if (!_hasAny)
            {
                majorRec = default;
                return(false);
            }

            lock (this._loadOrderMajorRecords)
            {
                // Get cache object by type
                if (!this._loadOrderMajorRecords.TryGetValue(typeof(TMajor), out InternalTypedCache cache))
                {
                    cache = new InternalTypedCache();
                    if (typeof(TMajor).Equals(typeof(IMajorRecordCommon)) ||
                        typeof(TMajor).Equals(typeof(IMajorRecordCommonGetter)))
                    {
                        this._loadOrderMajorRecords[typeof(IMajorRecordCommon)]       = cache;
                        this._loadOrderMajorRecords[typeof(IMajorRecordCommonGetter)] = cache;
                    }
                    else if (LoquiRegistration.TryGetRegister(typeof(TMajor), out var registration))
                    {
                        this._loadOrderMajorRecords[registration.ClassType]  = cache;
                        this._loadOrderMajorRecords[registration.GetterType] = cache;
                        this._loadOrderMajorRecords[registration.SetterType] = cache;
                        if (registration.InternalGetterType != null)
                        {
                            this._loadOrderMajorRecords[registration.InternalGetterType] = cache;
                        }
                        if (registration.InternalSetterType != null)
                        {
                            this._loadOrderMajorRecords[registration.InternalSetterType] = cache;
                        }
                    }
                    else
                    {
                        var interfaceMappings = LinkInterfaceMapping.InterfaceToObjectTypes(_gameMode);
                        if (!interfaceMappings.TryGetValue(typeof(TMajor), out var objs))
                        {
                            throw new ArgumentException($"A lookup was queried for an unregistered type: {typeof(TMajor).Name}");
                        }
                        this._loadOrderMajorRecords[typeof(TMajor)] = cache;
                    }
                }

                // Check for record
                if (cache.Dictionary.TryGetValue(formKey, out var majorRecObj))
                {
                    majorRec = (majorRecObj as TMajor) !;
                    return(majorRec != null);
                }
                if (cache.Depth >= this._loadOrder.Count)
                {
                    majorRec = default !;
Exemple #10
0
 public static RecordException Create <TMajor>(string message, FormKey?formKey, string?edid, ModKey?modKey = null, Exception?innerException = null)
     where TMajor : IMajorRecordCommonGetter
 {
     return(Create(
                message: message,
                formKey: formKey,
                recordType: LoquiRegistration.GetRegister(typeof(TMajor)).ClassType,
                modKey: modKey,
                edid: edid,
                innerException: innerException));
 }
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     if (value is not Type type)
     {
         return(Binding.DoNothing);
     }
     if (LoquiRegistration.TryGetRegister(type, out var register))
     {
         return(register.ClassType.Name);
     }
     return(type.Name);
 }
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     if (value is not Type type)
     {
         return(Binding.DoNothing);
     }
     if (LoquiRegistration.TryGetRegister(type, out var registration))
     {
         return(registration.ProtocolKey.Namespace);
     }
     return(string.Empty);
 }
Exemple #13
0
        static MajorRecordPrinter()
        {
            var t = typeof(TMajor);

            if (LoquiRegistration.TryGetRegister(t, out var regis))
            {
                _TypeString = $"{regis.ProtocolKey.Namespace}.{t.Name}";
            }
            else
            {
                _TypeString = t.Name;
            }
        }
Exemple #14
0
        private static CreateFunc GetCreateFunc()
        {
            var regis = LoquiRegistration.GetRegister(typeof(T));

            if (regis == null)
            {
                throw new ArgumentException();
            }
            var className = $"{regis.Namespace}.Internals.{regis.Name}BinaryOverlay";

            var tType  = regis.ClassType.Assembly.GetType(className) !;
            var method = tType.GetMethods()
                         .Where((methodInfo) => methodInfo.Name.Equals($"{regis.Name}Factory"))
                         .Where((methodInfo) => methodInfo.IsStatic &&
                                methodInfo.IsPublic)
                         .Where((methodInfo) =>
            {
                var param = methodInfo.GetParameters();
                if (param.Length != 3)
                {
                    return(false);
                }
                if (!param[0].ParameterType.Equals(typeof(OverlayStream)))
                {
                    return(false);
                }
                if (!param[1].ParameterType.Equals(typeof(BinaryOverlayFactoryPackage)))
                {
                    return(false);
                }
                if (!param[2].ParameterType.Equals(typeof(RecordTypeConverter)))
                {
                    return(false);
                }
                return(true);
            })
                         .FirstOrDefault();

            if (method != null)
            {
                return(DelegateBuilder.BuildDelegate <CreateFunc>(method));
            }
            else
            {
                throw new ArgumentException();
            }
        }
        static MajorRecordInstantiator()
        {
            if (!LoquiRegistration.TryGetRegister(typeof(T), out var regis))
            {
                throw new ArgumentException();
            }

            var ctorInfo = regis.ClassType.GetConstructors()
                           .Where(c => c.GetParameters().Length == 1)
                           .Where(c => c.GetParameters()[0].ParameterType == typeof(FormKey))
                           .First();
            var paramInfo              = ctorInfo.GetParameters();
            ParameterExpression param  = Expression.Parameter(typeof(FormKey), "formKey");
            NewExpression       newExp = Expression.New(ctorInfo, param);
            LambdaExpression    lambda = Expression.Lambda(typeof(MajorRecordActivator <T>), newExp, param);

            Activator = (MajorRecordActivator <T>)lambda.Compile();
        }
Exemple #16
0
 private IReadOnlyCache <IModContext <TMod, IMajorRecordCommon, IMajorRecordCommonGetter>, FormKey> GetContextCache(Type type)
 {
     if (!_contexts.TryGetValue(type, out var cache))
     {
         if (type.Equals(typeof(IMajorRecordCommon)) ||
             type.Equals(typeof(IMajorRecordCommonGetter)))
         {
             cache = ConstructContextCache(type);
             _contexts[typeof(IMajorRecordCommon)]       = cache;
             _contexts[typeof(IMajorRecordCommonGetter)] = cache;
         }
         else if (LoquiRegistration.TryGetRegister(type, out var registration))
         {
             cache = ConstructContextCache(type);
             _contexts[registration.ClassType]  = cache;
             _contexts[registration.GetterType] = cache;
             _contexts[registration.SetterType] = cache;
             if (registration.InternalGetterType != null)
             {
                 _contexts[registration.InternalGetterType] = cache;
             }
             if (registration.InternalSetterType != null)
             {
                 _contexts[registration.InternalSetterType] = cache;
             }
         }
         else
         {
             var interfaceMappings = LinkInterfaceMapping.InterfaceToObjectTypes(_sourceMod.GameRelease.ToCategory());
             if (!interfaceMappings.TryGetValue(type, out var objs))
             {
                 throw new ArgumentException($"A lookup was queried for an unregistered type: {type.Name}");
             }
             var majorRecords = new Cache <IModContext <TMod, IMajorRecordCommon, IMajorRecordCommonGetter>, FormKey>(x => x.Record.FormKey);
             foreach (var objType in objs)
             {
                 majorRecords.Set(GetContextCache(LoquiRegistration.GetRegister(objType).GetterType).Items);
             }
             _contexts[type] = majorRecords;
             cache           = majorRecords;
         }
     }
     return(cache);
 }
Exemple #17
0
 public static void Register()
 {
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.DebugInfo_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.DebugFunction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.DebugPropertyGroup_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.DebugStructOrder_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexFile_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectStructInfo_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectStructInfoMember_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectVariable_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectVariableData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectState_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectNamedFunction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectFunction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectFunctionVariable_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Pex.Internals.PexObjectFunctionInstruction_Registration.Instance);
 }
Exemple #18
0
    public bool TranslateElementName(string elementName, [MaybeNullWhen(false)] out Type t)
    {
        var ret = elementNameTypeDict.TryGetValue(elementName, out t !);

        if (!ret)
        {
            var regis = LoquiRegistration.GetRegisterByFullName(elementName);
            if (regis != null)
            {
                t = elementNameTypeDict.GetOrAdd(elementName, () => regis.ClassType) !;
                return(t != null);
            }
            else
            {
                elementNameTypeDict[elementName] = null;
            }
        }
        return(ret && t != null);
    }
        public override void WrapUp()
        {
            _defaultVal = _defaultVal.Select(x => FormKeySettingsVM.StripOrigin(x)).ToArray();
            Values.SetTo(_defaultVal.Select(x =>
            {
                return(new FormKeyItemViewModel(x));
            }));

            if (LoquiRegistration.TryGetRegisterByFullName(_typeName, out var regis))
            {
                ScopedTypes = regis.GetterType.AsEnumerable();
            }
            else if (LinkInterfaceMapping.TryGetByFullName(_typeName, out var interfType))
            {
                ScopedTypes = interfType.AsEnumerable();
            }
            else
            {
                throw new ArgumentException($"Can't create a formlink control for type: {_typeName}");
            }
        }
Exemple #20
0
        internal static IEnumerable <IModContext <IFallout4Mod, IMajorRecordCommon, IMajorRecordCommonGetter> > EnumerateMajorRecordContexts(
            this IReadOnlyList <IWorldspaceBlockGetter> worldspaceBlocks,
            IWorldspaceGetter worldspace,
            ILinkCache linkCache,
            Type type,
            ModKey modKey,
            IModContext?parent,
            bool throwIfUnknown,
            Func <IFallout4Mod, IWorldspaceGetter, IWorldspace> getOrAddAsOverride,
            Func <IFallout4Mod, IWorldspaceGetter, string?, IWorldspace> duplicateInto)
        {
            foreach (var readOnlyBlock in worldspaceBlocks)
            {
                var blockNumX    = readOnlyBlock.BlockNumberX;
                var blockNumY    = readOnlyBlock.BlockNumberY;
                var blockContext = new ModContext <IWorldspaceBlockGetter>(
                    modKey: modKey,
                    parent: parent,
                    record: readOnlyBlock);
                foreach (var readOnlySubBlock in readOnlyBlock.Items)
                {
                    var subBlockNumY    = readOnlySubBlock.BlockNumberY;
                    var subBlockNumX    = readOnlySubBlock.BlockNumberX;
                    var subBlockContext = new ModContext <IWorldspaceSubBlockGetter>(
                        modKey: modKey,
                        parent: blockContext,
                        record: readOnlySubBlock);
                    foreach (var readOnlyCell in readOnlySubBlock.Items)
                    {
                        Func <IFallout4Mod, ICellGetter, bool, string?, ICell> cellGetter = (mod, copyCell, dup, edid) =>
                        {
                            var worldspaceCopy = getOrAddAsOverride(mod, worldspace);
                            var formKey        = copyCell.FormKey;
                            var retrievedBlock = worldspaceCopy.SubCells.FirstOrDefault(x => x.BlockNumberX == blockNumX && x.BlockNumberY == blockNumY);
                            if (retrievedBlock == null)
                            {
                                retrievedBlock = new WorldspaceBlock()
                                {
                                    BlockNumberX = blockNumX,
                                    BlockNumberY = blockNumY,
                                    GroupType    = GroupTypeEnum.ExteriorCellBlock,
                                };
                                worldspaceCopy.SubCells.Add(retrievedBlock);
                            }
                            var subBlock = retrievedBlock.Items.FirstOrDefault(x => x.BlockNumberX == subBlockNumX && x.BlockNumberY == subBlockNumY);
                            if (subBlock == null)
                            {
                                subBlock = new WorldspaceSubBlock()
                                {
                                    BlockNumberX = subBlockNumX,
                                    BlockNumberY = subBlockNumY,
                                    GroupType    = GroupTypeEnum.ExteriorCellSubBlock,
                                };
                                retrievedBlock.Items.Add(subBlock);
                            }
                            var cell = subBlock.Items.FirstOrDefault(cell => cell.FormKey == formKey);
                            if (cell == null)
                            {
                                if (dup)
                                {
                                    cell = copyCell.Duplicate(mod.GetNextFormKey(edid), CellCopyMask);
                                }
                                else
                                {
                                    cell = copyCell.DeepCopy(CellCopyMask);
                                }
                                subBlock.Items.Add(cell);
                            }
                            return(cell);
                        };

                        if (LoquiRegistration.TryGetRegister(type, out var regis) &&
                            regis.ClassType == typeof(Cell))
                        {
                            yield return(new ModContext <IFallout4Mod, IMajorRecordCommon, IMajorRecordCommonGetter>(
                                             modKey: modKey,
                                             record: readOnlyCell,
                                             getOrAddAsOverride: (m, r) => cellGetter(m, (ICellGetter)r, false, default(string?)),
                                             duplicateInto: (m, r, e) => cellGetter(m, (ICellGetter)r, true, e),
                                             parent: subBlockContext));
                        }
                        else
                        {
                            foreach (var con in CellCommon.Instance.EnumerateMajorRecordContexts(
                                         readOnlyCell,
                                         linkCache,
                                         type,
                                         modKey,
                                         subBlockContext,
                                         throwIfUnknown,
                                         (m, c) => cellGetter(m, c, false, default(string?)),
                                         (m, c, e) => cellGetter(m, c, true, e)))
                            {
                                yield return(con);
                            }
                        }
                    }
                }
            }
        }
 public static void Register()
 {
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ModStats_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.OblivionModHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.OblivionMod_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GameSetting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GameSettingInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GameSettingFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GameSettingString_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Global_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GlobalInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GlobalShort_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GlobalFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Class_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ClassTraining_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Model_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Hair_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Faction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Relation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Rank_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Race_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SkillBoost_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SpellUnleveled_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Eye_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RaceStats_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.FacePart_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.BodyData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.BodyPart_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.FaceGenData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Sound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SoundData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SoundDataExtended_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SkillRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.MagicEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Script_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ScriptMetaSummary_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LocalVariable_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AScriptReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LandTexture_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.HavokData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Effect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ScriptEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Enchantment_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.MagicEffectSubData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.EffectShader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Grass_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Light_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ScriptVariableReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ScriptObjectReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Birthsign_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Spell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SpellLeveled_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Activator_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AlchemicalApparatus_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Armor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Book_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Clothing_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Container_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ContainerItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Door_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Worldspace_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Ingredient_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Miscellaneous_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Static_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Tree_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Flora_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Furniture_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Weapon_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Ammunition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Npc_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RankPlacement_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ItemEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AIPackage_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CombatStyle_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Creature_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CreatureSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SoundItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LeveledCreature_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SoulGem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Key_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Potion_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Subspace_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SigilStone_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LeveledItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Weather_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WeatherColors_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WeatherSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Climate_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WeatherType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Region_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionArea_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionObjects_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionMap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionGrasses_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionSounds_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionWeather_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Cell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PlacedObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.TeleportDestination_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LockInformation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.EnableParent_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.DistantLODData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.MapMarker_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Water_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PlacedCreature_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PathGrid_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PathGridPoint_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CellBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CellSubBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.InterCellPoint_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PointToReferenceMapping_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PlacedNpc_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CellLighting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Road_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WorldspaceBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WorldspaceSubBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RoadPoint_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Landscape_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AlphaLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.BaseLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.MapData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.DialogTopic_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Quest_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.DialogItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.DialogResponse_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Condition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ScriptFields_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LogEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.QuestTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.QuestStage_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.IdleAnimation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AIPackageLocation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AIPackageSchedule_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AIPackageTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CombatStyleAdvanced_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LoadScreen_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LoadScreenLocation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Place_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LeveledSpell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AnimatedObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RelatedWaters_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RaceRelation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.OblivionMajorRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Group_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ListGroup_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ClothingFlags_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AIPackageData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AlchemicalApparatusData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AmmunitionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ArmorData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.BookData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ClassData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ClimateData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ClothingData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CombatStyleData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ContainerData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CreatureConfiguration_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CreatureAIData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.CreatureData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.DialogItemData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.DialogResponseData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.EffectShaderData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.EnchantmentData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SeasonalIngredientProduction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.GrassData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.IngredientData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.KeyData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LayerHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LightData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.MagicEffectData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.MiscellaneousData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.NpcConfiguration_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.AIData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.NpcData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Location_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.PotionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.QuestTargetData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.QuestData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RaceData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.RegionDataHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LocalVariableData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SigilStoneData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SkillData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SoulGemData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.SpellData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.TreeData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.Dimensions_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WaterData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WeaponData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.FogDistance_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.HDRData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.WeatherData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.EffectData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.ScriptEffectData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LeveledCreatureEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LeveledItemEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Oblivion.Internals.LeveledSpellEntry_Registration.Instance);
 }
Exemple #22
0
        internal static IEnumerable <IModContext <IOblivionMod, IMajorRecordCommon, IMajorRecordCommonGetter> > EnumerateMajorRecordContexts(
            this IReadOnlyList <IWorldspaceBlockGetter> worldspaceBlocks,
            IWorldspaceGetter worldspace,
            ILinkCache linkCache,
            Type type,
            ModKey modKey,
            IModContext?parent,
            bool throwIfUnknown,
            Func <IOblivionMod, IWorldspaceGetter, IWorldspace> getter)
        {
            foreach (var readOnlyBlock in worldspaceBlocks)
            {
                var blockNumX     = readOnlyBlock.BlockNumberX;
                var blockNumY     = readOnlyBlock.BlockNumberY;
                var blockModified = readOnlyBlock.LastModified;
                var blockContext  = new ModContext <IWorldspaceBlockGetter>(
                    modKey: modKey,
                    parent: parent,
                    record: readOnlyBlock);
                foreach (var readOnlySubBlock in readOnlyBlock.Items)
                {
                    var subBlockNumY     = readOnlySubBlock.BlockNumberY;
                    var subBlockNumX     = readOnlySubBlock.BlockNumberX;
                    var subBlockModified = readOnlySubBlock.LastModified;
                    var subBlockContext  = new ModContext <IWorldspaceSubBlockGetter>(
                        modKey: modKey,
                        parent: blockContext,
                        record: readOnlySubBlock);
                    foreach (var readOnlyCell in readOnlySubBlock.Items)
                    {
                        Func <IOblivionMod, ICellGetter, ICell> cellGetter = (mod, copyCell) =>
                        {
                            var worldspaceCopy = getter(mod, worldspace);
                            var formKey        = copyCell.FormKey;
                            var retrievedBlock = worldspaceCopy.SubCells.FirstOrDefault(x => x.BlockNumberX == blockNumX && x.BlockNumberY == blockNumY);
                            if (retrievedBlock == null)
                            {
                                retrievedBlock = new WorldspaceBlock()
                                {
                                    BlockNumberX = blockNumX,
                                    BlockNumberY = blockNumY,
                                    GroupType    = GroupTypeEnum.ExteriorCellBlock,
                                    LastModified = blockModified,
                                };
                                worldspaceCopy.SubCells.Add(retrievedBlock);
                            }
                            var subBlock = retrievedBlock.Items.FirstOrDefault(x => x.BlockNumberX == subBlockNumX && x.BlockNumberY == subBlockNumY);
                            if (subBlock == null)
                            {
                                subBlock = new WorldspaceSubBlock()
                                {
                                    BlockNumberX = subBlockNumX,
                                    BlockNumberY = subBlockNumY,
                                    GroupType    = GroupTypeEnum.ExteriorCellSubBlock,
                                    LastModified = readOnlySubBlock.LastModified,
                                };
                                retrievedBlock.Items.Add(subBlock);
                            }
                            var cell = subBlock.Items.FirstOrDefault(cell => cell.FormKey == formKey);
                            if (cell == null)
                            {
                                cell = copyCell.DeepCopy(CellCopyMask);
                                subBlock.Items.Add(cell);
                            }
                            return(cell);
                        };

                        if (LoquiRegistration.TryGetRegister(type, out var regis) &&
                            regis.ClassType == typeof(Cell))
                        {
                            yield return(new ModContext <IOblivionMod, IMajorRecordCommon, IMajorRecordCommonGetter>(
                                             modKey: modKey,
                                             record: readOnlyCell,
                                             getter: (m, r) => cellGetter(m, (ICellGetter)r),
                                             parent: subBlockContext));
                        }
                        else
                        {
                            foreach (var con in CellCommon.Instance.EnumerateMajorRecordContexts(readOnlyCell, linkCache, type, modKey, subBlockContext, throwIfUnknown, cellGetter))
                            {
                                yield return(con);
                            }
                        }
                    }
                }
            }
        }
Exemple #23
0
 public static void Register()
 {
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Fallout4MajorRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Fallout4Mod_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Fallout4ModHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ModStats_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Group_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GameSetting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GameSettingInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GameSettingFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GameSettingString_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GameSettingBool_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GameSettingUInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.TransientType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.AttractionRule_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Keyword_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationReferenceType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ActionRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Transform_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ObjectBounds_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Component_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Global_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.MiscItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.SoundDescriptor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Decal_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.TextureSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GlobalInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GlobalShort_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GlobalFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.GlobalBool_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ActorValueInformation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ADamageType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.DamageType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.DamageTypeIndexed_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Properties_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Class_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Condition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ConditionGlobal_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ConditionFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ConditionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationTargetRadius_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ALocationTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationCell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationObjectId_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationObjectType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationKeyword_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LocationFallback_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Relation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Cell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Faction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.CrimeValues_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.VendorValues_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Rank_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.FormList_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Outfit_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.PlacedObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Door_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ColorRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.HeadPart_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Part_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.MaterialSwap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.SimpleModel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Model_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.BipedBodyTemplate_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.AnimationSoundTagSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Armor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Race_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Debris_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.Explosion_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.ImpactDataSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Fallout4.Internals.LeveledSpell_Registration.Instance);
 }
        internal static IEnumerable <IModContext <IOblivionMod, IOblivionModGetter, IMajorRecordCommon, IMajorRecordCommonGetter> > EnumerateMajorRecordContexts(
            this IListGroupGetter <ICellBlockGetter> cellBlocks,
            ILinkCache linkCache,
            Type type,
            ModKey modKey,
            IModContext?parent,
            bool throwIfUnknown)
        {
            foreach (var readOnlyBlock in cellBlocks.Records)
            {
                var blockNum      = readOnlyBlock.BlockNumber;
                var blockModified = readOnlyBlock.LastModified;
                var blockContext  = new ModContext <ICellBlockGetter>(
                    modKey: modKey,
                    parent: parent,
                    record: readOnlyBlock);
                foreach (var readOnlySubBlock in readOnlyBlock.SubBlocks)
                {
                    var subBlockNum      = readOnlySubBlock.BlockNumber;
                    var subBlockModified = readOnlySubBlock.LastModified;
                    var subBlockContext  = new ModContext <ICellSubBlockGetter>(
                        modKey: modKey,
                        parent: blockContext,
                        record: readOnlySubBlock);
                    foreach (var readOnlyCell in readOnlySubBlock.Cells)
                    {
                        Func <IOblivionMod, ICellGetter, bool, string?, ICell> cellGetter = (mod, copyCell, dup, edid) =>
                        {
                            var formKey        = copyCell.FormKey;
                            var retrievedBlock = mod.Cells.Records.FirstOrDefault(x => x.BlockNumber == blockNum);
                            if (retrievedBlock == null)
                            {
                                retrievedBlock = new CellBlock()
                                {
                                    BlockNumber  = blockNum,
                                    GroupType    = GroupTypeEnum.InteriorCellBlock,
                                    LastModified = blockModified,
                                };
                                mod.Cells.Records.Add(retrievedBlock);
                            }
                            var subBlock = retrievedBlock.SubBlocks.FirstOrDefault(x => x.BlockNumber == subBlockNum);
                            if (subBlock == null)
                            {
                                subBlock = new CellSubBlock()
                                {
                                    BlockNumber  = subBlockNum,
                                    GroupType    = GroupTypeEnum.InteriorCellSubBlock,
                                    LastModified = subBlockModified,
                                };
                                retrievedBlock.SubBlocks.Add(subBlock);
                            }
                            var cell = subBlock.Cells.FirstOrDefault(cell => cell.FormKey == formKey);
                            if (cell == null)
                            {
                                if (dup)
                                {
                                    cell = copyCell.Duplicate(mod.GetNextFormKey(edid), CellCopyMask);
                                }
                                else
                                {
                                    cell = copyCell.DeepCopy(CellCopyMask);
                                }
                                subBlock.Cells.Add(cell);
                            }
                            return(cell);
                        };

                        if (LoquiRegistration.TryGetRegister(type, out var regis) &&
                            regis.ClassType == typeof(Cell))
                        {
                            yield return(new ModContext <IOblivionMod, IOblivionModGetter, IMajorRecordCommon, IMajorRecordCommonGetter>(
                                             modKey: modKey,
                                             record: readOnlyCell,
                                             getOrAddAsOverride: (m, r) => cellGetter(m, (ICellGetter)r, false, default(string?)),
                                             duplicateInto: (m, r, e) => cellGetter(m, (ICellGetter)r, true, e),
                                             parent: subBlockContext));
                        }
                        else
                        {
                            foreach (var con in CellCommon.Instance.EnumerateMajorRecordContexts(
                                         readOnlyCell,
                                         linkCache,
                                         type,
                                         modKey,
                                         subBlockContext,
                                         throwIfUnknown,
                                         (m, c) => cellGetter(m, c, false, default(string?)),
                                         (m, c, e) => cellGetter(m, c, true, e)))
                            {
                                yield return(con);
                            }
                        }
                    }
                }
            }
        }
Exemple #25
0
 public void RegistrationTest()
 {
     Assert.True(LoquiRegistration.TryLocateRegistration(typeof(Mutagen.Bethesda.Oblivion.INpcGetter), out var regis));
     Assert.Same(Npc_Registration.Instance, regis);
 }
Exemple #26
0
 public static void Register()
 {
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GameSetting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GameSettingInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GameSettingFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GameSettingString_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Global_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GlobalInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GlobalShort_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GlobalFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GameSettingBool_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Keyword_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationReferenceType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ActionRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ObjectBounds_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TextureSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Decal_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Class_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Relation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Faction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FormList_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Outfit_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Rank_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.VendorValues_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationTargetRadius_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Condition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ConditionGlobal_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ConditionFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FunctionConditionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.GetEventData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ConditionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Model_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AlternateTexture_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.HeadPart_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Part_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Hair_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Eyes_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Armor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Race_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BodyTemplate_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SkillBoost_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.VoiceType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ColorRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Attack_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AttackData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BodyData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BodyPartData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SkyrimGroup_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SkyrimModHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ModStats_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SkyrimMajorRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SkyrimMod_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RaceMovementType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SpeedOverrides_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EquipType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FaceFxPhonemes_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Phoneme_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.HeadData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.HeadPartReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AvailableMorphs_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Npc_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TintAssets_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TintPreset_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ArtObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImpactDataSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MaterialType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MovementType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundDescriptor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SimpleModel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Morph_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundMarker_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ReverbParameters_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Region_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AcousticSpace_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AVirtualMachineAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptObjectProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptStringProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptIntProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptFloatProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptBoolProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptObjectListProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptStringListProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptIntListProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptFloatListProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptBoolListProperty_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Static_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EffectShader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Light_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Explosion_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectLightArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Projectile_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DualCastData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImageSpaceAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Perk_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Spell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectBoundArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectNpcArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectSpellArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectWerewolfArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectEnchantmentArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectKeywordArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Hazard_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectGuideArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectSpawnHazardArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MagicEffectVampireArchetype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ObjectEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Grass_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LandscapeTexture_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CrimeValues_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Effect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EffectData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Destructible_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Scroll_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DestructionStage_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DestructionStageData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Debris_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Activator_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledSpell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Shout_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Water_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DestructableData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TalkingActivator_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ArmorModel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ArmorAddon_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Book_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BookTeachTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BookSkill_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BookSpell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BookTeachesNothing_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Container_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AlchemicalApparatus_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Ammunition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Ingestible_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Ingredient_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Key_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MiscItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoulGem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Weapon_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ContainerEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ContainerItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ExtraData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.OwnerTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcOwner_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FactionOwner_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NoOwner_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Door_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MaterialObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Lod_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MoveableStatic_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Tree_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SeasonalIngredientProduction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Flora_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Furniture_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorkbenchData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FurnitureMarker_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EntryPoints_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeaponBasicStats_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeaponData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CriticalData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledNpc_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcConfiguration_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ANpcLevel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcLevel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PcLevelMult_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RankPlacement_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkPlacement_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AIData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CombatStyle_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlayerSkills_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ANpcSoundDefinition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcInheritSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcSoundTypes_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcSoundType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Package_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcFaceMorph_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NpcFaceParts_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TintLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ALocationTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedNpc_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationCell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationObjectId_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Cell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.IdleMarker_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationObjectType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationKeyword_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationFallback_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Icons_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MountData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.IdleAnimation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ConstructibleObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CollisionLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledItemEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledItemEntryData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledNpcEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledNpcEntryData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AmbientColors_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LensFlare_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ShaderParticleGeometry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.VisualEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.VolumetricLighting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Weather_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CloudLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherColor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherAlpha_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherImageSpaces_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherVolumetricLighting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherAmbientColorSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Climate_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WeatherType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MusicType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionArea_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionDataHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionSounds_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionSound_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionMap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionObjects_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionWeather_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Worldspace_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionGrasses_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionGrass_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.RegionLand_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ANavigationMesh_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NavigationMeshInfoMap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NavigationMapInfo_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LinkedDoor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.IslandData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PreferredPathing_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NavmeshSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NavmeshNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellGrid_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellLighting_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LightingTemplate_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Location_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Ownership_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellWaterVelocity_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EncounterZone_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellSubBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Landscape_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SkyrimListGroup_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.APlacedTrap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LinkedReferences_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WaterReflection_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ActivateParent_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EnableParent_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedPrimitive_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Bounding_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Portal_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LightData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Alpha_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TeleportDestination_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Message_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WaterVelocity_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ActivateParents_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LockData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NavigationDoorLink_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ATopicReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TopicReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.TopicReferenceSubtype_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogTopic_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Patrol_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MapMarker_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LinkedReferenceColor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceNavigationMesh_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellNavigationMesh_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.NavmeshTriangle_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.EdgeLink_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DoorTriangle_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ANavigationMeshData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceNavigationMeshData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CellNavigationMeshData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedArrow_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedBeam_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedFlame_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedCone_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedBarrier_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedTrap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedHazard_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PlacedMissile_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceSubBlock_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceGridReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceMaxHeight_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceParent_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceLandDefaults_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceMap_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceMapOffset_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WorldspaceObjectBounds_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BaseLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AlphaLayer_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LayerHeader_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogBranch_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogResponses_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Quest_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageScriptFragments_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptFragment_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.VirtualMachineAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogResponse_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogResponsesUnknownData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundOutputModel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogResponseFlags_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestScriptFragment_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestFragmentAlias_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestStage_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestLogEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestObjective_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestObjectiveTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestAlias_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationAliasReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ExternalAliasReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CreateReferenceToObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FindMatchingRefNearAlias_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FindMatchingRefFromEvent_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.QuestTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.APackageData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.APackageTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetSpecificReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetObjectID_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetObjectType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetAlias_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetUnknown_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageTargetSelf_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageBranch_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageRoot_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageFlagsOverride_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageEvent_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataBool_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataInt_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataFloat_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataLocation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataTarget_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataTopic_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageIdles_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PackageDataObjectList_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CombatStyleMelee_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CombatStyleCloseRange_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CombatStyleFlight_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LoadScreen_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Int16MinMax_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledSpellEntry_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LeveledSpellEntryData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AnimatedObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DebrisModel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImageSpace_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImageSpaceHdr_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImageSpaceCinematic_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImageSpaceTint_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImageSpaceDepthOfField_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.KeyFrame_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ColorFrame_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.APerkEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkQuestEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkAbilityEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.APerkEntryPointEffect_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkCondition_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointModifyValue_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointAddRangeToValue_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointModifyActorValue_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointAbsoluteValue_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointAddLeveledItem_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointAddActivateChoice_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointSelectSpell_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointSelectText_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkEntryPointSetText_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkScriptFlag_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogResponsesAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScriptFragments_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.PerkScriptFragments_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.IndexedScriptFragment_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.BodyPart_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AddonNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ActorValueInformation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ActorValueSkill_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ActorValuePerkNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CameraShot_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.CameraPath_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Impact_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ImpactData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.FootstepSet_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationCellUnique_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationCellStaticReference_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationCoordinate_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.LocationCellEnablePoint_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MessageButton_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DefaultObjectManager_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DefaultObject_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MusicTrack_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MusicTypeData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Footstep_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.StoryManagerBranchNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AStoryManagerNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.StoryManagerQuestNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.StoryManagerEventNode_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.StoryManagerQuest_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.MusicTrackLoopData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.DialogView_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.WordOfPower_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ShoutWord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AssociationType_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Relationship_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Scene_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SceneAdapter_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SceneScriptFragments_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScenePhaseFragment_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScenePhase_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.ScenePhaseUnusedData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SceneActor_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SceneAction_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.AnimationChangeThresholds_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundCategory_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundLoopAndRumble_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundOutputChannels_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundOutputChannel_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundOutputAttenuation_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.SoundOutputData_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Skyrim.Internals.Placement_Registration.Instance);
 }
Exemple #27
0
 public MainWindow()
 {
     InitializeComponent();
     Task.Run(() => LoquiRegistration.SpinUp()).FireAndForget();
     this.WireMainVM <MainVM>(System.IO.Path.Combine(Environment.GetEnvironmentVariable("LocalAppData"), $"Mutagen Examples/Settings.json"));
 }
Exemple #28
0
 public static RecordType GetRecordType <T>()
 {
     return((RecordType)LoquiRegistration.GetRegister(typeof(T)) !.GetType().GetField(Mutagen.Bethesda.Internals.Constants.TriggeringRecordTypeMember).GetValue(null));
 }
Exemple #29
0
        public static SettingsNodeVM MemberFactory(SettingsParameters param, string memberName, Type targetType, object?defaultVal)
        {
            switch (targetType.Name)
            {
            case "Boolean":
                return(new BoolSettingsVM(memberName, defaultVal));

            case "SByte":
                return(new Int8SettingsVM(memberName, defaultVal));

            case "Int16":
                return(new Int16SettingsVM(memberName, defaultVal));

            case "Int32":
                return(new Int32SettingsVM(memberName, defaultVal));

            case "Int64":
                return(new Int64SettingsVM(memberName, defaultVal));

            case "Byte":
                return(new UInt8SettingsVM(memberName, defaultVal));

            case "UInt16":
                return(new UInt16SettingsVM(memberName, defaultVal));

            case "UInt32":
                return(new UInt32SettingsVM(memberName, defaultVal));

            case "UInt64":
                return(new UInt64SettingsVM(memberName, defaultVal));

            case "Double":
                return(new DoubleSettingsVM(memberName, defaultVal));

            case "Single":
                return(new FloatSettingsVM(memberName, defaultVal));

            case "Decimal":
                return(new DecimalSettingsVM(memberName, defaultVal));

            case "ModKey":
                return(new ModKeySettingsVM(param.DetectedLoadOrder.Transform(x => x.Listing.ModKey), memberName, defaultVal));

            case "FormKey":
                return(new FormKeySettingsVM(memberName, defaultVal));

            case "Array`1":
            case "List`1":
            case "IEnumerable`1":
            {
                var firstGen = targetType.GenericTypeArguments[0];
                switch (firstGen.Name)
                {
                case "SByte":
                    return(EnumerableNumericSettingsVM.Factory <sbyte, Int8SettingsVM>(memberName, defaultVal, new Int8SettingsVM()));

                case "Int16":
                    return(EnumerableNumericSettingsVM.Factory <short, Int16SettingsVM>(memberName, defaultVal, new Int16SettingsVM()));

                case "Int32":
                    return(EnumerableNumericSettingsVM.Factory <int, Int32SettingsVM>(memberName, defaultVal, new Int32SettingsVM()));

                case "Int64":
                    return(EnumerableNumericSettingsVM.Factory <long, Int64SettingsVM>(memberName, defaultVal, new Int64SettingsVM()));

                case "Byte":
                    return(EnumerableNumericSettingsVM.Factory <byte, UInt8SettingsVM>(memberName, defaultVal, new UInt8SettingsVM()));

                case "UInt16":
                    return(EnumerableNumericSettingsVM.Factory <ushort, UInt16SettingsVM>(memberName, defaultVal, new UInt16SettingsVM()));

                case "UInt32":
                    return(EnumerableNumericSettingsVM.Factory <uint, UInt32SettingsVM>(memberName, defaultVal, new UInt32SettingsVM()));

                case "UInt64":
                    return(EnumerableNumericSettingsVM.Factory <ulong, UInt64SettingsVM>(memberName, defaultVal, new UInt64SettingsVM()));

                case "Double":
                    return(EnumerableNumericSettingsVM.Factory <double, DoubleSettingsVM>(memberName, defaultVal, new DoubleSettingsVM()));

                case "Single":
                    return(EnumerableNumericSettingsVM.Factory <float, FloatSettingsVM>(memberName, defaultVal, new FloatSettingsVM()));

                case "Decimal":
                    return(EnumerableNumericSettingsVM.Factory <decimal, DecimalSettingsVM>(memberName, defaultVal, new DecimalSettingsVM()));

                case "ModKey":
                    return(EnumerableModKeySettingsVM.Factory(param, memberName, defaultVal));

                case "FormKey":
                    return(EnumerableFormKeySettingsVM.Factory(memberName, defaultVal));

                default:
                {
                    if (firstGen.Name.Contains("FormLink") &&
                        firstGen.IsGenericType &&
                        firstGen.GenericTypeArguments.Length == 1)
                    {
                        var formLinkGen = firstGen.GenericTypeArguments[0];
                        if (!LoquiRegistration.TryGetRegister(formLinkGen, out var regis))
                        {
                            throw new ArgumentException($"Can't create a formlink control for type: {formLinkGen}");
                        }
                        return(EnumerableFormLinkSettingsVM.Factory(param, memberName, regis.GetterType, defaultVal));
                    }
                    var foundType = param.Assembly.GetType(firstGen.FullName !);
                    if (foundType != null)
                    {
                        return(new EnumerableObjectSettingsVM(param, memberName, foundType));
                    }
                }
                    return(new UnknownSettingsVM(memberName));
                }
            }

            case "HashSet`1":
            {
                var firstGen = targetType.GenericTypeArguments[0];
                switch (firstGen.Name)
                {
                case "ModKey":
                    return(EnumerableModKeySettingsVM.Factory(param, memberName, defaultVal));

                case "FormKey":
                    return(EnumerableFormKeySettingsVM.Factory(memberName, defaultVal));

                default:
                {
                    if (firstGen.Name.Contains("FormLink") &&
                        firstGen.IsGenericType &&
                        firstGen.GenericTypeArguments.Length == 1)
                    {
                        var formLinkGen = firstGen.GenericTypeArguments[0];
                        if (!LoquiRegistration.TryGetRegister(formLinkGen, out var regis))
                        {
                            throw new ArgumentException($"Can't create a formlink control for type: {formLinkGen}");
                        }
                        return(EnumerableFormLinkSettingsVM.Factory(param, memberName, regis.GetterType, defaultVal));
                    }
                    var foundType = param.Assembly.GetType(firstGen.FullName !);
                    if (foundType != null)
                    {
                        return(new EnumerableObjectSettingsVM(param, memberName, foundType));
                    }
                }
                    return(new UnknownSettingsVM(memberName));
                }
            }

            default:
            {
                if (targetType.Name.Contains("FormLink") &&
                    targetType.IsGenericType &&
                    targetType.GenericTypeArguments.Length == 1)
                {
                    return(new FormLinkSettingsVM(param.LinkCache, memberName, targetType));
                }
                var foundType = param.Assembly.GetType(targetType.FullName !);
                if (foundType != null)
                {
                    return(new ObjectSettingsVM(param, memberName, foundType));
                }
            }
                return(new UnknownSettingsVM(memberName));
            }
        }
 public static void Register()
 {
     LoquiRegistration.Register(Mutagen.Bethesda.Internals.MajorRecord_Registration.Instance);
     LoquiRegistration.Register(Mutagen.Bethesda.Internals.MasterReference_Registration.Instance);
 }