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#include "mc/deps/profiler/PredeclaredAnnotation.h"
11
12// auto generated forward declare list
13// clang-format off
15class EntityRegistry;
16class ITickingSystem;
20struct SystemCategory;
21struct SystemInfo;
22struct 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
57 using TotalTickCallbackFunc = ::std::function<void()>;
58
59 using TotalTickCallbackPair = ::std::pair<::std::function<void()>, ::std::function<void()>>;
60
61 using TotalTickCallbackSig = void();
62
63public:
64 // member variables
65 // NOLINTBEGIN
66 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PlayerInteractionSystem>> mPlayerInteractionSystem;
67 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IEntitySystemsCollection>> mSystems;
68 ::ll::TypedStorage<8, 16, ::OwnerPtr<::EcsEventDispatcher>> mDispatcher;
69 ::ll::TypedStorage<8, 32, ::std::string> mName;
70 ::ll::TypedStorage<1, 1, bool> mEnableTimingCapture;
71 ::ll::TypedStorage<8, 64, ::std::function<void()>> mPreTotalTick;
72 ::ll::TypedStorage<8, 64, ::std::function<void()>> mPostTotalTick;
73 ::ll::TypedStorage<8, 64, ::std::function<void(::TickingSystemId)>> mPreSystemInvoke;
74 ::ll::TypedStorage<8, 64, ::std::function<void(::TickingSystemId)>> mPostSystemInvoke;
75 ::ll::TypedStorage<8, 8, ::Bedrock::Profiler::details::PredeclaredAnnotation> mTickingAnnotation;
76 // NOLINTEND
77
78public:
79 // prevent constructor by default
80 EntitySystems();
81
82public:
83 // virtual functions
84 // NOLINTBEGIN
85 virtual ~EntitySystems() /*override*/ = default;
86
87 virtual void tickMovementCatchup(::EntityRegistry& registry) /*override*/;
88
89 virtual void tickMovementCorrectionReplay(::EntityRegistry& registry) /*override*/;
90
91 virtual void registerTickingSystem(
92 ::gsl::span<::Bedrock::typeid_t<::SystemCategory> const> categories,
93 ::std::unique_ptr<::ITickingSystem> system,
94 ::SystemInfo const& info,
96 ) /*override*/;
97
98 virtual bool _hasSingleTickCategory(::Bedrock::typeid_t<::SystemCategory> const category) const /*override*/;
99 // NOLINTEND
100
101public:
102 // member functions
103 // NOLINTBEGIN
104 MCAPI EntitySystems(::std::unique_ptr<::IEntitySystemsCollection> systems, ::std::string_view name);
105
106 MCAPI void registerEvents(::EntityRegistry& registry);
107
108#ifdef LL_PLAT_C
109 MCAPI ::std::pair<::std::function<void(::TickingSystemId)>, ::std::function<void(::TickingSystemId)>>
110 setSystemInvokeCallbacks(
111 ::std::function<void(::TickingSystemId)>&& preInvoke,
112 ::std::function<void(::TickingSystemId)>&& postInvoke
113 );
114
115 MCAPI ::std::pair<::std::function<void()>, ::std::function<void()>>
116 setTotalTickCallbacks(::std::function<void()>&& preTick, ::std::function<void()>&& postTick);
117#endif
118
119 MCAPI void tick(::EntityRegistry& registry);
120
121 MCAPI void tickEditor(::EntityRegistry& registry);
122
123 MCAPI void tickInitialize(::EntityRegistry& registry);
124 // NOLINTEND
125
126public:
127 // constructor thunks
128 // NOLINTBEGIN
129 MCAPI void* $ctor(::std::unique_ptr<::IEntitySystemsCollection> systems, ::std::string_view name);
130 // NOLINTEND
131
132public:
133 // virtual function thunks
134 // NOLINTBEGIN
135 MCAPI void $tickMovementCatchup(::EntityRegistry& registry);
136
137 MCAPI void $tickMovementCorrectionReplay(::EntityRegistry& registry);
138
139 MCAPI void $registerTickingSystem(
140 ::gsl::span<::Bedrock::typeid_t<::SystemCategory> const> categories,
141 ::std::unique_ptr<::ITickingSystem> system,
142 ::SystemInfo const& info,
143 ::EntitySystemTickingMode tickingMode
144 );
145
146 MCAPI bool $_hasSingleTickCategory(::Bedrock::typeid_t<::SystemCategory> const category) const;
147
148
149 // NOLINTEND
150};
Definition EnableNonOwnerReferences.h:7
Definition typeid_t.h:36
Definition EcsEventDispatcher.h:23
Definition EntityRegistry.h:10
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:13
Definition TickingSystemId.h:5