1using System.Collections.Generic;
18 public static Dictionary<string, List<ModItem<Sprite>>>
dictList =
new Dictionary<string, List<ModItem<Sprite>>>();
20 public static HashSet<string>
allIds =
new HashSet<string>();
75 List<ModItem<Sprite>> list =
dictList.TryGetValue(idDict);
76 if (list ==
null || list.Count == 0)
78 list =
new List<ModItem<Sprite>>();
81 if (
item.id.Contains(idDict))
91 public static List<ModItem<Sprite>>
ListPortraits(
int gender,
string cat)
97 string key = cat + gender;
98 List<ModItem<Sprite>> list =
dictList.TryGetValue(key);
99 if (list ==
null || list.Count == 0)
101 list =
new List<ModItem<Sprite>>();
104 string[] array =
item.id.Split(
'-')[0].Split(
'_');
105 if (!(array[0] != cat))
107 int num = ((array.Length > 1) ? ((array[1] ==
"m") ? 2 : ((array[1] ==
"f") ? 1 : 0)) : 0);
108 if (num == 0 || gender == 0 || gender == num)
139 RectTransform rectTransform =
portrait.rectTransform;
153 RectTransform rectTransform =
portrait.rectTransform;
165 base.gameObject.SetActive(value:
true);
176 else if (p.
source !=
null)
182 base.gameObject.SetActive(value:
false);
188 portrait.enabled =
true;
189 overlay.enabled =
true;
198 imageChara.rectTransform.localScale =
new Vector3(1.3f, 1.4f, 1f) *
charaScale;
199 imageChara.rectTransform.anchoredPosition =
new Vector2(-25f, 10f);
200 imageChara.rectTransform.pivot =
new Vector2(0.5f, 0.3f);
204 imageChara.rectTransform.localScale = Vector3.one *
charaScale;
205 imageChara.rectTransform.anchoredPosition =
new Vector2(-25f, 28f);
206 imageChara.rectTransform.pivot = c.
source.renderData.imagePivot;
208 float num = imageChara.sprite.rect.height / 128f;
209 imageChara.rectTransform.localPosition +=
new Vector3(pref.
pivotX, (
float)pref.
pivotY * num, 0f);
221 portrait.enabled =
false;
222 overlay.enabled =
false;
232 portrait.transform.localScale =
new Vector3(1f, 1f, 1f);
233 portrait.preserveAspect =
true;
235 portrait.Rect().SetAnchor(0.5f, 0f, 0.5f, 0f);
237 portrait.Rect().anchoredPosition =
new Vector2(0f, 0f);
241 if (pccData ==
null && c.
isChara)
245 Color colorOverlay = pccData?.GetHairColor(applyMod:
true) ??
Color.white;
246 overlay.enabled =
true;
258 overlay.enabled =
false;
268 Color randomColor = PCCManager.current.GetBodySet(
"female").map[
"hair"].GetRandomColor();
280 colorOverlay = PCCManager.current.ApplyColorMod(colorOverlay);
282 SetPortrait(isPortrait:
true, spritePortrait, spriteOverlay, colorOverlay, spriteFull);
285 public void SetPortrait(
bool isPortrait, Sprite spritePortrait, Sprite spriteOverlay =
null,
Color colorOverlay =
default(
Color), Sprite spriteFull =
null)
293 portrait.rectTransform.anchorMin =
overlay.rectTransform.anchorMin;
294 portrait.rectTransform.anchorMax =
overlay.rectTransform.anchorMax;
295 portrait.rectTransform.sizeDelta =
overlay.rectTransform.sizeDelta;
296 if ((
bool)spritePortrait)
298 portrait.sprite = spritePortrait;
299 FixTexture(spritePortrait);
303 FixTexture(spriteOverlay);
304 overlay.sprite = spriteOverlay;
305 overlay.color =
new Color(colorOverlay.r * 1.1f, colorOverlay.g * 1.1f, colorOverlay.b * 1.1f, colorOverlay.a);
306 overlay.SetActive(spriteOverlay);
310 FixTexture(spriteFull);
311 imageFull.sprite = spriteFull;
312 base.gameObject.SetActive(!spriteFull);
318 overlay.SetActive(enable:
false);
320 void FixTexture(Sprite s)
322 if ((
bool)s && isPortrait)
324 s.texture.wrapMode = TextureWrapMode.Clamp;
325 if (s.texture.filterMode !=
filter)
327 s.texture.filterMode =
filter;
void SetImage(Image image, int dir, int idSkin=0)
int GetInt(string id, int? defaultInt=null)
override Sprite GetSprite(int dir=0)
Material matUIPortraitChara
static Color32 FromInt(int i)
List< ModItem< T > > list
T GetObject(string id, object option=null)
Dictionary< string, ModItem< T > > dict
ModItem< T > GetItem(string id, bool returnNull=false)
static ModItemList< Sprite > modPortraitBGFs
static List< ModItem< Sprite > > ListPortraits(string idDict)
static string GetRandomPortrait(int gender, string cat)
static ModItemList< Sprite > modPortraitBGs
Vector2 defaultAnchoredPosition
void SetPortrait(bool isPortrait, Sprite spritePortrait, Sprite spriteOverlay=null, Color colorOverlay=default(Color), Sprite spriteFull=null)
static string GetRandomPortrait(string idDict)
void SetPortrait(string id, Color colorOverlay=default(Color), bool applyColorMod=true)
Color GetRandomHairColor(Chara c)
static bool Exists(string id)
static List< ModItem< Sprite > > ListPlayerPortraits(int gender, bool nullPortrait=false)
static Dictionary< string, List< ModItem< Sprite > > > dictList
static ModItemList< Sprite > modOverlays
static ModItemList< Sprite > modPortraits
static HashSet< string > allIds
void SetChara(Chara c, PCCData pccData=null)
static List< ModItem< Sprite > > ListPortraits(int gender, string cat)
static ModItemList< Sprite > modFull
bool defaultPreserveAspect
static void SetSeed(int a=-1)
virtual Sprite GetSprite()