LeviLamina
Loading...
Searching...
No Matches
EntitySystems.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
7#include "mc/deps/core/utility/typeid_t.h"
8#include "mc/deps/ecs/systems/IEntitySystems.h"
9#include "mc/deps/game_refs/OwnerPtr.h"
10
11// auto generated forward declare list
12// clang-format off
14class EntityRegistry;
15class ITickingSystem;
19struct SystemCategory;
20struct SystemInfo;
21struct TickingSystemId;
23// clang-format on
24
25class EntitySystems : public ::IEntitySystems, public ::Bedrock::EnableNonOwnerReferences {
26public:
27 // EntitySystems inner types declare
28 // clang-format off
30 struct GameSystemCategory;
31 struct RuntimeInitialize;
34 // clang-format on
35
36 // EntitySystems inner types define
38
40
42
44
46
47 using MovementSystemCategory = ::entt::
48 type_list<::EntitySystems::UsedInServerPlayerMovement, ::EntitySystems::UsedInClientMovementCorrections>;
49
50 using SystemInvokeCallbackFunc = ::std::function<void(::TickingSystemId)>;
51
52 using SystemInvokeCallbackPair =
53 ::std::pair<::std::function<void(::TickingSystemId)>, ::std::function<void(::TickingSystemId)>>;
54
55 using SystemInvokeCallbackSig = void(::TickingSystemId);
56
57public:
58 // member variables
59 // NOLINTBEGIN
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PlayerInteractionSystem>> mPlayerInteractionSystem;
61 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IEntitySystemsCollection>> mSystems;
62 ::ll::TypedStorage<8, 16, ::OwnerPtr<::EcsEventDispatcher>> mDispatcher;
63 ::ll::TypedStorage<8, 32, ::std::string> mName;
64 ::ll::TypedStorage<1, 1, bool> mEnableTimingCapture;
65 ::ll::TypedStorage<8, 64, ::std::function<void(::TickingSystemId)>> mPreSystemInvoke;
66 ::ll::TypedStorage<8, 64, ::std::function<void(::TickingSystemId)>> mPostSystemInvoke;
67 // NOLINTEND
68
69public:
70 // prevent constructor by default
71 EntitySystems();
72
73public:
74 // virtual functions
75 // NOLINTBEGIN
76 virtual ~EntitySystems() /*override*/;
77
78 virtual void tickMovementCatchup(::EntityRegistry& registry) /*override*/;
79
80 virtual void tickMovementCorrectionReplay(::EntityRegistry& registry) /*override*/;
81
82 virtual void registerTickingSystem(
83 ::gsl::span<::Bedrock::typeid_t<::SystemCategory> const> categories,
84 ::std::unique_ptr<::ITickingSystem> system,
85 ::SystemInfo const& info,
87 ) /*override*/;
88
89 virtual bool _hasSingleTickCategory(::Bedrock::typeid_t<::SystemCategory> const category) const /*override*/;
90 // NOLINTEND
91
92public:
93 // member functions
94 // NOLINTBEGIN
95 MCNAPI EntitySystems(::std::unique_ptr<::IEntitySystemsCollection> systems, ::std::string name);
96
97 MCNAPI ::std::vector<::gsl::not_null<::SystemInfo const*>>
99
101
102 MCNAPI_C void registerEvents(::EntityRegistry& registry);
103
105
107
109
110 MCNAPI_C ::std::pair<::std::function<void(::TickingSystemId)>, ::std::function<void(::TickingSystemId)>>
111 setSystemInvokeCallbacks(
112 ::std::function<void(::TickingSystemId)>&& preInvoke,
113 ::std::function<void(::TickingSystemId)>&& postInvoke
114 );
115
116 MCNAPI_C void tick(::EntityRegistry& registry);
117 // NOLINTEND
118
119public:
120 // constructor thunks
121 // NOLINTBEGIN
122 MCNAPI void* $ctor(::std::unique_ptr<::IEntitySystemsCollection> systems, ::std::string name);
123 // NOLINTEND
124
125public:
126 // destructor thunk
127 // NOLINTBEGIN
128 MCNAPI void $dtor();
129 // NOLINTEND
130
131public:
132 // virtual function thunks
133 // NOLINTBEGIN
135
137
139 ::gsl::span<::Bedrock::typeid_t<::SystemCategory> const> categories,
140 ::std::unique_ptr<::ITickingSystem> system,
141 ::SystemInfo const& info,
142 ::EntitySystemTickingMode tickingMode
143 );
144
146
147
148 // NOLINTEND
149
150public:
151 // vftables
152 // NOLINTBEGIN
154
155 MCNAPI static void** $vftableForIEntitySystems();
156 // NOLINTEND
157};
Definition EnableNonOwnerReferences.h:7
Definition typeid_t.h:25
Definition EcsEventDispatcher.h:23
Definition EntityRegistry.h:11
MCAPI ::std::vector<::gsl::not_null<::SystemInfo const * > > getSystemInfo(::Bedrock::typeid_t<::SystemCategory > const &filter) const
MCAPI void * $ctor(::std::unique_ptr<::IEntitySystemsCollection > systems, ::std::string name)
MCAPI void $registerTickingSystem(::gsl::span<::Bedrock::typeid_t<::SystemCategory > const > categories, ::std::unique_ptr<::ITickingSystem > system, ::SystemInfo const &info, ::EntitySystemTickingMode tickingMode)
MCAPI void registerMovementTickingSystem(::TickingSystemWithInfo &&system)
MCAPI bool $_hasSingleTickCategory(::Bedrock::typeid_t<::SystemCategory > const category) const
MCAPI void registerEditorOnlyTickingSystem(::TickingSystemWithInfo &&system)
MCAPI void $tickMovementCorrectionReplay(::EntityRegistry &registry)
static MCAPI void ** $vftableForEnableNonOwnerReferences()
MCAPI void $dtor()
static MCAPI void ** $vftableForIEntitySystems()
MCAPI EntitySystems(::std::unique_ptr<::IEntitySystemsCollection > systems, ::std::string name)
MCAPI void registerTickingSystem(::TickingSystemWithInfo &&system)
MCAPI void registerGameOnlyTickingSystem(::TickingSystemWithInfo &&system)
MCAPI void $tickMovementCatchup(::EntityRegistry &registry)
Definition IEntitySystems.h:17
Definition ITickingSystem.h:15
Definition PlayerInteractionSystem.h:12
Definition EntitySystemTickingMode.h:5
Definition EntitySystems.h:37
Definition EntitySystems.h:39
Definition EntitySystems.h:41
Definition EntitySystems.h:45
Definition IEntitySystemsCollection.h:21
Definition SystemCategory.h:5
Definition SystemInfo.h:14
Definition TickingSystemId.h:5
Definition TickingSystemWithInfo.h:13