Skip to content

Commit e67c5da

Browse files
committed
Update colors when changing qounters color scheme
1 parent 14343cd commit e67c5da

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

include/ColorManager.hpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1+
#pragma once
2+
3+
#include "UnityEngine/Color.hpp"
4+
15
namespace QonsistentSaberColors {
6+
7+
UnityEngine::Color get_LeftColor();
8+
UnityEngine::Color get_RightColor();
29

310
void UpdatePointers();
411

5-
void UpdateControllerColors();
12+
void UpdateControllerColors(const UnityEngine::Color& leftColor = get_LeftColor(), const UnityEngine::Color& rightColor = get_RightColor());
613

7-
void UpdateLaserColor();
14+
void UpdateLaserColor(const UnityEngine::Color& leftColor = get_LeftColor(), const UnityEngine::Color& rightColor = get_RightColor());
815
}

src/ColorManager.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ namespace QonsistentSaberColors {
5151
return colorSchemesSettings->GetSelectedColorScheme()->saberBColor;
5252
}
5353

54-
UnityEngine::Color get_LaserColor()
54+
UnityEngine::Color get_LaserColor(const UnityEngine::Color& leftColor = get_LeftColor(), const UnityEngine::Color& rightColor = get_RightColor())
5555
{
5656
if(!inputModule || !getModConfig().Enabled.GetValue() || !getModConfig().ColoredLasers.GetValue())
5757
return defaultLaserColor;
5858

5959
auto parent = inputModule->_vrPointer->_laserPointer->transform->parent->parent->name;
60-
return parent == "ControllerLeft" ? get_LeftColor() : get_RightColor();
60+
return parent == "ControllerLeft" ? leftColor : rightColor;
6161
}
6262

6363
void UpdatePointers()
@@ -102,21 +102,21 @@ namespace QonsistentSaberColors {
102102
}
103103
}
104104

105-
void UpdateControllerColors()
105+
void UpdateControllerColors(const UnityEngine::Color& leftColor, const UnityEngine::Color& rightColor)
106106
{
107107
if(!inputModule || !colorSchemesSettings)
108108
return;
109109

110-
SetControllerColor(inputModule->_vrPointer->_leftVRController, get_LeftColor());
111-
SetControllerColor(inputModule->_vrPointer->_rightVRController, get_RightColor());
110+
SetControllerColor(inputModule->_vrPointer->_leftVRController, leftColor);
111+
SetControllerColor(inputModule->_vrPointer->_rightVRController, rightColor);
112112
}
113113

114-
void UpdateLaserColor()
114+
void UpdateLaserColor(const UnityEngine::Color& leftColor, const UnityEngine::Color& rightColor)
115115
{
116116
if(!inputModule)
117117
return;
118118

119-
UnityEngine::Color color = get_LaserColor();
119+
UnityEngine::Color color = get_LaserColor(leftColor, rightColor);
120120
color.a = 0;
121121

122122
SetLaserColor(inputModule->_vrPointer->_laserPointer, color);

src/main.cpp

+12-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
#include "GlobalNamespace/MainMenuViewController.hpp"
77
#include "GlobalNamespace/ColorsOverrideSettingsPanelController.hpp"
88
#include "GlobalNamespace/MenuEnvironmentManager.hpp"
9+
#include "GlobalNamespace/EnvironmentColorManager.hpp"
10+
#include "GlobalNamespace/ColorScheme.hpp"
911

1012
#include "VRUIControls/VRPointer.hpp"
1113

@@ -15,16 +17,22 @@ static modloader::ModInfo modInfo {MOD_ID, VERSION, 0};
1517

1618
using namespace QonsistentSaberColors;
1719

18-
inline void UpdateColors()
20+
inline void UpdateColors(const UnityEngine::Color& leftColor = get_LeftColor(), const UnityEngine::Color& rightColor = get_RightColor())
1921
{
2022
if(getModConfig().Enabled.GetValue())
2123
{
22-
UpdateControllerColors();
24+
UpdateControllerColors(leftColor, rightColor);
2325
if(getModConfig().ColoredLasers.GetValue())
24-
UpdateLaserColor();
26+
UpdateLaserColor(leftColor, rightColor);
2527
}
2628
}
2729

30+
MAKE_HOOK_MATCH(EnvironmentColorManager_InitColors, &GlobalNamespace::EnvironmentColorManager::InitColors, void, GlobalNamespace::EnvironmentColorManager* self)
31+
{
32+
EnvironmentColorManager_InitColors(self);
33+
UpdateColors(self->_colorScheme->get_saberAColor(), self->_colorScheme->get_saberBColor());
34+
}
35+
2836
MAKE_HOOK_MATCH(VRPointer_CreateLaserPointerAndLaserHit, &VRUIControls::VRPointer::RefreshLaserPointerAndLaserHit, void, VRUIControls::VRPointer* self, UnityEngine::EventSystems::PointerEventData* pointerData)
2937
{
3038
VRPointer_CreateLaserPointerAndLaserHit(self, pointerData);
@@ -82,6 +90,7 @@ MOD_EXPORT void late_load() {
8290
BSML::Register::RegisterMainMenu<QonsistentSaberColors::SettingsViewController*>("QonsistentSaberColors", "QonsistentSaberColors", "QonsistentSaberColors mod settings");
8391

8492
INFO("Installing hooks...");
93+
INSTALL_HOOK(Logger, EnvironmentColorManager_InitColors);
8594
INSTALL_HOOK(Logger, VRPointer_CreateLaserPointerAndLaserHit);
8695
INSTALL_HOOK(Logger, MainMenuViewController_DidActivate);
8796
INSTALL_HOOK(Logger, ColorsOverrideSettingsPanelController_HandleOverrideColorsToggleValueChanged);

0 commit comments

Comments
 (0)