Bazooka Manager is basically complete now (after 2+ weeks) and start working on server rewrite

This commit is contained in:
2025-07-12 13:46:42 -07:00
parent 599b0fa545
commit 36f65c3f5a
24 changed files with 810 additions and 384 deletions

View File

@@ -1,3 +1,4 @@
using Newtonsoft.Json.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@@ -7,56 +8,71 @@ public class IconsMenuOverlayColorPanel : MonoBehaviour
public Slider rSlider;
public Slider gSlider;
public Slider bSlider;
public ColorPickerUI colorPickerUI;
public GameObject manualModeUI;
public TMP_InputField hexValue;
public Image previewImage;
public Button resetButton;
public Button switchModeButton;
void Awake()
{
var overlayColor = PlayerPrefs.GetString("OverlayColor", "255;255;255").Split(";");
try
{
rSlider.value = int.Parse(overlayColor[0]);
gSlider.value = int.Parse(overlayColor[1]);
bSlider.value = int.Parse(overlayColor[2]);
}
catch
{
Debug.LogError("Invalid OverlayColor format");
rSlider.value = 255; gSlider.value = 255; bSlider.value = 255;
}
SlidersChanged();
var overlayColor = BazookaManager.Instance.GetColorSettingOverlay();
rSlider.value = (int)overlayColor[0];
gSlider.value = (int)overlayColor[1];
bSlider.value = (int)overlayColor[2];
rSlider.onValueChanged.AddListener(_ => SlidersChanged());
gSlider.onValueChanged.AddListener(_ => SlidersChanged());
bSlider.onValueChanged.AddListener(_ => SlidersChanged());
SyncAll();
rSlider.onValueChanged.AddListener(_ => SyncAll());
gSlider.onValueChanged.AddListener(_ => SyncAll());
bSlider.onValueChanged.AddListener(_ => SyncAll());
hexValue.onValueChanged.AddListener(value =>
{
var v = value.StartsWith("#") ? value[1..] : value;
if (v.Length == 6 && ColorUtility.TryParseHtmlString("#" + v, out var col))
var hex = value.StartsWith("#") ? value : "#" + value;
if (hex.Length == 7 && ColorUtility.TryParseHtmlString(hex, out var col))
{
rSlider.SetValueWithoutNotify(col.r * 255f);
gSlider.SetValueWithoutNotify(col.g * 255f);
bSlider.SetValueWithoutNotify(col.b * 255f);
previewImage.color = col;
PlayerPrefs.SetString("OverlayColor", $"{(int)(col.r * 255)};{(int)(col.g * 255)};{(int)(col.b * 255)}");
PlayerPrefs.Save();
SyncAll();
}
});
resetButton.onClick.AddListener(() =>
{
hexValue.text = "#FFFFFF";
rSlider.value = gSlider.value = bSlider.value = 255;
});
switchModeButton.onClick.AddListener(() =>
{
bool enableManual = !manualModeUI.activeSelf;
manualModeUI.SetActive(enableManual);
colorPickerUI.gameObject.SetActive(!enableManual);
});
colorPickerUI.OnColorChanged += color =>
{
rSlider.SetValueWithoutNotify(color.r * 255);
gSlider.SetValueWithoutNotify(color.g * 255);
bSlider.SetValueWithoutNotify(color.b * 255);
SyncAll(fromPicker: true);
};
}
void SlidersChanged()
void SyncAll(bool fromPicker = false)
{
var col = new Color(rSlider.value / 255f, gSlider.value / 255f, bSlider.value / 255f);
if (!fromPicker) colorPickerUI.SetSelectedColor(rSlider.value, gSlider.value, bSlider.value);
previewImage.color = col;
hexValue.SetTextWithoutNotify($"#{ColorUtility.ToHtmlStringRGB(col)}");
PlayerPrefs.SetString("OverlayColor", $"{(int)rSlider.value};{(int)gSlider.value};{(int)bSlider.value}");
PlayerPrefs.Save();
hexValue.SetTextWithoutNotify("#" + ColorUtility.ToHtmlStringRGB(col));
BazookaManager.Instance.SetColorSettingOverlay(new JArray(
(int)rSlider.value,
(int)gSlider.value,
(int)bSlider.value
));
}
}
}