Skip to content

Commit 2a453d2

Browse files
committed
Show default thumbnail for non existing profiles
1 parent 0fbfe25 commit 2a453d2

3 files changed

Lines changed: 18 additions & 7 deletions

File tree

DressCode.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ internal static bool TryGetSceneProfile(CostumeScene scene, out Configuration.Sc
8282
return _config.TryGetSceneProfile(scene, out profile);
8383
}
8484

85+
internal static bool HasEffectiveCostume(Maid maid, CostumeScene scene) {
86+
return TryGetEffectiveCostume(maid, scene, out _);
87+
}
88+
8589
internal static bool TryGetEffectiveCostume(Maid maid, CostumeScene scene, out Configuration.Costume costume) {
8690
var hasMaidProfile = _config.TryGetMaidProfile(maid, scene, out var maidProfile);
8791
var hasSceneProfile = _config.TryGetSceneProfile(scene, out var sceneProfile);
@@ -338,7 +342,7 @@ private static void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
338342
if (nextCostumeScene == CostumeScene.Yotogi) {
339343
LogDebug("Honeymoon yotogi started.");
340344
var maid = HoneymoonManager.Instance.targetMaid;
341-
if (TryGetEffectiveCostume(maid, CostumeScene.Honeymoon, out var costume)) {
345+
if (HasEffectiveCostume(maid, CostumeScene.Honeymoon)) {
342346
RemoveTemporaryCostume(maid);
343347
SetCostume(maid, CostumeScene.Honeymoon);
344348
}

DressCodeControl.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void Init(DressCodeManager manager, CanvasComponent panel) {
8787
if (_privateModeProfile != newProfile) {
8888
DressCode.ResetCostume(privateMaid);
8989
privateMaid.AllProcPropSeqStart();
90-
if (DressCode.TryGetEffectiveCostume(privateMaid, CostumeScene.PrivateMode, out var costume)) {
90+
if (DressCode.HasEffectiveCostume(privateMaid, CostumeScene.PrivateMode)) {
9191
DressCode.SetCostume(privateMaid, CostumeScene.PrivateMode, true);
9292
}
9393
}

Panels/ProfilePanel.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ public ProfilePanel(CanvasComponent parent, DressCodeControl parentControl) : ba
6262
_toggleGroup[e.Value].EditIsEnabled = e.IsSelected;
6363
if (e.IsSelected) {
6464
_selectedProfile = e.Value;
65-
UpdateThumbnail();
6665
if (!_noEventTrigger) {
6766
OnProfileSelected(new() { Profile = e.Value });
6867
}
68+
UpdateThumbnail();
6969
}
7070
};
7171

@@ -131,10 +131,17 @@ public void SelectProfile(CostumeProfile profile) {
131131
}
132132

133133
private void UpdateThumbnail() {
134-
_thumbnailPanel.ThumbnailImage = _selectedProfile switch {
135-
CostumeProfile.Default => (_parentControl.SelectedScope == ProfileScope.Maid ? _parentControl.SelectedMaid : DressCode.GetHeadMaid()).GetThumCard(),
136-
CostumeProfile.Scene => DressCode.GetThumbnail(_parentControl.SelectedScene, null),
137-
CostumeProfile.Personal => DressCode.GetThumbnail(_parentControl.SelectedScene, _parentControl.SelectedMaid),
134+
var selectedMaid = _parentControl.SelectedMaid;
135+
var selectedScene = _parentControl.SelectedScene;
136+
var effectiveProfile = _selectedProfile;
137+
// fall back to default thumbnail if selected profile has no costume defined
138+
if (effectiveProfile != CostumeProfile.Default && !DressCode.HasEffectiveCostume(selectedMaid, selectedScene)) {
139+
effectiveProfile = CostumeProfile.Default;
140+
}
141+
_thumbnailPanel.ThumbnailImage = effectiveProfile switch {
142+
CostumeProfile.Default => (_parentControl.SelectedScope == ProfileScope.Maid ? selectedMaid : DressCode.GetHeadMaid()).GetThumCard(),
143+
CostumeProfile.Scene => DressCode.GetThumbnail(selectedScene, null),
144+
CostumeProfile.Personal => DressCode.GetThumbnail(selectedScene, selectedMaid),
138145
_ => throw new NotImplementedException(),
139146
};
140147
}

0 commit comments

Comments
 (0)