mirror of
https://github.com/amevarashi/RJW-Sexperience.git
synced 2024-08-14 23:54:08 +00:00
More of reusing objects in SexStatusViewModel
This commit is contained in:
parent
bed83e1eca
commit
ffe6a9b7f7
6 changed files with 212 additions and 209 deletions
|
@ -5,29 +5,43 @@ using Verse;
|
|||
|
||||
namespace RJWSexperience.SexHistory.UI
|
||||
{
|
||||
public readonly struct PartnerPortraitInfo
|
||||
public class PartnerPortraitInfo
|
||||
{
|
||||
public readonly SexPartnerHistoryRecord partnerRecord;
|
||||
public readonly bool lover;
|
||||
public readonly Func<Vector2, Texture> portraitGetter;
|
||||
private readonly Pawn _pawn;
|
||||
|
||||
public SexPartnerHistoryRecord PartnerRecord { get; private set; }
|
||||
public bool Lover { get; private set; }
|
||||
public Func<Vector2, Texture> PortraitGetter { get; private set; }
|
||||
|
||||
public PartnerPortraitInfo(Pawn pawn)
|
||||
{
|
||||
_pawn = pawn;
|
||||
}
|
||||
|
||||
public PartnerPortraitInfo(Pawn pawn, SexPartnerHistoryRecord partnerRecord)
|
||||
{
|
||||
this.partnerRecord = partnerRecord;
|
||||
lover = false;
|
||||
_pawn = pawn;
|
||||
UpdatePartnerRecord(partnerRecord);
|
||||
}
|
||||
|
||||
public void UpdatePartnerRecord(SexPartnerHistoryRecord partnerRecord)
|
||||
{
|
||||
PartnerRecord = partnerRecord;
|
||||
|
||||
if (partnerRecord?.Partner != null)
|
||||
{
|
||||
portraitGetter = (size) => PortraitsCache.Get(partnerRecord.Partner, size, Rot4.South, default, 1, true, true, false, false);
|
||||
lover = LovePartnerRelationUtility.LovePartnerRelationExists(pawn, partnerRecord.Partner);
|
||||
PortraitGetter = (size) => PortraitsCache.Get(partnerRecord.Partner, size, Rot4.South, default, 1, true, true, false, false);
|
||||
Lover = LovePartnerRelationUtility.LovePartnerRelationExists(_pawn, partnerRecord.Partner);
|
||||
}
|
||||
else if (partnerRecord?.Race?.uiIcon != null)
|
||||
{
|
||||
portraitGetter = (_) => partnerRecord.Race.uiIcon;
|
||||
PortraitGetter = (_) => partnerRecord.Race.uiIcon;
|
||||
Lover = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
portraitGetter = (_) => HistoryUtility.UnknownPawn;
|
||||
PortraitGetter = (_) => HistoryUtility.UnknownPawn;
|
||||
Lover = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue