Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
BlockUtilityTaskServiceProvider.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/game_refs/WeakRef.h"
7#include "mc/deps/script_core/runtime/scripting/Result_deprecated.h"
8#include "mc/editor/Task.h"
9
10// auto generated forward declare list
11// clang-format off
12class Block;
13class BlockPos;
14class BlockSource;
15class BoundingBox;
16namespace Editor { class ProjectRegion; }
17namespace Editor { class RelativeVolumeListBlockVolume; }
18namespace Editor { struct CoroutineStatus; }
19namespace Editor { struct ProbabilityBlockPaletteItem; }
20namespace Editor { struct SimpleBlockPaletteItem; }
21namespace Editor::BlockMask { class BlockMaskList; }
22namespace Editor::BlockUtils::Task { class BlockUtilityChunkedVolume; }
23namespace Editor::BlockUtils::Task { struct BlockUtilityExtrudeOptions; }
24namespace Editor::BlockUtils::Task { struct BlockUtilityExtrudeResult; }
25namespace Editor::BlockUtils::Task { struct BlockUtilityFillResult; }
26namespace Editor::BlockUtils::Task { struct BlockUtilityFloodSearchOptions; }
27namespace Editor::BlockUtils::Task { struct BlockUtilityManifest; }
28namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsCone; }
29namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsCuboid; }
30namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsCylinder; }
31namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsEllipsoid; }
32namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsPyramid; }
33namespace Editor::Coroutine { class CoroutineTaskContext; }
34// clang-format on
35
36namespace Editor::BlockUtils::Task {
37
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ~BlockUtilityTaskServiceProvider() = default;
43
44 virtual ::Editor::Task<
47 fillVolume(
50 ::std::optional<::Block const*> optBlock,
51 ::BlockSource* expectedBlockSource,
52 ::std::optional<::std::variant<::Editor::SimpleBlockPaletteItem, ::Editor::ProbabilityBlockPaletteItem>>
53 paletteItem
54 ) = 0;
55
56 virtual ::Editor::
57 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
58 trimVolumeToFitContents(
60 ::std::vector<::BlockPos> positions,
61 ::BoundingBox bounds,
62 bool alwaysReturnMarquee,
63 bool ignoreLiquid,
64 bool ignoreNoCollision,
66 ) = 0;
67
68 virtual ::Editor::
69 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
70 shrinkWrapVolume(
72 ::std::vector<::BlockPos> positions,
73 ::BoundingBox bounds
74 ) = 0;
75
76 virtual ::Editor::
77 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
78 findObscuredBlocksWithinVolume(
80 ::std::vector<::BlockPos> positions,
81 ::BoundingBox bounds
82 ) = 0;
83
84 virtual ::Editor::Task<
87 generateManifest(
89 ::std::vector<::BlockPos> positions,
90 ::BoundingBox bounds,
91 ::std::function<void(float, uint64)> progress,
92 ::std::optional<::WeakRef<::Editor::ProjectRegion>> existingRegion
93 ) = 0;
94
95 virtual ::Editor::Task<::Scripting::Result_deprecated<uint>, ::Editor::CoroutineStatus> replaceBlocksInSelection(
98 ::std::string fromBlockIdentifier,
99 ::Block const* toBlock,
100 ::BlockSource* expectedBlockSource
101 ) = 0;
102
103 virtual ::Editor::
104 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
105 floodSearch(
107 ::BlockPos seed,
109 ::std::function<void(::std::vector<::BlockPos> const&)> positionProgress
110 ) = 0;
111
112 virtual ::Editor::
113 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
114 extrude(
116 ::BlockPos seed,
118 ) = 0;
119
120 virtual ::Editor::
121 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
122 createShapeVolume(
124 ::std::variant<
130 ) = 0;
131
132 virtual ::Editor::Task<
135 extrudeResult(
137 ::BlockPos seed,
139 ::std::function<void(::std::vector<::BlockPos> const&)> positionProgress
140 ) = 0;
141
142 virtual ::Editor::Task<
145 applyExtrudeResult(
148 ::BlockSource* expectedBlockSource
149 ) = 0;
150 // NOLINTEND
151};
152
153} // namespace Editor::BlockUtils::Task
Definition BlockPos.h:14
Definition BlockSource.h:72
Definition Block.h:42
Definition BoundingBox.h:13
Definition BlockMaskList.h:13
Definition BlockUtilityChunkedVolume.h:16
Definition BlockUtilityTaskServiceProvider.h:38
Definition CoroutineTaskContext.h:7
Definition ProjectRegion.h:25
Definition RelativeVolumeListBlockVolume.h:24
Definition Result_deprecated.h:8
Definition WeakRef.h:8
Definition BlockUtilityExtrudeOptions.h:7
Definition BlockUtilityExtrudeResult.h:7
Definition BlockUtilityFillResult.h:7
Definition BlockUtilityFloodSearchOptions.h:7
Definition BlockUtilityManifest.h:7
Definition BlockUtilityShapeVolumeOptionsCone.h:10
Definition BlockUtilityShapeVolumeOptionsCuboid.h:10
Definition BlockUtilityShapeVolumeOptionsCylinder.h:10
Definition BlockUtilityShapeVolumeOptionsEllipsoid.h:10
Definition BlockUtilityShapeVolumeOptionsPyramid.h:10
Definition CoroutineStatus.h:7
Definition ProbabilityBlockPaletteItem.h:7
Definition SimpleBlockPaletteItem.h:7
Definition context.h:5