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)
122 base.gameObject.SetActive(value:
true);
133 else if (p.
source !=
null)
139 base.gameObject.SetActive(value:
false);
145 portrait.enabled =
true;
146 overlay.enabled =
true;
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);
161 imageChara.rectTransform.localScale = Vector3.one *
charaScale;
162 imageChara.rectTransform.anchoredPosition =
new Vector2(-25f, 28f);
163 imageChara.rectTransform.pivot = c.
source.renderData.imagePivot;
165 float num = imageChara.sprite.rect.height / 128f;
166 imageChara.rectTransform.localPosition +=
new Vector3(pref.
pivotX, (
float)pref.
pivotY * num, 0f);
178 portrait.enabled =
false;
179 overlay.enabled =
false;
189 portrait.transform.localScale =
new Vector3(1f, 1f, 1f);
190 portrait.preserveAspect =
true;
192 portrait.Rect().SetAnchor(0.5f, 0f, 0.5f, 0f);
194 portrait.Rect().anchoredPosition =
new Vector2(0f, 0f);
198 if (pccData ==
null && c.
isChara)
202 Color colorOverlay = pccData?.GetHairColor(applyMod:
true) ??
Color.white;
203 overlay.enabled =
true;
215 overlay.enabled =
false;
225 Color randomColor = PCCManager.current.GetBodySet(
"female").map[
"hair"].GetRandomColor();
237 colorOverlay = PCCManager.current.ApplyColorMod(colorOverlay);
239 SetPortrait(isPortrait:
true, @
object, object2, colorOverlay, spriteFull);
242 public void SetPortrait(
bool isPortrait, Sprite spritePortrait, Sprite spriteOverlay =
null,
Color colorOverlay =
default(
Color), Sprite spriteFull =
null)
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)
250 portrait.sprite = spritePortrait;
251 FixTexture(spritePortrait);
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);
262 FixTexture(spriteFull);
263 imageFull.sprite = spriteFull;
264 base.gameObject.SetActive(!spriteFull);
270 overlay.SetActive(enable:
false);
272 void FixTexture(Sprite s)
274 if ((
bool)s && isPortrait)
276 s.texture.wrapMode = TextureWrapMode.Clamp;
277 if (s.texture.filterMode !=
filter)
279 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
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)
virtual Sprite GetSprite()