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/common/editor/Task.h"
7#include "mc/deps/game_refs/WeakRef.h"
8#include "mc/deps/script_core/runtime/scripting/Result_deprecated.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::BlockMask { class BlockMaskList; }
20namespace Editor::BlockUtils::Task { class BlockUtilityChunkedVolume; }
21namespace Editor::BlockUtils::Task { struct BlockUtilityExtrudeOptions; }
22namespace Editor::BlockUtils::Task { struct BlockUtilityExtrudeResult; }
23namespace Editor::BlockUtils::Task { struct BlockUtilityFillResult; }
24namespace Editor::BlockUtils::Task { struct BlockUtilityFloodSearchOptions; }
25namespace Editor::BlockUtils::Task { struct BlockUtilityManifest; }
26namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsCone; }
27namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsCuboid; }
28namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsCylinder; }
29namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsEllipsoid; }
30namespace Editor::BlockUtils::Task { struct BlockUtilityShapeVolumeOptionsPyramid; }
31namespace Editor::Coroutine { class CoroutineTaskContext; }
32// clang-format on
33
34namespace Editor::BlockUtils::Task {
35
37public:
38 // virtual functions
39 // NOLINTBEGIN
40 virtual ~BlockUtilityTaskServiceProvider() = default;
41
42 virtual ::Editor::Task<
45 fillVolume(
48 ::std::optional<::Block const*> optBlock,
49 ::BlockSource* expectedBlockSource
50 ) = 0;
51
52 virtual ::Editor::
53 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
54 trimVolumeToFitContents(
56 ::std::vector<::BlockPos> positions,
57 ::BoundingBox bounds,
58 bool alwaysReturnMarquee,
59 bool ignoreLiquid,
60 bool ignoreNoCollision,
62 ) = 0;
63
64 virtual ::Editor::
65 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
66 shrinkWrapVolume(
68 ::std::vector<::BlockPos> positions,
69 ::BoundingBox bounds
70 ) = 0;
71
72 virtual ::Editor::
73 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
74 findObscuredBlocksWithinVolume(
76 ::std::vector<::BlockPos> positions,
77 ::BoundingBox bounds
78 ) = 0;
79
80 virtual ::Editor::Task<
83 generateManifest(
85 ::std::vector<::BlockPos> positions,
86 ::BoundingBox bounds,
87 ::std::function<void(float, uint64)> progress,
88 ::std::optional<::WeakRef<::Editor::ProjectRegion>> existingRegion
89 ) = 0;
90
91 virtual ::Editor::Task<::Scripting::Result_deprecated<uint>, ::Editor::CoroutineStatus> replaceBlocksInSelection(
94 ::std::string fromBlockIdentifier,
95 ::Block const* toBlock,
96 ::BlockSource* expectedBlockSource
97 ) = 0;
98
99 virtual ::Editor::
100 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
101 floodSearch(
103 ::BlockPos seed,
105 ::std::function<void(::std::vector<::BlockPos> const&)> positionProgress
106 ) = 0;
107
108 virtual ::Editor::
109 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
110 extrude(
112 ::BlockPos seed,
114 ) = 0;
115
116 virtual ::Editor::
117 Task<::Scripting::Result_deprecated<::Editor::RelativeVolumeListBlockVolume>, ::Editor::CoroutineStatus>
118 createShapeVolume(
120 ::std::variant<
126 ) = 0;
127
128 virtual ::Editor::Task<
131 extrudeResult(
133 ::BlockPos seed,
135 ::std::function<void(::std::vector<::BlockPos> const&)> positionProgress
136 ) = 0;
137
138 virtual ::Editor::Task<
141 applyExtrudeResult(
144 ::BlockSource* expectedBlockSource
145 ) = 0;
146 // NOLINTEND
147};
148
149} // namespace Editor::BlockUtils::Task
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition Block.h:41
Definition BoundingBox.h:13
Definition BlockMaskList.h:13
Definition BlockUtilityChunkedVolume.h:16
Definition BlockUtilityTaskServiceProvider.h:36
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 context.h:5