LeviLamina
Loading...
Searching...
No Matches
CommandRegistry.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/oreui/binding/interface/IBindable.h"
7#include "mc/deps/core/utility/pub_sub/Subscription.h"
8
9// auto generated forward declare list
10// clang-format off
11namespace OreUI::Detail { class Binder; }
12namespace OreUI::Detail { class ICommandGroup; }
13namespace OreUI::Detail { class IInvocationStateTracker; }
14// clang-format on
15
16namespace OreUI::Detail {
17
18class CommandRegistry : public ::OreUI::Detail::IBindable {
19public:
20 // CommandRegistry inner types declare
21 // clang-format off
22 class LiveCommands;
23 // clang-format on
24
25 // CommandRegistry inner types define
26 class LiveCommands {
27 public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Detail::ICommandGroup>> mCommands;
31 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::OreUI::Detail::IInvocationStateTracker>> mTracker;
32 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnChangeToken;
33 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnRemoveToken;
34 // NOLINTEND
35
36 public:
37 // member functions
38 // NOLINTBEGIN
39 MCAPI void _enableListeners();
40 // NOLINTEND
41 };
42
43public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::OreUI::Detail::IInvocationStateTracker>> mTracker;
47 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::OreUI::Detail::Binder>> mBinder;
48 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::Detail::CommandRegistry::LiveCommands>> mCommands;
49 ::ll::TypedStorage<
50 8,
51 64,
52 ::std::unordered_map<::std::string, ::std::function<::std::unique_ptr<::OreUI::Detail::ICommandGroup>()>>>
53 mCommandTemplates;
54 // NOLINTEND
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual void onReadyForBindings() /*override*/;
60
61 virtual void onSuspend() /*override*/;
62
63 virtual void onBindingsReleased() /*override*/;
64
65 virtual void update(double const time) /*override*/;
66
67 virtual ~CommandRegistry() /*override*/ = default;
68 // NOLINTEND
69
70public:
71 // member functions
72 // NOLINTBEGIN
73 MCAPI ::std::vector<::OreUI::Detail::ICommandGroup*> getCommands() const;
74
75 MCAPI void registerCommandTemplate(
76 ::std::string name,
77 ::std::function<::std::unique_ptr<::OreUI::Detail::ICommandGroup>()> constructor
78 );
79 // NOLINTEND
80
81public:
82 // virtual function thunks
83 // NOLINTBEGIN
84 MCAPI void $onReadyForBindings();
85
86 MCFOLD void $onSuspend();
87
88 MCFOLD void $onBindingsReleased();
89
90 MCFOLD void $update(double const time);
91 // NOLINTEND
92
93public:
94 // vftables
95 // NOLINTBEGIN
96 MCNAPI static void** $vftable();
97 // NOLINTEND
98};
99
100} // namespace OreUI::Detail
Definition Binder.h:7
Definition CommandRegistry.h:15
Definition CommandRegistry.h:7
static MCAPI void ** $vftable()
Definition ICommandGroup.h:7
Definition IInvocationStateTracker.h:7