File tree Expand file tree Collapse file tree
include/Lodestone.Minecraft.Console
include/Lodestone.Minecraft.Java
include/Lodestone.Core/loader Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -36,9 +36,11 @@ namespace lodestone::minecraft::console {
3636 lodestone::common::util::Semver getVersion () const override ;
3737 };
3838
39+ #ifndef __EMSCRIPTEN__
3940 extern " C" {
4041 core::LodestoneExtension *lodestoneInit ();
4142 }
43+ #endif
4244}
4345
4446#endif // LODESTONE_LODESTONELCE_H
Original file line number Diff line number Diff line change @@ -28,7 +28,9 @@ namespace lodestone::minecraft::console {
2828 return VERSION ;
2929 }
3030
31+ #ifndef __EMSCRIPTEN__
3132 core::LodestoneExtension *lodestoneInit () {
3233 return LodestoneLCE::getInstance ();
3334 }
35+ #endif
3436}
Original file line number Diff line number Diff line change @@ -39,9 +39,11 @@ namespace lodestone::minecraft::java {
3939 lodestone::conversion::block::version::VersionedBlockIO m_blockIo;
4040 };
4141
42+ #ifndef __EMSCRIPTEN__
4243 extern " C" {
4344 core::LodestoneExtension *lodestoneInit ();
4445 }
46+ #endif
4547} // namespace lodestone::minecraft::java
4648
4749#endif // LODESTONE_MAIN_H
Original file line number Diff line number Diff line change @@ -782,7 +782,9 @@ namespace lodestone::minecraft::java {
782782
783783 lodestone::common::util::Semver LodestoneJava::getVersion () const { return VERSION ; }
784784
785+ #ifndef __EMSCRIPTEN__
785786 core::LodestoneExtension *lodestoneInit () {
786787 return LodestoneJava::getInstance ();
787788 }
789+ #endif
788790} // namespace lodestone::minecraft::java
Original file line number Diff line number Diff line change @@ -10,9 +10,11 @@ set(FILES
1010 include/Lodestone.Core/LodestoneExtension.h
1111 include/Lodestone.Core/loader/ExtensionLoader.h
1212 include/Lodestone.Core/loader/NativeExtensionLoader.h
13+ include/Lodestone.Core/loader/StaticExtensionLoader.h
1314 include/Lodestone.Core/loader/LibraryHandle.h
1415 src/loader/ExtensionLoader.cpp
1516 src/loader/NativeExtensionLoader.cpp
17+ src/loader/StaticExtensionLoader.cpp
1618 src/loader/LibraryHandle.cpp
1719 src/loader/exception/LoadLibraryException.cpp
1820 include/Lodestone.Core/loader/exception/LoadLibraryException.h
Original file line number Diff line number Diff line change 2020namespace lodestone ::core::loader {
2121 class ExtensionLoader {
2222 public:
23+ #ifndef __EMSCRIPTEN__
2324 using LodestoneInit = lodestone::core::LodestoneExtension *(*)(void );
25+ #endif
2426 static constexpr const char *ENTRYPOINT = " lodestoneInit" ;
2527
2628 virtual ~ExtensionLoader () = default ;
2729
2830 explicit ExtensionLoader (core::Lodestone *core);
2931
3032 virtual void load () = 0;
33+ #ifndef __EMSCRIPTEN__
3134 virtual void loadExtension (LodestoneInit entrypoint);
35+ #endif
3236
3337 public:
3438 common::event::CancellableEvent<const std::filesystem::path &> extensionLoadingEvent;
Original file line number Diff line number Diff line change 1+ //
2+ // Created by zero on 7/12/26.
3+ //
4+
5+ #ifndef LODESTONE_STATIC_EXTENSION_LOADER_H
6+ #define LODESTONE_STATIC_EXTENSION_LOADER_H
7+ #include " Lodestone.Core/loader/ExtensionLoader.h"
8+
9+ namespace lodestone ::core::loader {
10+ class StaticExtensionLoader : public ExtensionLoader {
11+ public:
12+ explicit StaticExtensionLoader (core::Lodestone *core)
13+ : ExtensionLoader(core) {
14+ }
15+
16+ void load () override {}
17+
18+ void loadExtension (core::LodestoneExtension *ext);
19+ };
20+ }
21+
22+ #endif // LODESTONE_STATIC_EXTENSION_LOADER_H
Original file line number Diff line number Diff line change 1313namespace lodestone ::core::loader {
1414 ExtensionLoader::ExtensionLoader (core::Lodestone* core) : m_core(core) {}
1515
16+ #ifndef __EMSCRIPTEN__
1617 void ExtensionLoader::loadExtension (const LodestoneInit entrypoint) {
1718 core::LodestoneExtension *ext = entrypoint ();
1819
1920 this ->extensionLoadedEvent .notify (ext);
2021 this ->m_core ->registerExtension (ext);
2122 }
23+ #endif
2224}
Original file line number Diff line number Diff line change 1919
2020namespace lodestone ::core::loader {
2121 void NativeExtensionLoader::load () {
22+ #ifndef __EMSCRIPTEN__
2223 if (!std::filesystem::exists (this ->m_extensionsDirectory )) {
2324 if (std::error_code ec; !std::filesystem::create_directories (
2425 this ->m_extensionsDirectory , ec)) {
@@ -72,5 +73,6 @@ namespace lodestone::core::loader {
7273
7374 this ->loadExtension (init);
7475 }
76+ #endif
7577 }
7678}
Original file line number Diff line number Diff line change 1+ //
2+ // Created by zero on 7/12/26.
3+ //
4+
5+ #include " Lodestone.Core/loader/StaticExtensionLoader.h"
6+
7+ void lodestone::core::loader::StaticExtensionLoader::loadExtension (core::LodestoneExtension *ext) {
8+ this ->extensionLoadedEvent .notify (ext);
9+ this ->m_core ->registerExtension (ext);
10+ }
You can’t perform that action at this time.
0 commit comments