LeviLamina
Loading...
Searching...
No Matches
ScriptPlugin.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/resource/PackIdVersion.h"
7#include "mc/deps/core/resource/ResourceInformation.h"
8#include "mc/deps/scripting/runtime/IDependencyLoader.h"
9#include "mc/deps/scripting/runtime/IPrinter.h"
10#include "mc/deps/scripting/script_engine/Capabilities.h"
11#include "mc/deps/scripting/script_engine/ModuleDescriptor.h"
12#include "mc/deps/scripting/script_engine/ScriptContext.h"
13#include "mc/resources/MinEngineVersion.h"
14#include "mc/scripting/PluginExecutionGroup.h"
15#include "mc/scripting/ScriptRuntimeType.h"
16
17// auto generated forward declare list
18// clang-format off
22namespace Scripting { struct BaseError; }
23namespace Scripting { struct ContextId; }
24namespace Scripting { struct ScriptData; }
25// clang-format on
26
27class ScriptPlugin : public ::Scripting::IDependencyLoader, public ::Scripting::IPrinter {
28public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IScriptPluginSource>> mPluginSource;
32 ::ll::TypedStorage<8, 96, ::Scripting::ModuleDescriptor> mModuleDescriptor;
33 ::ll::TypedStorage<8, 24, ::std::vector<::Scripting::ModuleDescriptor>> mModuleDependencies;
34 ::ll::TypedStorage<1, 1, ::Scripting::Capabilities> mCapabilities;
35 ::ll::TypedStorage<8, 32, ::MinEngineVersion const> mMinEngineVersion;
36 ::ll::TypedStorage<8, 48, ::PackIdVersion> mPackId;
37 ::ll::TypedStorage<8, 32, ::std::string> mRuntimeName;
38 ::ll::TypedStorage<4, 4, ::ScriptRuntimeType> mRuntimeType;
39 ::ll::TypedStorage<8, 32, ::std::string> mRuntimeFileExt;
40 ::ll::TypedStorage<8, 32, ::std::string> mMainScriptFilePath;
41 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mScriptPaths;
42 ::ll::TypedStorage<8, 32, ::Scripting::ScriptContext> mContext;
43 ::ll::TypedStorage<1, 1, ::PluginExecutionGroup const> mExecutionGroup;
44 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ScriptPluginHandleCounter>> mHandleCounter;
45 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scripting::IPrinter>> mPrintLogger;
46 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptSentryLogger>> mSentryLogger;
47 // NOLINTEND
48
49public:
50 // prevent constructor by default
51 ScriptPlugin();
52
53public:
54 // virtual functions
55 // NOLINTBEGIN
56 virtual ~ScriptPlugin() /*override*/;
57
58 virtual ::std::optional<::Scripting::ScriptData> onLoadScript(::std::string const& name) /*override*/;
59
60 virtual void onInfo(::Scripting::ContextId contextId, ::std::string_view message) const /*override*/;
61
62 virtual void onWarn(::Scripting::ContextId contextId, ::std::string_view message) const /*override*/;
63
64 virtual void onError(::Scripting::ContextId contextId, ::std::string_view message) const /*override*/;
65
66 virtual void onException(
67 ::Scripting::ContextId contextId,
68 ::Scripting::BaseError const& error,
69 ::entt::meta_any const& errorAny
70 ) const /*override*/;
71
72 virtual bool shouldPrintException(
73 ::Scripting::ContextId contextId,
74 ::Scripting::BaseError const& error,
75 ::entt::meta_any const& errorAny
76 ) const /*override*/;
77
78 virtual void onPromiseRejection(
79 ::Scripting::ContextId contextId,
80 ::Scripting::BaseError const& error,
81 ::entt::meta_any const& errorAny,
82 bool isHandled
83 ) const /*override*/;
84 // NOLINTEND
85
86public:
87 // member functions
88 // NOLINTBEGIN
89 MCAPI ScriptPlugin(
90 ::std::shared_ptr<::IScriptPluginSource> pluginSource,
92 ::std::vector<::Scripting::ModuleDescriptor>&& moduleDependencies,
93 ::Scripting::Capabilities&& capabilities,
94 ::MinEngineVersion const& minEngineVersion,
95 ::PackIdVersion const& packId,
96 ::std::string const& runtimeName,
97 ::std::string const& mainScriptFilePath,
98 ::ResourceInformation::ResourceType pluginType,
99 ::PluginExecutionGroup executionGroup,
100 ::std::unique_ptr<::Scripting::IPrinter> printLogger
101 );
102
103 MCAPI ::std::optional<::Scripting::ScriptData> _loadScript(::std::string const& fileName);
104
105 MCAPI void enableHandleCounter(bool enabled);
106
107 MCAPI ::ScriptPluginHandleCounter* getHandleCounter() const;
108
109 MCFOLD ::std::string const& getMainScriptFilePath() const;
110
111 MCFOLD ::Scripting::ModuleDescriptor const& getModuleDescriptor() const;
112
113 MCFOLD ::std::string const& getName() const;
114
115 MCFOLD ::PackIdVersion const& getPackId() const;
116
117 MCFOLD ::std::string const& getRuntimeName() const;
118
119 MCFOLD ::Scripting::ScriptContext& getScriptContext();
120
121 MCFOLD ::std::vector<::std::string> const& getScriptFilePaths() const;
122
123 MCAPI void setSentryLogger(::std::unique_ptr<::ScriptSentryLogger> sentryLogger);
124 // NOLINTEND
125
126public:
127 // constructor thunks
128 // NOLINTBEGIN
129 MCAPI void* $ctor(
130 ::std::shared_ptr<::IScriptPluginSource> pluginSource,
132 ::std::vector<::Scripting::ModuleDescriptor>&& moduleDependencies,
133 ::Scripting::Capabilities&& capabilities,
134 ::MinEngineVersion const& minEngineVersion,
135 ::PackIdVersion const& packId,
136 ::std::string const& runtimeName,
137 ::std::string const& mainScriptFilePath,
138 ::ResourceInformation::ResourceType pluginType,
139 ::PluginExecutionGroup executionGroup,
140 ::std::unique_ptr<::Scripting::IPrinter> printLogger
141 );
142 // NOLINTEND
143
144public:
145 // destructor thunk
146 // NOLINTBEGIN
147 MCAPI void $dtor();
148 // NOLINTEND
149
150public:
151 // virtual function thunks
152 // NOLINTBEGIN
153 MCAPI ::std::optional<::Scripting::ScriptData> $onLoadScript(::std::string const& name);
154
155 MCAPI void $onInfo(::Scripting::ContextId contextId, ::std::string_view message) const;
156
157 MCAPI void $onWarn(::Scripting::ContextId contextId, ::std::string_view message) const;
158
159 MCAPI void $onError(::Scripting::ContextId contextId, ::std::string_view message) const;
160
161 MCAPI void $onException(
162 ::Scripting::ContextId contextId,
163 ::Scripting::BaseError const& error,
164 ::entt::meta_any const& errorAny
165 ) const;
166
167 MCAPI bool $shouldPrintException(
168 ::Scripting::ContextId contextId,
169 ::Scripting::BaseError const& error,
170 ::entt::meta_any const& errorAny
171 ) const;
172
173 MCAPI void $onPromiseRejection(
174 ::Scripting::ContextId contextId,
175 ::Scripting::BaseError const& error,
176 ::entt::meta_any const& errorAny,
177 bool isHandled
178 ) const;
179
180
181 // NOLINTEND
182
183public:
184 // vftables
185 // NOLINTBEGIN
186 MCNAPI static void** $vftableForIDependencyLoader();
187
188 MCNAPI static void** $vftableForIPrinter();
189 // NOLINTEND
190};
Definition IScriptPluginSource.h:10
Definition MinEngineVersion.h:15
Definition ScriptPluginHandleCounter.h:15
static MCAPI void ** $vftableForIPrinter()
static MCAPI void ** $vftableForIDependencyLoader()
Definition ScriptSentryLogger.h:15
Definition IDependencyLoader.h:12
Definition IPrinter.h:13
Definition PackIdVersion.h:10
Definition BaseError.h:12
Definition Capabilities.h:7
Definition ContextId.h:7
Definition ModuleDescriptor.h:7
Definition ScriptData.h:7