3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/screens/controllers/BlockScreenController.h"
9#include "mc/deps/core/utility/pub_sub/Subscription.h"
10#include "mc/world/level/BlockPos.h"
11#include "mc/world/level/block/StructureBlockType.h"
12#include "mc/world/level/levelgen/structure/StructureEditorData.h"
13#include "mc/world/level/levelgen/structure/StructureTelemetryClientData.h"
23namespace Json {
class Value; }
29 enum class FilePickerType : uchar {};
34 ::ll::TypedStorage<4, 12, ::BlockPos const> mBlockPos;
35 ::ll::TypedStorage<1, 1, bool> mAnimationModeDropdownActive;
36 ::ll::TypedStorage<1, 1, bool> mRedstoneDropdownActive;
37 ::ll::TypedStorage<1, 1, bool> mModeDropDownActive;
38 ::ll::TypedStorage<1, 1, bool> mTextBoxEditing;
39 ::ll::TypedStorage<1, 1, bool> mExportCompleted;
40 ::ll::TypedStorage<1, 1, bool> mExportSucceeded;
41 ::ll::TypedStorage<1, 1, bool> mRenderedStructure;
42 ::ll::TypedStorage<1, 1, bool> mIsExporting;
43 ::ll::TypedStorage<1, 1, bool> mIsImporting;
44 ::ll::TypedStorage<1, 1, bool> mNeedsBindsUpdate;
45 ::ll::TypedStorage<1, 1, bool> mMirrorX;
46 ::ll::TypedStorage<1, 1, bool> mMirrorZ;
47 ::ll::TypedStorage<1, 1, bool> mStructureExists;
48 ::ll::TypedStorage<1, 1, bool> mHasOpened;
49 ::ll::TypedStorage<1, 1, bool> mTrigger3dExport;
50 ::ll::TypedStorage<1, 1, bool const> m3DExportSupport;
51 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::MinecraftglTFExporter>> mglTFExporter;
52 ::ll::TypedStorage<8, 216, ::StructureEditorData> mStructureEditorData;
53 ::ll::TypedStorage<8, 8, ::StructureTemplate*> mImportingStructureTemplate;
54 ::ll::TypedStorage<4, 16, ::StructureTelemetryClientData> mTelemetryClientData;
55 ::ll::TypedStorage<8, 32, ::std::string> mAnimationTimeString;
56 ::ll::TypedStorage<8, 32, ::std::string> mSeedString;
57 ::ll::TypedStorage<1, 1, bool> mShouldUseFilteredMessage;
58 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mProfanityToggleSubscription;
63 StructureEditorScreenController();
68 virtual ~StructureEditorScreenController() ;
70 virtual void onOpen() ;
72 virtual void onLeave() ;
74 virtual ::ui::DirtyFlag tick() ;
76 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
78 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
80 virtual ::std::string _getButtonADescription() ;
86 MCAPI StructureEditorScreenController(
87 ::std::shared_ptr<::ClientInstanceScreenModel> model,
89 ::BlockPos
const& pos,
90 ::ActorUniqueID uniqueId
93 MCAPI
void _filePicker(::StructureEditorScreenController::FilePickerType op);
95 MCAPI ::std::string _getBlockTypeIcon();
97 MCFOLD ::std::string _getTextEditValue(::TextEditScreenEventData& textEditEvent)
const;
99 MCAPI
float _getTextEditValueAsFloat(::TextEditScreenEventData& textEditEvent)
const;
101 MCAPI
int _getTextEditValueAsInt(::TextEditScreenEventData& textEditEvent)
const;
103 MCAPI
void _initiate3DExport();
105 MCAPI
void _initiateDetect();
107 MCAPI
void _initiateExport();
109 MCAPI
void _initiateFileGeneration();
111 MCAPI
void _initiateImport();
113 MCAPI
void _initiateLoad();
115 MCAPI
void _initiateSave();
117 MCAPI
void _onBoundsChanged();
119 MCAPI
void _onStructureTypeChanged(::StructureBlockType newMode);
121 MCAPI
void _registerAnimationModeDropdown();
123 MCAPI
void _registerBindings();
125 MCAPI
void _registerEventHandlers();
127 MCAPI
void _registerModeDropdown();
129 MCAPI
void _registerRedstoneDropdown();
131 MCAPI
void _setSeedFromString();
133 MCAPI
void _updateStructureBlock(
bool trigger);
135 MCAPI
void _validateAndSetOffset(
int newValue,
int index);
137 MCAPI
void _validateAndSetSize(
int newValue,
int index);
144 ::std::shared_ptr<::ClientInstanceScreenModel> model,
146 ::BlockPos
const& pos,
147 ::ActorUniqueID uniqueId
160 MCAPI
void $onOpen();
162 MCAPI
void $onLeave();
164 MCAPI ::ui::DirtyFlag $tick();
166 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
168 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
170 MCFOLD ::std::string $_getButtonADescription();
Definition BlockScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition StructureEditorScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForScreenController()
Definition StructureTemplate.h:35
Definition ActorUniqueID.h:5
Definition MinecraftglTFExporter.h:5
Definition TextEditScreenEventData.h:5