Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
IEntitySystemsCollection.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/typeid_t.h"
7
8// auto generated forward declare list
9// clang-format off
10class ITickingSystem;
11struct ComponentInfo;
13struct ISystem;
14struct SystemCategory;
15struct SystemInfo;
16struct SystemTiming;
17struct TickingSystemId;
19// clang-format on
20
22public:
23 // IEntitySystemsCollection inner types define
24 using SystemIndex = uint;
25
26public:
27 // virtual functions
28 // NOLINTBEGIN
29 virtual ~IEntitySystemsCollection() = default;
30
31 virtual void registerTickingSystem(
32 ::gsl::span<::Bedrock::typeid_t<::SystemCategory> const> categories,
33 ::std::unique_ptr<::ITickingSystem> system,
34 ::SystemInfo const& info,
36 ) = 0;
37
38 virtual void registerSystem(::std::unique_ptr<::ISystem> system, ::SystemInfo const& info) = 0;
39
40 virtual void foreachSystem(::std::function<void(::ISystem&)> const& callback) = 0;
41
42 virtual void foreachTickingSystem(::TickingSystemIterator const& it) = 0;
43
44 virtual void foreachSingleTickingSystem(::TickingSystemIterator const& it) = 0;
45
46 virtual uint64 getLargestSystemIndex() const = 0;
47
48 virtual ::SystemInfo const* getSystemInfoForTickingSystemId(::TickingSystemId id) const = 0;
49
50 virtual ::ITickingSystem* getTickingSystemForTickingSystemId(::TickingSystemId id) const = 0;
51
52 virtual ::ComponentInfo const* getComponentInfoForId(uint id) const = 0;
53
54 virtual void foreachComponentInfo(::std::function<void(uint, ::ComponentInfo const&)> const& callback) const = 0;
55
56 virtual bool hasSingleTickCategory(::Bedrock::typeid_t<::SystemCategory> const category) const = 0;
57
58 virtual ::std::vector<::SystemTiming> gatherSystemTimings() const = 0;
59
60 virtual void initPerfHints() = 0;
61
62 virtual bool _isValidIndex(uint index) const = 0;
63 // NOLINTEND
64};
Definition typeid_t.h:36
Definition ITickingSystem.h:15
Definition ComponentInfo.h:5
Definition EntitySystemTickingMode.h:5
Definition IEntitySystemsCollection.h:21
Definition ISystem.h:5
Definition SystemCategory.h:5
Definition SystemInfo.h:14
Definition SystemTiming.h:13
Definition TickingSystemId.h:5
Definition TickingSystemIterator.h:5