This commit is contained in:
micycle 2023-05-23 22:11:54 -04:00 committed by yosh
parent 3f97a9f312
commit 343f91a324
2 changed files with 58 additions and 34 deletions

View File

@ -85,6 +85,22 @@ namespace Celeste.Mod.AvaliSkin {
}
}
// private static TextMenu.Button NewStringSetting(
// string name, ref string value, int minLength, int maxLength,
// Action<string> onchange
// ) {
// return new TextMenu.Button(name + ": " + value)
// .Pressed(() => {
// Audio.Play(SFX.ui_main_savefile_rename_start);
// menu.SceneAs<Overworld>().Goto<OuiModOptionString>().Init<OuiModOptions>(
// (string) value,
// onchange,
// maxLength,
// minLength
// );
// });
// }
// note: YamlDotNet ignores all private member variables
private bool enabled = true;
public bool Enabled {
@ -170,23 +186,30 @@ namespace Celeste.Mod.AvaliSkin {
(RItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_RED".DialogOrKey(),
0, 255, DashRGBColor[j].R
).Change(
// C# is stupidly pendatic and doesn't support property assignment in List elements
// so we have to do this ugly shit to avoid breaking up this expression into two
c => DashRGBColor[j] = new Color((byte) c, DashRGBColor[j].G, DashRGBColor[j].B)
)),
).Change(c => {
// C# is stupidly pendatic and doesn't support
// property assignment for value classes. So we have
// to do this ugly shit instead.
Color col = DashRGBColor[j];
col.R = (byte) c;
DashRGBColor[j] = col;
})),
(GItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_GREEN".DialogOrKey(),
0, 255, DashRGBColor[j].G
).Change(
c => DashRGBColor[j] = new Color(DashRGBColor[j].R, (byte) c, DashRGBColor[j].B)
)),
).Change(c => {
Color col = DashRGBColor[j];
col.G = (byte) c;
DashRGBColor[j] = col;
})),
(BItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_BLUE".DialogOrKey(),
0, 255, DashRGBColor[j].B
).Change(
c => DashRGBColor[j] = new Color(DashRGBColor[j].R, DashRGBColor[j].G, (byte) c)
)),
).Change(c => {
Color col = DashRGBColor[j];
col.B = (byte) c;
DashRGBColor[j] = col;
})),
(ColorItem = new TextMenuExt.EnumSlider<ColorChoice>(
"AVALI_SKIN_COLOR".DialogOrKey(),
DashPreset[j]
@ -256,21 +279,27 @@ namespace Celeste.Mod.AvaliSkin {
(RItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_RED".DialogOrKey(),
0, 255, LightBodyRGBColor.R
).Change(
c => LightBodyRGBColor = new Color((byte) c, LightBodyRGBColor.G, LightBodyRGBColor.B)
)),
).Change(c => {
Color col = LightBodyRGBColor;
col.R = (byte) c;
LightBodyRGBColor = col;
})),
(GItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_GREEN".DialogOrKey(),
0, 255, LightBodyRGBColor.G
).Change(
c => LightBodyRGBColor = new Color(LightBodyRGBColor.R, (byte) c, LightBodyRGBColor.B)
)),
).Change(c => {
Color col = LightBodyRGBColor;
col.G = (byte) c;
LightBodyRGBColor = col;
})),
(BItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_BLUE".DialogOrKey(),
0, 255, LightBodyRGBColor.B
).Change(
c => LightBodyRGBColor = new Color(LightBodyRGBColor.R, LightBodyRGBColor.G, (byte) c)
)),
).Change(c => {
Color col = LightBodyRGBColor;
col.B = (byte) c;
LightBodyRGBColor = col;
})),
(ColorItem = new TextMenuExt.EnumSlider<ColorChoice>(
"AVALI_SKIN_COLOR".DialogOrKey(),
LightBodyPreset
@ -289,7 +318,9 @@ namespace Celeste.Mod.AvaliSkin {
"AVALI_SKIN_RED".DialogOrKey(),
0, 255, DarkBodyRGBColor.R
).Change(c => {
DarkBodyRGBColor = new Color((byte) c, DarkBodyRGBColor.G, DarkBodyRGBColor.B);
Color col = DarkBodyRGBColor;
col.R = (byte) c;
DarkBodyRGBColor = col;
// we need to manually send the new body color over
updateOptions();
})),
@ -297,14 +328,18 @@ namespace Celeste.Mod.AvaliSkin {
"AVALI_SKIN_GREEN".DialogOrKey(),
0, 255, DarkBodyRGBColor.G
).Change(c => {
DarkBodyRGBColor = new Color(DarkBodyRGBColor.R, (byte) c, DarkBodyRGBColor.B);
Color col = DarkBodyRGBColor;
col.G = (byte) c;
DarkBodyRGBColor = col;
updateOptions();
})),
(BItem = new TextMenuExt.IntSlider(
"AVALI_SKIN_BLUE".DialogOrKey(),
0, 255, DarkBodyRGBColor.B
).Change(c => {
DarkBodyRGBColor = new Color(DarkBodyRGBColor.R, DarkBodyRGBColor.G, (byte) c);
Color col = DarkBodyRGBColor;
col.B = (byte) c;
DarkBodyRGBColor = col;
updateOptions();
})),
(ColorItem = new TextMenuExt.EnumSlider<ColorChoice>(

View File

@ -75,17 +75,6 @@ namespace Celeste.Mod.AvaliSkin {
if (Config.Enabled) {
writer.WriteNoA(Config.LightBody);
writer.WriteNoA(Config.DarkBody);
// byte lengthRGB = Math.Min(ManualRGB.Count, 5);
// writer.Write((byte) ManualRGB.Count);
// foreach (var color in ManualRGB) {
// write.WriteNoA(color);
// }
// byte lengthPreset = Math.Min(ManualPreset.Count, 5);
// writer.Write((byte) ManualPreset.Count);
// foreach (var color in ManualPreset) {
// write.Write((byte) color);
// }
}
}
}