ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
Logic.hpp
1#pragma once
2
3#include "../../CP_SDK/Utils/Il2cpp.hpp"
4#include "../../CP_SDK/Utils/Event.hpp"
5#include "LevelData.hpp"
6#include "LevelCompletionData.hpp"
7
8#include <System/Action_2.hpp>
9#include <UnityEngine/SceneManagement/Scene.hpp>
10#include <GlobalNamespace/ScenesTransitionSetupDataSO.hpp>
11#include <Zenject/DiContainer.hpp>
12
13namespace CP_SDK_BS::Game {
14
15 namespace _u
16 {
17 using namespace GlobalNamespace;
18 using namespace UnityEngine;
19 using namespace UnityEngine::SceneManagement;
20 }
21 namespace _v
22 {
23 using namespace CP_SDK::Utils;
24 }
25
27 class Logic
28 {
29 CP_SDK_NO_DEF_CTORS(Logic);
30
31 using t_Delegate1 = System::Action_2<_u::ScenesTransitionSetupDataSO*, Zenject::DiContainer*>*;
32
33 public:
35 enum class ESceneType
36 {
37 None,
38 Menu,
39 Playing
40 };
41
42 private:
43 static t_Delegate1 m_Delegate1;
44 static ESceneType m_ActiveScene;
45 static LevelData::Ptr m_LevelData;
46 static LevelCompletionData::Ptr m_LevelCompletionData;
47 static bool m_LastMainSceneWasNotMenu;
48 static bool m_WasInReplay;
49
50 public:
51 static const ESceneType ActiveScene();
52 static const LevelData::Ptr& LevelData();
53 static const LevelCompletionData::Ptr& LevelCompletionData();
54
55 public:
56 static _v::Event<> _OnUnityActiveSceneChanged;
57 static _v::Event<ESceneType> OnSceneChange;
58 static _v::Event<> OnMenuSceneLoaded;
59 static _v::Event<const LevelData::Ptr&> OnLevelStarted;
61
62 public:
66 static void SceneManager_activeSceneChanged(_u::Scene p_Current, _u::Scene p_Next);
67
68 private:
70 static void OnMenuSceneActive();
74 static void OnMenuSceneLoadedFresh(_u::ScenesTransitionSetupDataSO* p_Object, Zenject::DiContainer* p_DiContainer);
76 static void OnGameSceneActive();
77
78 public:
81 static void FireLevelStarted(const LevelData::Ptr& p_LevelData);
84 static void FireLevelEnded(const LevelCompletionData::Ptr& p_LevelCompletionData);
85
86 };
87
88}
89
Event class helper.
Definition Event.hpp:100
Level data instance.
Definition LevelData.hpp:24
Game helper.
Definition Logic.hpp:28
static void SceneManager_activeSceneChanged(_u::Scene p_Current, _u::Scene p_Next)
On Unity scene change.
static void FireLevelStarted(const LevelData::Ptr &p_LevelData)
On level started.
static void FireLevelEnded(const LevelCompletionData::Ptr &p_LevelCompletionData)
On level ended.
Various platform utils like Delegate/Action/Function/Event system.
Definition Delegate.hpp:8
Game specific helper and utilities.
Definition MapDetail.hpp:12