forked from akanyan/mu3-mods
65 lines
3.1 KiB
C#
65 lines
3.1 KiB
C#
using MonoMod;
|
|
using MU3.CustomUI;
|
|
using MU3.User;
|
|
using MU3.Util;
|
|
using System.Reflection;
|
|
using UnityEngine;
|
|
|
|
namespace MU3;
|
|
|
|
class patch_OptionSelecterController: OptionSelecterController {
|
|
private chengeParamFuncArray[] cpFuncArray = new chengeParamFuncArray[35];
|
|
|
|
[MonoModIgnore]
|
|
private extern void setInputCursor(int currentParam);
|
|
|
|
public extern void orig_init(UserOption.OptionName id);
|
|
public new void init(UserOption.OptionName id) {
|
|
orig_init(id);
|
|
cpFuncArray[33].max = 3;
|
|
cpFuncArray[4].max = 7;
|
|
|
|
if(id == UserOption.OptionName.Rating) {
|
|
var rct = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent<RectTransform>();
|
|
var changer = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent<MU3UIImageChanger>();
|
|
|
|
rct.anchoredPosition = new Vector3(0f, -5f, 0);
|
|
rct.sizeDelta = new Vector2(158, 70);
|
|
|
|
var spritesFi = typeof(MU3UIImageChanger).GetField("_sprites", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
var tex = ((Sprite[])spritesFi.GetValue(changer))[0].texture;
|
|
spritesFi.SetValue(changer, new Sprite[4]);
|
|
|
|
changer.setSprite(0, Sprite.Create(tex, new Rect(1552.0f, 366.0f, 160.0f, 65.0f), new Vector2(80.0f, 0.0f)));
|
|
changer.setSprite(1, Sprite.Create(tex, new Rect(1221.0f, 1488.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f)));
|
|
changer.setSprite(2, Sprite.Create(tex, new Rect(1223.0f, 1410.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f)));
|
|
changer.setSprite(3, Sprite.Create(tex, new Rect(1508.0f, 1346.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f)));
|
|
//changer.setSprite(4, Sprite.Create(tex, new Rect(1389.0f, 1424.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f)));
|
|
//changer.setSprite(5, Sprite.Create(tex, new Rect(941.0f, 1502.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f)));
|
|
//changer.setSprite(6, Sprite.Create(tex, new Rect(797.0f, 1604.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f)));
|
|
|
|
setInputCursor((int)Singleton<UserManager>.instance.userOption.customSet.Rating);
|
|
}
|
|
}
|
|
|
|
private extern void orig_chengeParamOther(int currentParam);
|
|
private void chengeParamOther(int currentParam) {
|
|
if(myOptionId == UserOption.OptionName.Rating) {
|
|
var changer = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent<MU3UIImageChanger>();
|
|
changer.patternNumber = currentParam;
|
|
Singleton<UserManager>.instance.userOption.customSet.Rating = (UserOption.eRating)currentParam;
|
|
SingletonMonoBehaviour<SystemUI>.instance.userData.setUserDetail();
|
|
} else {
|
|
orig_chengeParamOther(currentParam);
|
|
}
|
|
}
|
|
|
|
private extern void orig_chengeParamAbort(int currentParam);
|
|
private void chengeParamAbort(int currentParam) {
|
|
string text = "NUL_SWH_Option_00/NUL_Select/PAT_Clear";
|
|
GameObject gameObject = transform.Find(text).gameObject;
|
|
MU3UIImageChanger component = gameObject.GetComponent<MU3UIImageChanger>();
|
|
component.patternNumber = currentParam > 4 ? 0 : currentParam;
|
|
}
|
|
}
|