Beispiel #1
0
 public static GameEnvironmentState <ISkyrimMod, ISkyrimModGetter> Skyrim(
     this GameEnvironment env,
     SkyrimRelease gameRelease,
     LinkCachePreferences?linkCachePrefs = null)
 {
     return(env.Construct <ISkyrimMod, ISkyrimModGetter>(gameRelease.ToGameRelease(), linkCachePrefs));
 }
Beispiel #2
0
 public Global(
     FormKey formKey,
     SkyrimRelease gameRelease)
 {
     this.FormKey     = formKey;
     this.FormVersion = gameRelease.ToGameRelease().GetDefaultFormVersion() !.Value;
     CustomCtor();
 }
Beispiel #3
0
        public void AddAHearthFiresThing(SkyrimRelease release)
        {
            var xHFSxConstructionFLSTFormLink = release switch
            {
                SkyrimRelease.SkyrimLE => HearthFireStores_GS.FormList.xHFSxConstructionFLST,
                SkyrimRelease.SkyrimSE or SkyrimRelease.SkyrimVR => GeneralStores.FormList.xHFSxConstructionFLST,
                _ => throw new ArgumentException(null, nameof(release)),
            };

            var gameRelease = release switch
            {
                SkyrimRelease.SkyrimLE => GameRelease.SkyrimLE,
                SkyrimRelease.SkyrimSE => GameRelease.SkyrimSE,
                SkyrimRelease.SkyrimVR => GameRelease.SkyrimVR,
                _ => throw new ArgumentException(null, nameof(release)),
            };

            var generalStores = new SkyrimMod(xHFSxConstructionFLSTFormLink.FormKey.ModKey, release);

            var xHFSxConstructionFLST = new FormList(xHFSxConstructionFLSTFormLink.FormKey, release);

            generalStores.FormLists.Add(xHFSxConstructionFLST);

            SkyrimMod masterMod = new(masterModKey, release);

            var newThing = masterMod.MiscItems.AddNew("newItem");

            SkyrimMod patchMod = new(patchModKey, release);

            var loadOrder = new LoadOrder <IModListing <ISkyrimModGetter> >
            {
                new ModListing <ISkyrimModGetter>(generalStores, true),
                new ModListing <ISkyrimModGetter>(masterMod, true),
                new ModListing <ISkyrimModGetter>(patchMod, true)
            };

            var linkCache = loadOrder.ToImmutableLinkCache();

            Program program = new(loadOrder, linkCache, patchMod, gameRelease);

            program.hearthFiresConstructionSet.Add(newThing.AsLink());

            program.RecordClassifiedItems();

            Assert.Single(patchMod.FormLists);

            var updatedFlst = patchMod.FormLists.Single();

            Assert.Equal(xHFSxConstructionFLSTFormLink, updatedFlst.AsLink());

            Assert.Single(updatedFlst.Items);

            var newThingLink = updatedFlst.Items.Single();

            Assert.False(newThingLink.IsNull);

            Assert.Equal(newThing.AsLink(), newThingLink);
        }
 public SkyrimRecords_Tests(SkyrimRelease release) : base(new SkyrimMod(patchModKey, release))
 {
     this.release = release;
 }
Beispiel #5
0
 public static IReadOnlyCollection <ModKey> Skyrim(
     this ImplicitBaseMasters _,
     SkyrimRelease release)
 {
     return(Implicits.Get(release.ToGameRelease()).BaseMasters);
 }
Beispiel #6
0
 public static IReadOnlyCollection <FormKey> Skyrim(
     this ImplicitRecordFormKeys _,
     SkyrimRelease release)
 {
     return(Implicits.Get(release.ToGameRelease()).RecordFormKeys);
 }
Beispiel #7
0
 public static IReadOnlyCollection <ModKey> Skyrim(
     this ImplicitListings _,
     SkyrimRelease release)
 {
     return(Implicits.Get(release.ToGameRelease()).Listings);
 }