summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actActorEditorNode.h
blob: 3416a28bb9c1c6fe1639e6c138380233737e6012 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#pragma once

#include <prim/seadSafeString.h>

namespace ksys::act {

namespace ai {
class RootAi;
}

class ActorEditorNode {
public:
    struct ConnectArg {
        ai::RootAi* root_ai;
        sead::SafeString actor_name;
        u32 actor_id;
    };

    ActorEditorNode();
    virtual ~ActorEditorNode();

    void connect(const ConnectArg& arg);
    void disconnect();
    void onAiEnter();
    void log(const sead::SafeString& system, const sead::SafeString& message) const;
    bool isConnected() const;

private:
    enum class State : u8 {
        Disconnected = 0,
        Connected = 1,
    };

    State mState = State::Disconnected;
    ai::RootAi* mRootAi = nullptr;
    sead::SafeString mActorName;
    u32 mActorId = 0xffffffff;
};

}  // namespace ksys::act