Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
CreatorMetadataUtils.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/script_core/reflection/scripting/Privilege.h"
7
8// auto generated forward declare list
9// clang-format off
10class ActorDefinition;
11class BiomeRegistry;
12class CameraPresets;
13class CommandRegistry;
14class ItemRegistryRef;
15namespace Core { class Path; }
16namespace CreatorMetadataUtils { struct ServerMetadataOutputPaths; }
17namespace Json { class Value; }
18namespace Scripting { class ScriptEngine; }
19namespace Scripting { struct ConstantFactory; }
20namespace Scripting { struct FunctionBinding; }
21namespace Scripting { struct ModuleBinding; }
22namespace Scripting { struct ModuleBindingBundle; }
23namespace Scripting { struct ModuleDependency; }
24namespace Scripting { struct ModuleDescriptor; }
25namespace Scripting { struct PropertyBinding; }
26namespace Scripting { struct SupportedBindingModule; }
27namespace Scripting { struct Version; }
28// clang-format on
29
30namespace CreatorMetadataUtils {
31// functions
32// NOLINTBEGIN
33#ifdef LL_PLAT_S
34MCNAPI ::Json::Value CreateDefaultTypeJson();
35
36MCNAPI ::Json::Value MetaAnyToJSON(::entt::meta_any value);
37
38MCNAPI ::std::optional<::Json::Value> MetaClassTypeToJSON(
39 ::Scripting::ModuleBinding const& moduleToBind,
40 ::entt::meta_type const& type,
41 ::Scripting::ModuleBindingBundle const& loadedModules
42);
43
44MCNAPI ::Json::Value MetaTypeToJSON(
45 ::Scripting::ModuleBinding const& moduleToBind,
46 ::entt::meta_type const& type,
47 ::Scripting::ModuleBindingBundle const& loadedModules,
48 ::std::string const& bindingName
49);
50
51MCNAPI void _addCommonEngineMetadata(::Json::Value& root, char const* type);
52
53MCNAPI void _addCommonVanillaMetadata(::Json::Value& jsonRoot, char const* type);
54
55MCNAPI void _addPrivilegeToArray(::Json::Value& arr, ::Scripting::Privilege privilege);
56
57MCNAPI ::Json::Value _generateScriptingModuleMetadataJson(
58 ::Scripting::ModuleBinding const& moduleToBind,
59 ::Scripting::SupportedBindingModule const& moduleDescriptor,
60 ::Scripting::ModuleBindingBundle const& loadedModules
61);
62
63MCNAPI ::std::optional<::Scripting::Privilege> _tryGetPrivilegeTypeOfClosureTemplateType(::entt::meta_type const& type);
64
65MCNAPI void generateCommandsDocumentation(::CommandRegistry& commandRegistry, ::Core::Path const& docsFolder);
66
67MCNAPI ::Json::Value generateConstantDocumentation(
68 ::Scripting::ModuleBinding const& moduleToBind,
69 ::Scripting::ConstantFactory const& constantBinding,
70 ::Scripting::ModuleBindingBundle const& loadedModules
71);
72
73MCNAPI void generateCreatorScriptingMetadata(
74 ::Scripting::ScriptEngine& scriptEngine,
75 ::CreatorMetadataUtils::ServerMetadataOutputPaths const& outputPaths,
76 ::ItemRegistryRef itemRegistry,
77 ::std::unordered_map<::std::string, ::std::unique_ptr<::ActorDefinition>> const& actorDefinitionList,
78 ::CameraPresets const& presets,
79 ::BiomeRegistry const& biomes
80);
81
82MCNAPI ::Json::Value generateFunctionDocumentation(
83 ::Scripting::ModuleBinding const& moduleToBind,
84 ::Scripting::FunctionBinding const& functionBinding,
85 bool isConstructor,
86 ::Scripting::ModuleBindingBundle const& loadedModules
87);
88
89MCNAPI ::Json::Value generateModuleDependencyJson(::Scripting::ModuleDependency const& dependency);
90
91MCNAPI ::Json::Value generateModuleDescriptionJson(::Scripting::ModuleDescriptor const& descriptor);
92
93MCNAPI void generateMolangQueriesDocumentation(::Core::Path const& docsFolder);
94
95MCNAPI ::Json::Value generatePropertiesDocumentation(
96 ::Scripting::ModuleBinding const& moduleToBind,
97 ::std::vector<::Scripting::PropertyBinding> const& properties,
98 ::Scripting::ModuleBindingBundle const& loadedModules,
99 bool checkPrivilege,
100 bool checkReadOnly,
101 bool allowSettableProperties
102);
103
104MCNAPI void generateVanillaDataDocumentation(
105 ::Core::Path const& docsFolder,
106 ::ItemRegistryRef const itemRegistry,
107 ::std::unordered_map<::std::string, ::std::unique_ptr<::ActorDefinition>> const& actorDefinitionList,
108 ::CameraPresets const& presets,
109 ::BiomeRegistry const& biomes
110);
111
112MCNAPI ::CreatorMetadataUtils::ServerMetadataOutputPaths getAndCleanServerMetadataPaths();
113
114MCNAPI ::std::string getGameSemVersionAsString();
115#endif
116
117MCNAPI ::CreatorMetadataUtils::ServerMetadataOutputPaths getServerMetadataPaths();
118
119#ifdef LL_PLAT_S
120MCNAPI ::std::string scriptingVersionToString(::Scripting::Version const& version);
121
122MCNAPI void sortJsonElementsByName(::Json::Value& jsonArray, bool const removeDuplicates);
123
124MCNAPI bool validateVariantResolution(
125 ::Scripting::ModuleBinding const& moduleToBind,
126 ::entt::meta_type const& variantType,
127 ::Scripting::ModuleBindingBundle const& loadedModules,
128 ::std::string const& bindingName
129);
130
131MCNAPI bool writeJsonMetadataToFile(::Json::Value const& json, ::Core::Path const& filepath);
132#endif
133// NOLINTEND
134
135} // namespace CreatorMetadataUtils
Definition ActorDefinition.h:80
Definition BiomeRegistry.h:37
Definition CameraPresets.h:20
Definition CommandRegistry.h:51
Definition Path.h:10
Definition ItemRegistryRef.h:36
Definition Value.h:16
Definition ScriptEngine.h:21
Definition ServerMetadataOutputPaths.h:7
Definition ConstantFactory.h:15
Definition FunctionBinding.h:10
Definition ModuleBindingBundle.h:15
Definition ModuleBinding.h:23
Definition ModuleDependency.h:14
Definition ModuleDescriptor.h:7
Definition PropertyBinding.h:10
Definition SupportedBindingModule.h:7
Definition Version.h:7