Elin Decompiled Documentation EA 23.320 Nyaightly Patch 1
Loading...
Searching...
No Matches
Portrait Class Reference
Inheritance diagram for Portrait:
UIButton IUISkin

Public Member Functions

void SetPerson (Person p)
 
void SetChara (Chara c, PCCData pccData=null)
 
Color GetRandomHairColor (Chara c)
 
void SetPortrait (string id, Color colorOverlay=default(Color), bool applyColorMod=true)
 
void SetPortrait (bool isPortrait, Sprite spritePortrait, Sprite spriteOverlay=null, Color colorOverlay=default(Color), Sprite spriteFull=null)
 
- Public Member Functions inherited from UIButton
virtual bool CanMiddleClick ()
 
virtual void OnMiddleClick (bool forceClick)
 
void SetItem (Item i)
 
virtual void RefreshItem ()
 
virtual void OnHover ()
 
void Toggle ()
 
void ToggleCheck ()
 
void SetCheck (bool check)
 
void SetToggle (bool isOn, Action< bool > onToggle=null)
 
void SetToggleWithScore (bool isOn, Action< bool > onToggle, int? score)
 
void SetTooltip (Action< UITooltip > onShowTooltip=null, bool enable=true)
 
void SetTooltip (string id, Action< UITooltip > onShowTooltip=null, bool enable=true)
 
void SetTooltipLang (string lang=null)
 
virtual void ShowTooltip ()
 
void ShowTooltipForced (bool ignoreWhenRightClick=true)
 
override void OnPointerDown (PointerEventData eventData)
 
override void OnPointerClick (PointerEventData eventData)
 
override void OnPointerUp (PointerEventData eventData)
 
void OnPointerUpOnDrag (PointerEventData eventData)
 
void _OnPress ()
 
void OnPress ()
 
void AddHighlight (Func< bool > killCondition)
 
void DoHighlightTransition (bool instant=false)
 
void DoNormalTransition (bool instant=true)
 
override Selectable FindSelectableOnDown ()
 
override Selectable FindSelectableOnUp ()
 
override Selectable FindSelectableOnLeft ()
 
override Selectable FindSelectableOnRight ()
 
void SetNavigation (UIButton up, UIButton down=null, UIButton left=null, UIButton right=null)
 
override bool IsActive ()
 
void SetInteractableWithAlpha (bool enable)
 
virtual void ApplySkin ()
 
void ApplySkin ()
 

Static Public Member Functions

static List< ModItem< Sprite > > ListPlayerPortraits (int gender, bool nullPortrait=false)
 
static List< ModItem< Sprite > > ListPortraits (string idDict)
 
static List< ModItem< Sprite > > ListPortraits (int gender, string cat)
 
static string GetRandomPortrait (string idDict)
 
static string GetRandomPortrait (int gender, string cat)
 
static bool Exists (string id)
 
- Static Public Member Functions inherited from UIButton
static void UpdateButtons ()
 
static void TryHihlight ()
 
static void TryShowTip (Transform root=null, bool highlight=true, bool ignoreWhenRightClick=true)
 
static void TryShowTip< T > (Transform root=null, bool highlight=true, bool ignoreWhenRightClick=false)
 

Public Attributes

Image portrait
 
Image overlay
 
Image imageChara
 
Image imageFaith
 
Image imageFull
 
Image imageFrame
 
Sprite spriteNoPortrait
 
bool enableFull = true
 
bool hideIfNoPortrait
 
bool fixSpritePos = true
 
bool showPortrait = true
 
float charaScale = 1f
 
- Public Attributes inherited from UIButton
UIText mainText
 
UIText subText
 
UIText subText2
 
UIText keyText
 
Image icon
 
Image imageCheck
 
Graphic[] targetGraphics
 
float scaleIcon = 1f
 
float slideX
 
float navigationFix
 
bool isChecked
 
bool instantClick = true
 
UISelectableGroup group
 
TooltipData tooltip
 
SoundData soundClick
 
SoundData soundHighlight
 
Transform animeTarget
 
Anime animeClick
 
Anime animeHold
 
ButtonType buttonType
 
BaseSkinRoot skinRoot
 
Action onDoubleClick
 
Action onRightClick
 
Action< int > onInputWheel
 
object refObj
 
int refInt
 
string refStr
 
bool animating
 
bool selected
 
Vector3 originalIconScale = Vector3.one
 
UIButton highlightTarget
 
Item item
 

Static Public Attributes

static ModItemList< Sprite > modPortraitBGFs = new ModItemList<Sprite>(3)
 
static ModItemList< Sprite > modPortraitBGs = new ModItemList<Sprite>(3)
 
static ModItemList< Sprite > modPortraits = new ModItemList<Sprite>(3)
 
static ModItemList< Sprite > modOverlays = new ModItemList<Sprite>(3)
 
static ModItemList< Sprite > modFull = new ModItemList<Sprite>(3)
 
static Dictionary< string, List< ModItem< Sprite > > > dictList = new Dictionary<string, List<ModItem<Sprite>>>()
 
static HashSet< string > allIds = new HashSet<string>()
 
- Static Public Attributes inherited from UIButton
static bool DoSlide
 
static bool locked
 
static UIButton lastButton
 
static UIButton lastHovered
 
static UIButton currentHighlight
 
static UIButton currentPressedButton
 
static float lastClicked
 
static float doubleClickTime = 0.4f
 
static Vector2 buttonPos
 
static Action onPressed
 
static List< UIButtonbuttons = new List<UIButton>()
 
static Action actionTooltip
 

Private Attributes

FilterMode filter
 

Additional Inherited Members

- Protected Member Functions inherited from UIButton
override void Awake ()
 
override void OnEnable ()
 
override void DoStateTransition (SelectionState state, bool instant)
 
- Properties inherited from UIButton
List< Graphic > Graphics [get]
 
virtual bool CanDragLeftButton [get]
 

Detailed Description

Definition at line 6 of file Portrait.cs.

Member Function Documentation

◆ Exists()

static bool Portrait.Exists ( string  id)
inlinestatic

Definition at line 115 of file Portrait.cs.

116 {
117 return modPortraits.dict.ContainsKey(id);
118 }
Dictionary< string, ModItem< T > > dict
Definition: ModItemList.cs:11
static ModItemList< Sprite > modPortraits
Definition: Portrait.cs:12

References ModItemList< T >.dict, and modPortraits.

◆ GetRandomHairColor()

Color Portrait.GetRandomHairColor ( Chara  c)
inline

Definition at line 222 of file Portrait.cs.

223 {
224 Rand.SetSeed(c.uid);
225 Color randomColor = PCCManager.current.GetBodySet("female").map["hair"].GetRandomColor();
226 Rand.SetSeed();
227 return randomColor;
228 }
int uid
Definition: Card.cs:125
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:44

References Color, Rand.SetSeed(), and Card.uid.

Referenced by LayerEditPortrait.Activate(), and SetChara().

◆ GetRandomPortrait() [1/2]

static string Portrait.GetRandomPortrait ( int  gender,
string  cat 
)
inlinestatic

Definition at line 110 of file Portrait.cs.

111 {
112 return ListPortraits(gender, cat).RandomItem().id;
113 }
static List< ModItem< Sprite > > ListPortraits(string idDict)
Definition: Portrait.cs:59

References ListPortraits().

◆ GetRandomPortrait() [2/2]

static string Portrait.GetRandomPortrait ( string  idDict)
inlinestatic

Definition at line 105 of file Portrait.cs.

106 {
107 return ListPortraits(idDict).RandomItem().id;
108 }

References ListPortraits().

Referenced by Chara.ApplyEditorTags(), UICharaMaker.ListGender(), and Biography.SetPortrait().

◆ ListPlayerPortraits()

static List< ModItem< Sprite > > Portrait.ListPlayerPortraits ( int  gender,
bool  nullPortrait = false 
)
inlinestatic

Definition at line 48 of file Portrait.cs.

49 {
50 List<ModItem<Sprite>> list = ListPortraits(gender, "c").Concat(ListPortraits(gender, "guard")).Concat(ListPortraits(gender, "special")).Concat(ListPortraits(gender, "foxfolk"))
51 .ToList();
52 if (nullPortrait)
53 {
54 list.Insert(0, new ModItem<Sprite>(null));
55 }
56 return list;
57 }

References ListPortraits().

Referenced by LayerEditPCC.SetPortraitSlider().

◆ ListPortraits() [1/2]

static List< ModItem< Sprite > > Portrait.ListPortraits ( int  gender,
string  cat 
)
inlinestatic

Definition at line 77 of file Portrait.cs.

78 {
79 if (cat.IsEmpty())
80 {
81 cat = "c";
82 }
83 string key = cat + gender;
84 List<ModItem<Sprite>> list = dictList.TryGetValue(key);
85 if (list == null || list.Count == 0)
86 {
87 list = new List<ModItem<Sprite>>();
89 {
90 string[] array = item.id.Split('-')[0].Split('_');
91 if (!(array[0] != cat))
92 {
93 int num = ((array.Length > 1) ? ((array[1] == "m") ? 2 : ((array[1] == "f") ? 1 : 0)) : 0);
94 if (num == 0 || gender == 0 || gender == num)
95 {
96 list.Add(item);
97 }
98 }
99 }
100 dictList.Add(key, list);
101 }
102 return list;
103 }
List< ModItem< T > > list
Definition: ModItemList.cs:9
static Dictionary< string, List< ModItem< Sprite > > > dictList
Definition: Portrait.cs:18
Item item
Definition: UIButton.cs:172

References dictList, UIButton.item, ModItemList< T >.list, and modPortraits.

◆ ListPortraits() [2/2]

static List< ModItem< Sprite > > Portrait.ListPortraits ( string  idDict)
inlinestatic

Definition at line 59 of file Portrait.cs.

60 {
61 List<ModItem<Sprite>> list = dictList.TryGetValue(idDict);
62 if (list == null || list.Count == 0)
63 {
64 list = new List<ModItem<Sprite>>();
66 {
67 if (item.id.Contains(idDict))
68 {
69 list.Add(item);
70 }
71 }
72 dictList.Add(idDict, list);
73 }
74 return list;
75 }

References dictList, UIButton.item, ModItemList< T >.list, and modPortraits.

Referenced by GetRandomPortrait(), ListPlayerPortraits(), and LayerEditPortrait.RefreshList().

◆ SetChara()

void Portrait.SetChara ( Chara  c,
PCCData  pccData = null 
)
inline

Definition at line 143 of file Portrait.cs.

144 {
145 portrait.enabled = true;
146 overlay.enabled = true;
147 if ((bool)imageChara)
148 {
149 imageChara.sprite = c.GetSprite();
150 imageChara.SetNativeSize();
151 if (fixSpritePos)
152 {
153 if (c.IsPCC)
154 {
155 imageChara.rectTransform.localScale = new Vector3(1.3f, 1.4f, 1f) * charaScale;
156 imageChara.rectTransform.anchoredPosition = new Vector2(-25f, 10f);
157 imageChara.rectTransform.pivot = new Vector2(0.5f, 0.3f);
158 }
159 else
160 {
161 imageChara.rectTransform.localScale = Vector3.one * charaScale;
162 imageChara.rectTransform.anchoredPosition = new Vector2(-25f, 28f);
163 imageChara.rectTransform.pivot = c.source.renderData.imagePivot;
164 SourcePref pref = c.Pref;
165 float num = imageChara.sprite.rect.height / 128f;
166 imageChara.rectTransform.localPosition += new Vector3(pref.pivotX, (float)pref.pivotY * num, 0f);
167 }
168 }
169 }
170 if ((bool)imageFaith)
171 {
172 imageFaith.sprite = c.faith.GetSprite();
173 }
174 if (c.GetIdPortrait().IsEmpty() || modPortraits.GetItem(c.GetIdPortrait(), returnNull: true) == null)
175 {
177 {
178 portrait.enabled = false;
179 overlay.enabled = false;
180 return;
181 }
182 if ((bool)spriteNoPortrait)
183 {
184 SetPortrait(isPortrait: false, spriteNoPortrait);
185 return;
186 }
187 SetPortrait(isPortrait: false, c.GetSprite());
189 portrait.transform.localScale = new Vector3(1f, 1f, 1f);
190 portrait.preserveAspect = true;
191 portrait.SetNativeSize();
192 portrait.Rect().SetAnchor(0.5f, 0f, 0.5f, 0f);
193 portrait.Rect().SetPivot(0.5f, 0f);
194 portrait.Rect().anchoredPosition = new Vector2(0f, 0f);
195 portrait.material = EClass.core.refs.matUIPortraitChara;
196 return;
197 }
198 if (pccData == null && c.isChara)
199 {
200 pccData = c.Chara.pccData;
201 }
202 Color colorOverlay = pccData?.GetHairColor(applyMod: true) ?? Color.white;
203 overlay.enabled = true;
204 if (pccData == null)
205 {
206 if (c.GetInt(105) != 0)
207 {
208 colorOverlay = IntColor.FromInt(c.GetInt(105));
209 }
210 else
211 {
212 colorOverlay = GetRandomHairColor(c);
213 if (c.id == "shojo")
214 {
215 overlay.enabled = false;
216 }
217 }
218 }
219 SetPortrait(c.GetIdPortrait(), colorOverlay);
220 }
virtual Chara Chara
Definition: Card.cs:2122
string id
Definition: Card.cs:36
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:6503
int GetInt(string id, int? defaultInt=null)
Definition: Card.cs:2551
override SourcePref Pref
Definition: Chara.cs:805
override Sprite GetSprite(int dir=0)
Definition: Chara.cs:6924
override bool isChara
Definition: Chara.cs:704
SourceChara.Row source
Definition: Chara.cs:162
Religion faith
Definition: Chara.cs:443
string GetIdPortrait()
Definition: Chara.cs:8476
PCCData pccData
Definition: Chara.cs:67
override bool IsPCC
Definition: Chara.cs:700
Material matUIPortraitChara
Definition: CoreRef.cs:408
CoreRef refs
Definition: Core.cs:51
Definition: EClass.cs:6
static Core core
Definition: EClass.cs:7
static Color32 FromInt(int i)
Definition: IntColor.cs:15
ModItem< T > GetItem(string id, bool returnNull=false)
Definition: ModItemList.cs:61
Sprite spriteNoPortrait
Definition: Portrait.cs:34
bool fixSpritePos
Definition: Portrait.cs:40
void SetPortrait(string id, Color colorOverlay=default(Color), bool applyColorMod=true)
Definition: Portrait.cs:230
Color GetRandomHairColor(Chara c)
Definition: Portrait.cs:222
Image imageFaith
Definition: Portrait.cs:28
Image portrait
Definition: Portrait.cs:22
bool hideIfNoPortrait
Definition: Portrait.cs:38
Image imageChara
Definition: Portrait.cs:26
float charaScale
Definition: Portrait.cs:44
virtual Sprite GetSprite()
Definition: Religion.cs:86

References Card.Chara, charaScale, Color, EClass.core, Chara.faith, fixSpritePos, IntColor.FromInt(), Chara.GetIdPortrait(), Card.GetInt(), ModItemList< T >.GetItem(), GetRandomHairColor(), Religion.GetSprite(), Chara.GetSprite(), hideIfNoPortrait, Card.id, imageChara, imageFaith, Chara.isChara, Chara.IsPCC, CoreRef.matUIPortraitChara, modPortraits, Chara.pccData, SourcePref.pivotX, SourcePref.pivotY, portrait, Chara.Pref, Core.refs, Card.SetImage(), SetPortrait(), Chara.source, and spriteNoPortrait.

Referenced by LayerEditPortrait.Activate(), UICharaMaker.EditPCC(), UICharaMaker.ListGender(), LayerEditPCC.OnClickChangePortrait(), UICharaMaker.OnClickChangePortrait(), LayerEditPortrait.OnClickClear(), WindowChara.OnClickPortrait(), LayerEditPortrait.RefreshList(), WindowChara.RefreshStatic(), UICharaMaker.RerollHair(), UICharaMaker.RerollPCC(), ButtonGeneral.SetCard(), ButtonRoster.SetChara(), UICharaMaker.SetChara(), ItemGachaResult.SetChara(), ButtonChara.SetChara(), and SetPerson().

◆ SetPerson()

void Portrait.SetPerson ( Person  p)
inline

Definition at line 120 of file Portrait.cs.

121 {
122 base.gameObject.SetActive(value: true);
123 if (p.hasChara && p.chara.GetIdPortrait() == p.idPortrait)
124 {
125 SetChara(p.chara);
126 }
127 else if (!p.idPortrait.IsEmpty())
128 {
130 SetPortrait(p.idPortrait, PCCManager.current.GetBodySet("female").map["hair"].GetRandomColor());
131 Rand.SetSeed();
132 }
133 else if (p.source != null)
134 {
135 SetPortrait(p.source.portrait);
136 }
137 else
138 {
139 base.gameObject.SetActive(value: false);
140 }
141 }
SourcePerson.Row source
Definition: Person.cs:34
string idPortrait
Definition: Person.cs:11
bool hasChara
Definition: Person.cs:38
int uidChara
Definition: Person.cs:20
Chara chara
Definition: Person.cs:36
void SetChara(Chara c, PCCData pccData=null)
Definition: Portrait.cs:143

References Person.chara, Chara.GetIdPortrait(), Person.hasChara, Person.idPortrait, SetChara(), SetPortrait(), Rand.SetSeed(), Person.source, and Person.uidChara.

Referenced by ContentQuest.SelectQuest(), ItemQuest.SetQuest(), and DramaActor.Talk().

◆ SetPortrait() [1/2]

void Portrait.SetPortrait ( bool  isPortrait,
Sprite  spritePortrait,
Sprite  spriteOverlay = null,
Color  colorOverlay = default(Color),
Sprite  spriteFull = null 
)
inline

Definition at line 242 of file Portrait.cs.

243 {
244 filter = ((isPortrait && Core.Instance.config.test.aaPortrait) ? FilterMode.Bilinear : FilterMode.Point);
245 portrait.rectTransform.anchorMin = overlay.rectTransform.anchorMin;
246 portrait.rectTransform.anchorMax = overlay.rectTransform.anchorMax;
247 portrait.rectTransform.sizeDelta = overlay.rectTransform.sizeDelta;
248 if ((bool)spritePortrait)
249 {
250 portrait.sprite = spritePortrait;
251 FixTexture(spritePortrait);
252 }
253 if ((bool)overlay)
254 {
255 FixTexture(spriteOverlay);
256 overlay.sprite = spriteOverlay;
257 overlay.color = new Color(colorOverlay.r * 1.1f, colorOverlay.g * 1.1f, colorOverlay.b * 1.1f, colorOverlay.a);
258 overlay.SetActive(spriteOverlay);
259 }
260 if (enableFull && (bool)imageFull)
261 {
262 FixTexture(spriteFull);
263 imageFull.sprite = spriteFull;
264 base.gameObject.SetActive(!spriteFull);
265 imageFull.SetActive(spriteFull);
266 }
267 if (!showPortrait)
268 {
269 portrait.SetActive(enable: false);
270 overlay.SetActive(enable: false);
271 }
272 void FixTexture(Sprite s)
273 {
274 if ((bool)s && isPortrait)
275 {
276 s.texture.wrapMode = TextureWrapMode.Clamp;
277 if (s.texture.filterMode != filter)
278 {
279 s.texture.filterMode = filter;
280 }
281 }
282 }
283 }
Definition: Core.cs:14
static new Core Instance
Definition: Core.cs:15
CoreConfig config
Definition: Core.cs:70
bool showPortrait
Definition: Portrait.cs:42
FilterMode filter
Definition: Portrait.cs:46
Image imageFull
Definition: Portrait.cs:30
bool enableFull
Definition: Portrait.cs:36
Image overlay
Definition: Portrait.cs:24

References CoreConfig.Test.aaPortrait, Color, Core.config, enableFull, filter, imageFull, Core.Instance, overlay, portrait, showPortrait, and CoreConfig.test.

◆ SetPortrait() [2/2]

void Portrait.SetPortrait ( string  id,
Color  colorOverlay = default(Color),
bool  applyColorMod = true 
)
inline

Definition at line 230 of file Portrait.cs.

231 {
232 Sprite @object = modPortraits.GetItem(id).GetObject();
233 Sprite object2 = modOverlays.GetObject(id + "-overlay");
234 Sprite spriteFull = ((enableFull && (bool)imageFull) ? modFull.GetObject(id + "-full") : null);
235 if (applyColorMod)
236 {
237 colorOverlay = PCCManager.current.ApplyColorMod(colorOverlay);
238 }
239 SetPortrait(isPortrait: true, @object, object2, colorOverlay, spriteFull);
240 }
T GetObject(string id, object option=null)
Definition: ModItemList.cs:75
static ModItemList< Sprite > modOverlays
Definition: Portrait.cs:14
static ModItemList< Sprite > modFull
Definition: Portrait.cs:16

References enableFull, ModItemList< T >.GetItem(), ModItemList< T >.GetObject(), imageFull, modFull, modOverlays, modPortraits, and SetPortrait().

Referenced by LayerLoadGame.RefreshInfo(), LayerEditPortrait.RefreshList(), SetChara(), SetPerson(), and SetPortrait().

Member Data Documentation

◆ allIds

HashSet<string> Portrait.allIds = new HashSet<string>()
static

◆ charaScale

float Portrait.charaScale = 1f

Definition at line 44 of file Portrait.cs.

Referenced by SetChara().

◆ dictList

Dictionary<string, List<ModItem<Sprite> > > Portrait.dictList = new Dictionary<string, List<ModItem<Sprite>>>()
static

Definition at line 18 of file Portrait.cs.

Referenced by ListPortraits().

◆ enableFull

bool Portrait.enableFull = true

Definition at line 36 of file Portrait.cs.

Referenced by SetPortrait().

◆ filter

FilterMode Portrait.filter
private

Definition at line 46 of file Portrait.cs.

Referenced by SetPortrait().

◆ fixSpritePos

bool Portrait.fixSpritePos = true

Definition at line 40 of file Portrait.cs.

Referenced by SetChara().

◆ hideIfNoPortrait

bool Portrait.hideIfNoPortrait

Definition at line 38 of file Portrait.cs.

Referenced by SetChara().

◆ imageChara

Image Portrait.imageChara

Definition at line 26 of file Portrait.cs.

Referenced by SetChara().

◆ imageFaith

Image Portrait.imageFaith

Definition at line 28 of file Portrait.cs.

Referenced by SetChara().

◆ imageFrame

Image Portrait.imageFrame

Definition at line 32 of file Portrait.cs.

◆ imageFull

Image Portrait.imageFull

Definition at line 30 of file Portrait.cs.

Referenced by SetPortrait().

◆ modFull

ModItemList<Sprite> Portrait.modFull = new ModItemList<Sprite>(3)
static

Definition at line 16 of file Portrait.cs.

Referenced by ModPackage.ParsePortrait(), and SetPortrait().

◆ modOverlays

ModItemList<Sprite> Portrait.modOverlays = new ModItemList<Sprite>(3)
static

Definition at line 14 of file Portrait.cs.

Referenced by ModPackage.ParsePortrait(), and SetPortrait().

◆ modPortraitBGFs

ModItemList<Sprite> Portrait.modPortraitBGFs = new ModItemList<Sprite>(3)
static

◆ modPortraitBGs

ModItemList<Sprite> Portrait.modPortraitBGs = new ModItemList<Sprite>(3)
static

◆ modPortraits

ModItemList<Sprite> Portrait.modPortraits = new ModItemList<Sprite>(3)
static

◆ overlay

Image Portrait.overlay

Definition at line 24 of file Portrait.cs.

Referenced by SetPortrait().

◆ portrait

Image Portrait.portrait

Definition at line 22 of file Portrait.cs.

Referenced by SetChara(), and SetPortrait().

◆ showPortrait

bool Portrait.showPortrait = true

Definition at line 42 of file Portrait.cs.

Referenced by SetPortrait().

◆ spriteNoPortrait

Sprite Portrait.spriteNoPortrait

Definition at line 34 of file Portrait.cs.

Referenced by SetChara().


The documentation for this class was generated from the following file: