RedCore
Loading...
Searching...
No Matches
ActorClassExtender.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/ActorUniqueID.h>
4#include <container/seadTreeMap.h>
5#include <container/seadTList.h>
6#include <prim/seadRuntimeTypeInfo.h>
7
8class ActorBase;
9
10namespace red {
11
12 class ClassExtension;
14
16 public:
17 [[nodiscard]]
18 static ClassExtensionInstance* get(ActorUniqueID id, const sead::RuntimeTypeInfo::Interface* typeInfo);
19
20 template <typename T>
21 [[nodiscard]]
22 static ClassExtensionInstance* get(ActorUniqueID id) {
23 return get(id, T::getRuntimeTypeInfoStatic());
24 }
25
26 public: // hooks
27 static void init();
28 static void onCreate(ActorBase* actor);
29 static void onDelete(ActorBase* actor);
30
31 private:
33
34 static sead::TList<red::ClassExtension*> sActorExtensions;
36 };
37
38}
Definition ActorClassExtender.h:15
static void onCreate(ActorBase *actor)
static ClassExtensionInstance * get(ActorUniqueID id, const sead::RuntimeTypeInfo::Interface *typeInfo)
static ClassExtensionInstance * get(ActorUniqueID id)
Definition ActorClassExtender.h:22
static void onDelete(ActorBase *actor)
Definition ClassExtension.h:64
Definition ClassExtension.h:11
Definition RegisterActorExtensionsEvent.h:13
Definition ActorDonutBlock.h:5