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); }
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(); }
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 !;
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); }
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)); }
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 !;
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); }
static MajorRecordPrinter() { var t = typeof(TMajor); if (LoquiRegistration.TryGetRegister(t, out var regis)) { _TypeString = $"{regis.ProtocolKey.Namespace}.{t.Name}"; } else { _TypeString = t.Name; } }
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(); }
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); }
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); }
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}"); } }
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); }
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); } } } } } }
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); } } } } } }
public void RegistrationTest() { Assert.True(LoquiRegistration.TryLocateRegistration(typeof(Mutagen.Bethesda.Oblivion.INpcGetter), out var regis)); Assert.Same(Npc_Registration.Instance, regis); }
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); }
public MainWindow() { InitializeComponent(); Task.Run(() => LoquiRegistration.SpinUp()).FireAndForget(); this.WireMainVM <MainVM>(System.IO.Path.Combine(Environment.GetEnvironmentVariable("LocalAppData"), $"Mutagen Examples/Settings.json")); }
public static RecordType GetRecordType <T>() { return((RecordType)LoquiRegistration.GetRegister(typeof(T)) !.GetType().GetField(Mutagen.Bethesda.Internals.Constants.TriggeringRecordTypeMember).GetValue(null)); }
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); }