LeviLamina
Loading...
Searching...
No Matches
ScriptStructureManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/lifetime_registry/StrongTypedObjectHandle.h"
7#include "mc/deps/scripting/lifetime_registry/WeakHandleFromThis.h"
8#include "mc/deps/scripting/lifetime_registry/WeakLifetimeScope.h"
9#include "mc/deps/scripting/runtime/Result.h"
10#include "mc/world/level/levelgen/structure/StructureRedstoneSaveMode.h"
11
12// auto generated forward declare list
13// clang-format off
14class BoundingBox;
15class ServerLevel;
17class Vec3;
18namespace ScriptModuleMinecraft { class ScriptDimension; }
19namespace ScriptModuleMinecraft { class ScriptStructureTemplate; }
20namespace ScriptModuleMinecraft { struct ScriptInvalidStructureError; }
21namespace ScriptModuleMinecraft { struct ScriptJigsawPlaceOptions; }
22namespace ScriptModuleMinecraft { struct ScriptJigsawStructurePlaceOptions; }
23namespace ScriptModuleMinecraft { struct ScriptPlaceJigsawError; }
24namespace ScriptModuleMinecraft { struct ScriptStructureCreateOptions; }
25namespace ScriptModuleMinecraft { struct ScriptStructurePlaceOptions; }
26namespace Scripting { struct ArgumentOutOfBoundsError; }
27namespace Scripting { struct ClassBinding; }
28namespace Scripting { struct ContextConfig; }
29namespace Scripting { struct EngineError; }
30namespace Scripting { struct InvalidArgumentError; }
31// clang-format on
32
33namespace ScriptModuleMinecraft {
34
35class ScriptStructureManager : public ::Scripting::WeakHandleFromThis<::ScriptModuleMinecraft::ScriptStructureManager> {
36public:
37 // member variables
38 // NOLINTBEGIN
39 ::ll::TypedStorage<8, 16, ::Scripting::WeakLifetimeScope> mScope;
40 ::ll::TypedStorage<8, 8, ::gsl::not_null<::ServerLevel*>> mLevel;
41 ::ll::TypedStorage<
42 8,
43 64,
44 ::std::unordered_map<
45 ::std::string,
47 mStructures;
48 ::ll::TypedStorage<8, 32, ::std::optional<::std::vector<::std::string>>> mPackStructureIds;
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
53 ScriptStructureManager();
54
55public:
56 // member functions
57 // NOLINTBEGIN
58 MCAPI ScriptStructureManager(::ScriptModuleMinecraft::ScriptStructureManager const&);
59
60 MCAPI ScriptStructureManager(::Scripting::WeakLifetimeScope const& scope, ::gsl::not_null<::ServerLevel*> level);
61
62 MCAPI ::std::string_view _getPlaceErrorMessage(::std::string_view key) const;
63
64 MCAPI ::StructureTemplate const* _getStructure(
65 ::std::variant<
66 ::std::string,
68 scriptStructureOrName
69 ) const;
70
71 MCAPI ::Scripting::Result<
75 createEmptyStructure(::std::string const& identifier, ::Vec3 const& size, ::StructureRedstoneSaveMode saveMode);
76
77 MCAPI ::Scripting::Result<
80 createStructureFromWorld(
81 ::std::string const& identifier,
83 ::Vec3 const& from,
84 ::Vec3 const& to,
85 ::std::optional<::ScriptModuleMinecraft::ScriptStructureCreateOptions> const& options
86 );
87
88 MCAPI ::Scripting::Result<bool, ::Scripting::InvalidArgumentError> deleteStructure(
89 ::std::variant<
90 ::std::string,
92 scriptStructureOrName
93 );
94
95 MCAPI ::Scripting::StrongTypedObjectHandle<::ScriptModuleMinecraft::ScriptStructureTemplate>
96 getOrCreateScriptStructure(::StructureTemplate& structureTemplate);
97
98 MCAPI ::std::vector<::std::string> getPackStructureIds(::Scripting::ContextConfig const& contextConfig);
99
100 MCAPI ::std::optional<::Scripting::StrongTypedObjectHandle<::ScriptModuleMinecraft::ScriptStructureTemplate>>
101 getStructure(::std::string const& identifier);
102
103 MCAPI ::std::vector<::std::string> getWorldStructureIds() const;
104
105 MCAPI ::ScriptModuleMinecraft::ScriptStructureManager&
107
108 MCAPI ::Scripting::Result<::BoundingBox, ::ScriptModuleMinecraft::ScriptPlaceJigsawError> placeJigsaw(
109 ::std::string const& pool,
110 ::std::string const& targetJigsaw,
111 int maxDepth,
113 ::Vec3 const& location,
114 ::std::optional<::ScriptModuleMinecraft::ScriptJigsawPlaceOptions> const& options
115 );
116
117 MCAPI ::Scripting::Result<::BoundingBox, ::ScriptModuleMinecraft::ScriptPlaceJigsawError> placeJigsawStructure(
118 ::std::string const& identifier,
120 ::Vec3 const& location,
121 ::std::optional<::ScriptModuleMinecraft::ScriptJigsawStructurePlaceOptions> const& options
122 );
123
124 MCAPI ::Scripting::Result<
125 void,
129 placeStructure(
130 ::std::variant<
131 ::std::string,
133 scriptStructureOrName,
135 ::Vec3 const& location,
136 ::std::optional<::ScriptModuleMinecraft::ScriptStructurePlaceOptions> const& options
137 );
138
139 MCAPI ::std::optional<::Scripting::InvalidArgumentError> validateIdentifier(::std::string const& identifier) const;
140
141 MCAPI ~ScriptStructureManager();
142 // NOLINTEND
143
144public:
145 // static functions
146 // NOLINTBEGIN
147 MCAPI static ::Scripting::ClassBinding bind();
148 // NOLINTEND
149
150public:
151 // constructor thunks
152 // NOLINTBEGIN
153 MCAPI void* $ctor(::ScriptModuleMinecraft::ScriptStructureManager const&);
154
155 MCAPI void* $ctor(::Scripting::WeakLifetimeScope const& scope, ::gsl::not_null<::ServerLevel*> level);
156 // NOLINTEND
157
158public:
159 // destructor thunk
160 // NOLINTBEGIN
161 MCAPI void $dtor();
162 // NOLINTEND
163};
164
165} // namespace ScriptModuleMinecraft
Definition BoundingBox.h:13
Definition ScriptDimension.h:71
Definition ScriptStructureManager.h:35
Definition ScriptStructureTemplate.h:30
Definition StrongTypedObjectHandle.h:8
Definition WeakHandleFromThis.h:8
Definition WeakLifetimeScope.h:14
Definition ServerLevel.h:59
Definition StructureTemplate.h:35
Definition Vec3.h:10
Definition ScriptInvalidStructureError.h:15
Definition ScriptJigsawPlaceOptions.h:15
Definition ScriptJigsawStructurePlaceOptions.h:15
Definition ScriptPlaceJigsawError.h:15
Definition ScriptStructureCreateOptions.h:15
Definition ScriptStructurePlaceOptions.h:17
Definition ArgumentOutOfBoundsError.h:15
Definition ClassBinding.h:19
Definition ContextConfig.h:20
Definition EngineError.h:15
Definition InvalidArgumentError.h:17