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>();
61 List<ModItem<Sprite>> list =
dictList.TryGetValue(idDict);
62 if (list ==
null || list.Count == 0)
64 list =
new List<ModItem<Sprite>>();
67 if (
item.id.Contains(idDict))
77 public static List<ModItem<Sprite>>
ListPortraits(
int gender,
string cat)
83 string key = cat + gender;
84 List<ModItem<Sprite>> list =
dictList.TryGetValue(key);
85 if (list ==
null || list.Count == 0)
87 list =
new List<ModItem<Sprite>>();
90 string[] array =
item.id.Split(
'-')[0].Split(
'_');
91 if (!(array[0] != cat))
93 int num = ((array.Length > 1) ? ((array[1] ==
"m") ? 2 : ((array[1] ==
"f") ? 1 : 0)) : 0);
94 if (num == 0 || gender == 0 || gender == num)
140 portrait.enabled =
true;
141 overlay.enabled =
true;
148 imageChara.transform.localScale = (c.IsPCC ?
new Vector3(1.3f, 1.4f, 1f) :
new Vector3(1f, 1f, 1f)) *
charaScale;
149 imageChara.rectTransform.pivot = (c.IsPCC ?
new Vector2(0.5f, 0.4f) :
new Vector2(0.5f, 0.2f));
150 imageChara.rectTransform.anchoredPosition = (c.IsPCC ?
new Vector2(-25f, 20f) :
new Vector2(-25f, 20f));
161 portrait.enabled =
false;
162 overlay.enabled =
false;
172 portrait.transform.localScale =
new Vector3(1f, 1f, 1f);
173 portrait.preserveAspect =
true;
175 portrait.Rect().SetAnchor(0.5f, 0f, 0.5f, 0f);
177 portrait.Rect().anchoredPosition =
new Vector2(0f, 0f);
181 if (pccData ==
null && c.
isChara)
185 Color colorOverlay = pccData?.GetHairColor(applyMod:
true) ??
Color.white;
186 overlay.enabled =
true;
198 overlay.enabled =
false;
208 Color randomColor = PCCManager.current.GetBodySet(
"female").map[
"hair"].GetRandomColor();
220 colorOverlay = PCCManager.current.ApplyColorMod(colorOverlay);
222 SetPortrait(isPortrait:
true, @
object, object2, colorOverlay, spriteFull);
225 public void SetPortrait(
bool isPortrait, Sprite spritePortrait, Sprite spriteOverlay =
null,
Color colorOverlay =
default(
Color), Sprite spriteFull =
null)
228 portrait.rectTransform.anchorMin =
overlay.rectTransform.anchorMin;
229 portrait.rectTransform.anchorMax =
overlay.rectTransform.anchorMax;
230 portrait.rectTransform.sizeDelta =
overlay.rectTransform.sizeDelta;
231 if ((
bool)spritePortrait)
233 portrait.sprite = spritePortrait;
234 FixTexture(spritePortrait);
238 FixTexture(spriteOverlay);
239 overlay.sprite = spriteOverlay;
240 overlay.color =
new Color(colorOverlay.r * 1.1f, colorOverlay.g * 1.1f, colorOverlay.b * 1.1f, colorOverlay.a);
241 overlay.SetActive(spriteOverlay);
245 FixTexture(spriteFull);
246 imageFull.sprite = spriteFull;
247 base.gameObject.SetActive(!spriteFull);
253 overlay.SetActive(enable:
false);
255 void FixTexture(Sprite s)
257 if ((
bool)s && isPortrait)
259 s.texture.wrapMode = TextureWrapMode.Clamp;
260 if (s.texture.filterMode !=
filter)
262 s.texture.filterMode =
filter;
int GetInt(int id, int? defaultInt=null)
void SetImage(Image image, int dir, int idSkin=0)
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
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
static void SetSeed(int a=-1)