Elin Decompiled Documentation EA 23.287 Stable Patch 3
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 210 of file Portrait.cs.

211 {
212 Rand.SetSeed(c.uid);
213 Color randomColor = PCCManager.current.GetBodySet("female").map["hair"].GetRandomColor();
214 Rand.SetSeed();
215 return randomColor;
216 }
int uid
Definition: Card.cs:123
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 imageChara.transform.localScale = (c.IsPCC ? new Vector3(1.3f, 1.4f, 1f) : new Vector3(1f, 1f, 1f)) * charaScale;
154 imageChara.rectTransform.pivot = (c.IsPCC ? new Vector2(0.5f, 0.3f) : new Vector2(0.5f, 0.2f));
155 imageChara.rectTransform.anchoredPosition = (c.IsPCC ? new Vector2(-25f, 20f) : new Vector2(-25f, 20f));
156 }
157 }
158 if ((bool)imageFaith)
159 {
160 imageFaith.sprite = c.faith.GetSprite();
161 }
162 if (c.GetIdPortrait().IsEmpty() || modPortraits.GetItem(c.GetIdPortrait(), returnNull: true) == null)
163 {
165 {
166 portrait.enabled = false;
167 overlay.enabled = false;
168 return;
169 }
170 if ((bool)spriteNoPortrait)
171 {
172 SetPortrait(isPortrait: false, spriteNoPortrait);
173 return;
174 }
175 SetPortrait(isPortrait: false, c.GetSprite());
177 portrait.transform.localScale = new Vector3(1f, 1f, 1f);
178 portrait.preserveAspect = true;
179 portrait.SetNativeSize();
180 portrait.Rect().SetAnchor(0.5f, 0f, 0.5f, 0f);
181 portrait.Rect().SetPivot(0.5f, 0f);
182 portrait.Rect().anchoredPosition = new Vector2(0f, 0f);
183 portrait.material = EClass.core.refs.matUIPortraitChara;
184 return;
185 }
186 if (pccData == null && c.isChara)
187 {
188 pccData = c.Chara.pccData;
189 }
190 Color colorOverlay = pccData?.GetHairColor(applyMod: true) ?? Color.white;
191 overlay.enabled = true;
192 if (pccData == null)
193 {
194 if (c.GetInt(105) != 0)
195 {
196 colorOverlay = IntColor.FromInt(c.GetInt(105));
197 }
198 else
199 {
200 colorOverlay = GetRandomHairColor(c);
201 if (c.id == "shojo")
202 {
203 overlay.enabled = false;
204 }
205 }
206 }
207 SetPortrait(c.GetIdPortrait(), colorOverlay);
208 }
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
virtual Chara Chara
Definition: Card.cs:2108
string id
Definition: Card.cs:36
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:6316
override Sprite GetSprite(int dir=0)
Definition: Chara.cs:6835
override bool isChara
Definition: Chara.cs:700
Religion faith
Definition: Chara.cs:441
string GetIdPortrait()
Definition: Chara.cs:8339
PCCData pccData
Definition: Chara.cs:67
Material matUIPortraitChara
Definition: CoreRef.cs:407
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:218
Color GetRandomHairColor(Chara c)
Definition: Portrait.cs:210
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
Sprite GetSprite()
Definition: Religion.cs:72

References Card.Chara, charaScale, Color, EClass.core, Chara.faith, fixSpritePos, IntColor.FromInt(), Chara.GetIdPortrait(), BaseCard.GetInt(), ModItemList< T >.GetItem(), GetRandomHairColor(), Religion.GetSprite(), Chara.GetSprite(), hideIfNoPortrait, Card.id, imageChara, imageFaith, Chara.isChara, CoreRef.matUIPortraitChara, modPortraits, Chara.pccData, portrait, Core.refs, Card.SetImage(), SetPortrait(), 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)
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, 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 230 of file Portrait.cs.

231 {
232 filter = ((isPortrait && Core.Instance.config.test.aaPortrait) ? FilterMode.Bilinear : FilterMode.Point);
233 portrait.rectTransform.anchorMin = overlay.rectTransform.anchorMin;
234 portrait.rectTransform.anchorMax = overlay.rectTransform.anchorMax;
235 portrait.rectTransform.sizeDelta = overlay.rectTransform.sizeDelta;
236 if ((bool)spritePortrait)
237 {
238 portrait.sprite = spritePortrait;
239 FixTexture(spritePortrait);
240 }
241 if ((bool)overlay)
242 {
243 FixTexture(spriteOverlay);
244 overlay.sprite = spriteOverlay;
245 overlay.color = new Color(colorOverlay.r * 1.1f, colorOverlay.g * 1.1f, colorOverlay.b * 1.1f, colorOverlay.a);
246 overlay.SetActive(spriteOverlay);
247 }
248 if (enableFull && (bool)imageFull)
249 {
250 FixTexture(spriteFull);
251 imageFull.sprite = spriteFull;
252 base.gameObject.SetActive(!spriteFull);
253 imageFull.SetActive(spriteFull);
254 }
255 if (!showPortrait)
256 {
257 portrait.SetActive(enable: false);
258 overlay.SetActive(enable: false);
259 }
260 void FixTexture(Sprite s)
261 {
262 if ((bool)s && isPortrait)
263 {
264 s.texture.wrapMode = TextureWrapMode.Clamp;
265 if (s.texture.filterMode != filter)
266 {
267 s.texture.filterMode = filter;
268 }
269 }
270 }
271 }
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 218 of file Portrait.cs.

219 {
220 Sprite @object = modPortraits.GetItem(id).GetObject();
221 Sprite object2 = modOverlays.GetObject(id + "-overlay");
222 Sprite spriteFull = ((enableFull && (bool)imageFull) ? modFull.GetObject(id + "-full") : null);
223 if (applyColorMod)
224 {
225 colorOverlay = PCCManager.current.ApplyColorMod(colorOverlay);
226 }
227 SetPortrait(isPortrait: true, @object, object2, colorOverlay, spriteFull);
228 }
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

Definition at line 20 of file Portrait.cs.

Referenced by Chara.GetIdPortrait(), and ModPackage.ParsePortrait().

◆ 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: