private void UpdateMapping(Outfit outfit, Model model) { DefaultOutfits.TryGetValue(outfit, out var defaultOutfit); outfit.Modified = !defaultOutfit.ModelId.Equals(model.Id); outfit.ModelId.AssignFromOther(model.Id); }
public override async Task Initialize() { ResetSelected.Enabled = false; IoC.Notif.ShowUnknownProgress(); IoC.Notif.ShowStatus("Loading outfit list..."); DefaultOutfits = (await OutfitGen.GenerateOutfits( IoC.Archiver.LoadGameFileAsync)).ToHashSet(); //some outfits, like undergarments, are never used in game by the player and only create problems if switched var ignored = IoC.Get <OutfitConfig>().IgnoredOutfits.ToHashSet(); Outfits = DefaultOutfits .Where(x => !ignored.Contains(x.Name)) .Select(x => x.Clone()).OrderBy(x => x.DisplayName) .ToList().AsReadOnly(); PopulateOutfitsList(); await UpdateModelList(); UpdateAllOutfitsSelection(); //start loading characters in background Async.Run(() => CharacterGen.GetCharacterModels(true)).Forget(); }
public override void ApplyChanges(Patch patch) { var models = OutfitGen.GenerateModelList(IoC.Archiver.LoadGameFile); models.AddRange(CharacterGen.GetCharacterModels(true)); Patcher.CreatePatch(patch, DefaultOutfits.ToList(), Outfits, models); }
protected override Task ResetSelected_Click() { if (lbOutfits.SelectedIndex < 0) { return(Task.CompletedTask); } var selected = GetSelectedOutfits(); foreach (var outfit in selected) { if (DefaultOutfits.TryGetValue(outfit, out var defaultOutfit)) { outfit.Modified = false; outfit.ModelId.AssignFromOther(defaultOutfit.ModelId); } } lbOutfits_SelectionChanged(lbOutfits, null); return(Task.CompletedTask); }
private static void ConfigureStatPriorities(DefaultOutfits outfitName, ExtendedOutfit outfit) { switch (outfitName) { case DefaultOutfits.Anything: case DefaultOutfits.Worker: case DefaultOutfits.Nudist: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.BaseWorkerStatPriorities); break; case DefaultOutfits.Doctor: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.DoctorWorkTypeStatPriorities); break; case DefaultOutfits.Warden: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.WardenWorkTypeStatPriorities); break; case DefaultOutfits.Handler: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.HandlingWorkTypeStatPriorities); break; case DefaultOutfits.Cook: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.CookingWorkTypeStatPriorities); break; case DefaultOutfits.Hunter: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.HuntingWorkTypeStatPriorities); break; case DefaultOutfits.Builder: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.ConstructionWorkTypeStatPriorities); break; case DefaultOutfits.Grower: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.GrowingWorkTypeStatPriorities); break; case DefaultOutfits.Miner: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.MiningWorkTypeStatPriorities); break; case DefaultOutfits.Smith: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.SmithingWorkTypeStatPriorities); break; case DefaultOutfits.Tailor: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.TailoringWorkTypeStatPriorities); break; case DefaultOutfits.Artist: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.ArtWorkTypeStatPriorities); break; case DefaultOutfits.Crafter: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.CraftingWorkTypeStatPriorities); break; case DefaultOutfits.Hauler: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.HaulingWorkTypeStatPriorities); break; case DefaultOutfits.Cleaner: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.CleaningWorkTypeStatPriorities); break; case DefaultOutfits.Researcher: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.ResearchWorkTypeStatPriorities); break; case DefaultOutfits.Brawler: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.BrawlerStatPriorities); break; case DefaultOutfits.Soldier: outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.SoldierStatPriorities); break; default: throw new ArgumentOutOfRangeException(message: "Unexpected default outfit", null); } }