3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/world/containers/IContainerRegistryAccess.h"
7#include "mc/world/containers/IContainerRegistryTracker.h"
8#include "mc/world/containers/IDynamicContainerSerialization.h"
23namespace Bedrock::Threading {
class SharedRecursiveMutex; }
32 ::ll::TypedStorage<4, 4, uint> mNextDynamicId;
33 ::ll::TypedStorage<8, 64, ::std::unordered_map<::FullContainerName, ::DynamicTrackedContainer>> mContainers;
34 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
35 ::ll::TypedStorage<4, 4, int> mTicksSinceLastCleanup;
36 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Threading::SharedRecursiveMutex>> mContainerContextMutex;
50 virtual ::std::unique_ptr<::ListTag>
57 virtual ::std::shared_ptr<::StorageItemContainerModel> getModel(
::FullContainerName const& name) ;
60 virtual ::std::shared_ptr<::FillingContainer> getBackingContainer(
::FullContainerName const& name) ;
63 virtual void tryCreateEntry(
70 virtual ::std::unique_ptr<::DynamicContainerManager> createContainerManager(
78 virtual uint generateNewID() ;
84 virtual void setExpired(::std::vector<::FullContainerName>
const& removedContainers) ;
87 virtual uint64 getSize() ;
103 MCNAPI
void tick(::std::function<
void(
::Packet&)> broadcastPacketFunction);
110 ::std::function<
void(
::Packet&)>
const& broadcastPacketFunction,
111 ::std::vector<::FullContainerName>
const& removedContainers
118 MCNAPI
void*
$ctor(
bool isClientSide);
124 MCNAPI ::std::unique_ptr<::ListTag>
150 MCNAPI
void $setExpired(::std::vector<::FullContainerName>
const& removedContainers);
Definition ContainerRegistry.h:28
MCAPI void tick(::std::function< void(::Packet &)> broadcastPacketFunction)
MCAPI ContainerRegistry(bool isClientSide)
static MCAPI void ** $vftableForIContainerRegistryTracker()
MCAPI void _serverCleanUp(::std::function< void(::Packet &)> broadcastPacketFunction)
MCAPI ::std::unique_ptr<::DynamicContainerManager > $createContainerManager(::FullContainerName const &id, ::ItemStack const &storageItem, ::StorageItemComponent *storageItemComponent, ::StorageWeightLimitItemComponent *storageWeightLimitItemComponent)
MCAPI void $tryLoadSavedStorageItem(::ListTag const &contentData, ::FullContainerName const &name)
static MCAPI void ** $vftableForIContainerRegistryAccess()
MCAPI::DynamicTrackedContainer & _getOrCreate(::FullContainerName const &id, ::StorageItemComponent *storageItemComponent, ::StorageWeightLimitItemComponent *storageWeightLimitItemComponent)
MCAPI ::std::shared_ptr<::StorageItemContainerModel > $getModel(::FullContainerName const &name)
static MCAPI void ** $vftableForIDynamicContainerSerialization()
MCAPI void * $ctor(bool isClientSide)
static MCAPI void sendCleanupPackets(::std::function< void(::Packet &)> const &broadcastPacketFunction, ::std::vector<::FullContainerName > const &removedContainers)
MCAPI ::std::unique_ptr<::ListTag > $serializeContainerContent(::FullContainerName const &name, ::SaveContext const &saveContext)
MCAPI uint $generateNewID()
MCAPI void $tryCreateEntry(::StorageItemComponent *storageItemComponent, ::StorageWeightLimitItemComponent *storageWeightLimitItemComponent, ::FullContainerName const &name)
MCAPI ::std::optional< int > $getDynamicContainerWeight(::FullContainerName const &name)
MCAPI void $setExpired(::std::vector<::FullContainerName > const &removedContainers)
MCAPI ::std::shared_ptr<::FillingContainer > $getBackingContainer(::FullContainerName const &name)
Definition DynamicContainerManager.h:17
Definition FillingContainer.h:16
Definition IContainerRegistryAccess.h:14
Definition IContainerRegistryTracker.h:15
Definition IDynamicContainerSerialization.h:12
Definition ItemStack.h:25
Definition SaveContext.h:5
Definition StorageItemComponent.h:25
Definition StorageItemContainerModel.h:18
Definition StorageWeightLimitItemComponent.h:16
Definition DynamicTrackedContainer.h:11
Definition FullContainerName.h:8