ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
ChatPlexSDK.hpp
1#pragma once
2
3#include "Logging/ILogger.hpp"
4#include "Utils/Event.hpp"
5#include "Utils/Il2cpp.hpp"
6
7#include <vector>
8
9namespace CP_SDK {
10
11 class IModuleBase;
12
13 enum class ERenderPipeline
14 {
15 BuiltIn,
16 URP
17 };
18
19 enum class EGenericScene
20 {
21 None,
22 Menu,
23 Playing
24 };
25
28 {
29 CP_SDK_NO_DEF_CTORS(ChatPlexSDK);
30
31 public:
33 static Logging::ILogger* Logger() { return m_Logger; }
34
35 static std::u16string_view ProductName() { return m_ProductName; }
36 static std::u16string_view ProductVersion() { return m_ProductVersion; }
37 static std::string_view BasePath() { return m_BasePath; }
38 static std::u16string_view NetworkUserAgent() { return m_NetworkUserAgent; }
39 static ERenderPipeline RenderPipeline() { return m_RenderPipeline; }
40 static EGenericScene ActiveGenericScene() { return m_ActiveGenericScene; }
41
42 static Utils::Event<EGenericScene> OnGenericSceneChange;
43 static Utils::Event<bool> OnGenericMenuSceneLoaded;
44
45 public:
51 static void Configure(Logging::ILogger* p_Logger, std::u16string_view p_ProductName, std::string_view p_BasePath, ERenderPipeline p_RenderPipeline);
53 static void OnAssemblyLoaded();
55 static void OnAssemblyExit();
56
57 public:
59 static void OnUnityReady();
61 static void OnUnityExit();
62
63 public:
66 static void RegisterModule(IModuleBase* p_Module);
68 static void InitModules();
70 static void StopModules();
72 static const std::vector<IModuleBase*> & GetModules() { return m_Modules; }
73
74 public:
81
82 private:
84 static void InstallWEBPCodecs();
85
86 private:
87 static Logging::ILogger* m_Logger;
88
89 static std::u16string m_ProductName;
90 static std::u16string m_ProductVersion;
91 static std::string m_BasePath;
92 static std::u16string m_NetworkUserAgent;
93 static ERenderPipeline m_RenderPipeline;
94 static EGenericScene m_ActiveGenericScene;
95
96 static std::vector<IModuleBase*> m_Modules;
97
98 };
99
100}
ChatPlex SDK main class.
static void StopModules()
Stop modules.
static void Fire_OnGenericPlayingScene()
On generic play scene.
static Logging::ILogger * Logger()
Logger instance.
static void OnAssemblyExit()
On assembly exit.
static void OnAssemblyLoaded()
When the assembly is loaded.
static void OnUnityReady()
When unity is ready.
static void Fire_OnGenericMenuScene()
On generic menu scene.
static void OnUnityExit()
When unity is exiting.
static void RegisterModule(IModuleBase *p_Module)
static void InitModules()
Init all the available modules.
static const std::vector< IModuleBase * > & GetModules()
Get modules.
static void Configure(Logging::ILogger *p_Logger, std::u16string_view p_ProductName, std::string_view p_BasePath, ERenderPipeline p_RenderPipeline)
Configure.
static void Fire_OnGenericMenuSceneLoaded()
On generic menu scene.
Module base interface.
ChatPlex SDK game agnostic namepace.