10 public bool UniformMode
14 return this.mode == UIPCC.Mode.UniformM || this.mode == UIPCC.Mode.UniformF;
24 return this.mode == UIPCC.Mode.UniformM;
29 public void Activate(
Chara _chara, UIPCC.Mode m,
string idUniform =
null, Action _onKill =
null)
31 this.chara = (_chara.IsPCC ? _chara :
ELayer.pc);
33 this.uiPCC.exportPath = CorePath.user +
"PCC/";
34 this.uiPCC.onShowPalette = delegate(PCC pcc,
string id, PCC.Part part, TestActor actor)
37 Color color = pcc.data.GetColor(
id);
38 layerColorPicker.SetColor(color, color, delegate(PickerState state, Color _c)
40 pcc.data.SetColor(
id, _c);
44 PCCData newData =
new PCCData();
45 newData.Set(this.chara.pccData);
46 this.backup = IO.DeepCopy<PCCData>(newData);
47 this.backupPortrait = this.chara.c_idPortrait;
50 ELayer.game.uniforms.Apply(newData, idUniform, this.IsMale,
false);
51 this.windows[0].SetCaption(
"_uniform".lang(
ELayer.sources.jobs.map[idUniform].GetName().ToTitleCase(
false),
this.IsMale ?
"male".lang() :
"female".lang(),
null,
null,
null));
55 ELayer.game.uniforms.Apply(newData, PCCUniformManager.dummy);
57 this.uiPCC.Init(newData, this.mode);
58 this.SetPortraitSlider();
59 this.windows[0].AddBottomButton(
"reset", delegate
63 ELayer.game.uniforms.RemoveUniform(newData);
65 this.uiPCC.Reset(this.backup);
66 this.chara.c_idPortrait = this.backupPortrait;
67 this.SetPortraitSlider();
68 ELayer.Sound.Play(
"offering");
69 newData.colors.Clear();
73 PCCData otherUni =
ELayer.game.uniforms.GetUniform(idUniform, !this.IsMale);
76 this.windows[0].AddBottomButton(
"copyUniform", delegate
78 PCCData pccdata =
new PCCData();
79 pccdata.Set(this.chara.pccData);
80 ELayer.game.uniforms.Apply(pccdata, otherUni);
81 this.uiPCC.Reset(pccdata);
82 ELayer.Sound.Play(
"offering");
86 this.windows[2].SetActive(
true);
87 this.portrait.SetActive(!this.UniformMode);
90 base.SetOnKill(_onKill);
97 PCCData data = this.uiPCC.pcc.data;
98 ELayer.game.uniforms.Apply(data, this.chara.job.id,
this.IsMale,
true);
99 this.chara.pccData.Set(data);
100 PCC.Get(this.chara.pccData).Build(
false);
101 this.chara.SetInt(105, IntColor.ToInt(
this.chara.pccData.GetHairColor(
false)));
106 public override void OnKill()
112 private void Update()
114 Color hairColor = this.uiPCC.actor.data.GetHairColor(
false);
115 if (hairColor != this.lastHair)
117 this.portrait.SetChara(this.chara, this.uiPCC.actor.data);
118 this.lastHair = hairColor;
120 int wheel = EInput.wheel;
121 if (InputModuleEX.IsPointerOver(
this.windows[1].transform))
125 this.uiPCC.actor.provider.NextDir(15f);
129 this.uiPCC.actor.provider.PrevDir();
135 public void SetPortraitSlider()
137 if (!this.sliderPortrait)
141 List<ModItem<Sprite>> list =
Portrait.ListPlayerPortraits(this.chara.bio.gender,
this.chara !=
ELayer.pc);
142 this.sliderPortrait.SetList<ModItem<Sprite>>(list.Find((ModItem<Sprite> a) => a.id ==
this.chara.c_idPortrait), list, delegate(
int a, ModItem<Sprite> b)
144 this.chara.c_idPortrait = b.id;
145 this.portrait.SetChara(this.chara, this.uiPCC.actor.data);
146 }, delegate(ModItem<Sprite> a)
157 public UIPCC.Mode mode;
169 public UISlider sliderPortrait;
172 public PCCData backup;
175 public string backupPortrait;
181 private Color lastHair;