3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/file/PathBuffer.h"
7#include "mc/deps/core/string/BasicStackString.h"
8#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/deps/puv/Loader.h"
11#include "mc/world/level/chunk/ChunksLoadedStatus.h"
12#include "mc/world/level/chunk/QueueRequestResult.h"
13#include "mc/world/level/levelgen/structure/StructureDeleteResult.h"
34namespace Core {
class Path; }
35namespace SharedTypes::v1_21_80 {
struct JigsawStructureMetadataFile; }
36namespace SharedTypes::v1_21_80 {
struct JigsawStructureMetadataRegistry; }
37namespace cereal {
struct ReflectionCtx; }
44 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mRepositoryMutex;
45 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::LegacyStructureTemplate>>>
46 mLegacyStructureRepository;
47 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::StructureTemplate>>>
49 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::StructureAnimationData>>> mStructurePlacementQueue;
50 ::ll::TypedStorage<4, 4, uint> mStructurePlacementSaveCounter;
51 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
52 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourcePackManager>
const> mPackManager;
53 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry>>
55 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
75 ::std::string
const& structureName,
85 ::std::string& resourceStream
97 ::std::function<::ChunksLoadedStatus(
::Tick)>
const& areChunksLoaded
108 MCNAPI ::StructureTemplate&
113 MCNAPI ::StructureTemplate&
getOrCreate(::std::string
const& structureName);
117 MCNAPI ::StructureTemplate*
getStructure(::std::string
const& structureName)
const;
138 MCNAPI
void queueLoad(::std::unique_ptr<::StructureAnimationData> structureAnimationData);
149 ::std::unique_ptr<::CommandArea> cmdArea,
156 ::std::unique_ptr<::StructureAnimationData> structureAnimationData
163 MCNAPI static ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry>
170 ::std::string& fileData,
174 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
177 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
178 getStructurePath(::std::string
const& structureNamespace, ::std::string
const& structureName);
Definition EnableNonOwnerReferences.h:7
Definition NonOwnerPointer.h:9
Definition BoundingBox.h:13
Definition ChunkLoadActionList.h:21
Definition CommandArea.h:5
Definition CompoundTag.h:13
Definition BasicStackString.h:8
Definition PathBuffer.h:8
Definition Dimension.h:83
Definition IUnknownBlockTypeRegistry.h:14
Definition LegacyStructureTemplate.h:24
Definition LevelStorage.h:25
Definition PackInstance.h:23
Definition ResourcePackManager.h:23
Definition ServerLevel.h:54
Definition StructureAnimationData.h:17
Definition StructureManager.h:40
MCAPI::LegacyStructureTemplate * _readLegacyStructure(::std::string const &name)
static MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > getStructurePath(::std::string const &structureNamespace, ::std::string const &structureName)
static MCAPI void _metadataPackForEachCallback(::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry ®istry, ::Puv::Loader<::SharedTypes::v1_21_80::JigsawStructureMetadataFile > &loader, ::PackInstance const &pack, ::std::string &fileData, ::Core::Path const &filenameWithExtension)
MCAPI bool load(::StructureTemplate &structureTemplate, ::ResourcePackManager const *packManager, ::LevelStorage *levelStorage)
MCAPI::LegacyStructureTemplate & getOrCreateLegacy(::std::string const &structureName)
MCAPI bool _findResource(::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > const &structurePath, ::PackInstance const &pack, ::std::string &resourceStream)
MCAPI::StructureTemplate & cloneStructure(::StructureTemplate const &structureTemplate, ::std::string const &structureName)
static MCAPI char const *& BEHAVIOR_PACK_STRUCTURES_FOLDER()
static MCAPI ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry > _loadMetadataRegistries(::cereal::ReflectionCtx const &ctx, ::ResourcePackManager &packManager, bool excludeLatest)
MCAPI bool _placeSegment(::StructureAnimationData &structureAnimationData)
MCAPI bool _placeSegment(::Dimension &dimension, ::StructureAnimationData &structureAnimationData, ::ChunkLoadActionList &chunkLoadActionList, ::BoundingBox const &boundingBox, ::std::function<::ChunksLoadedStatus(::Tick)> const &areChunksLoaded)
MCAPI::StructureTemplate * getStructure(::std::string const &structureName) const
MCAPI void importStructureFromTemplate(::std::string name, ::StructureTemplate const &temp)
MCAPI::StructureTemplate & getOrCreate(::std::string const &structureName)
MCAPI::StructureTemplate * _createAndLoadStructure(::std::string const &structureName, ::ResourcePackManager const *packManager, ::LevelStorage *levelStorage)
MCAPI void setUnknownBlockRegistry(::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry > unknownBlockRegistry)
MCAPI StructureManager(::ResourcePackManager &packManager)
MCAPI void * $ctor(::ResourcePackManager &packManager)
MCAPI void tick(::Dimension const &dimension)
MCAPI::StructureDeleteResult deleteStructure(::std::string const &structureName, ::LevelStorage &levelStorage)
MCAPI void loadMetadataRegistries(::ResourcePackManager &packManager)
MCAPI void _savePlacementQueueItem(::std::string const &dimensionPrefix, ::StructureAnimationData &structureAnimationData)
static MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > getStructurePath(::std::string const &structureFullName)
MCAPI::QueueRequestResult tryPlaceStructureInWorld(::std::unique_ptr<::CommandArea > cmdArea, ::ServerLevel &level, ::Dimension &dimension, ::BoundingBox const &bounds, ::BlockPos const &loadPosition, ::StructureSettings const &settings, ::StructureTemplate const &structureTemplate, ::std::unique_ptr<::StructureAnimationData > structureAnimationData)
MCAPI::std::string _createLevelStorageId(::std::string const &dimensionPrefix, ::std::string const &saveId)
static MCAPI char const *& LEVEL_STORAGE_STRUCTURE_TEMPLATE_PREFIX()
MCAPI void _removePlacementQueueItem(::std::string const &dimensionPrefix, ::StructureAnimationData &structureAnimationData)
MCAPI void loadPlacementQueueItem(::std::string const &key, ::CompoundTag const &tag, ::Level &level, ::Dimension &dimension)
MCAPI bool readStructure(::StructureTemplate &structureTemplate)
MCAPI bool loadLegacy(::LegacyStructureTemplate &structure, ::std::string &data)
MCAPI::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry & _getMetadataRegistry() const
MCAPI void saveToLevel(::StructureTemplate const &structureTemplate, ::LevelStorage &levelStorage)
MCAPI void loadPlacementQueue(::LevelStorage &storage, ::Level &level, ::Dimension &dimension)
MCAPI void queueLoad(::std::unique_ptr<::StructureAnimationData > structureAnimationData)
MCAPI ::std::vector<::std::string > getStructureNames(::LevelStorage &levelStorage, bool includeUnremovable) const
static MCAPI void ** $vftable()
Definition StructureSettings.h:18
Definition StructureTemplate.h:32
Definition ReflectionCtx.h:11