3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/pub_sub/Publisher.h"
7#include "mc/world/containers/models/ContainerModel.h"
17namespace Bedrock::PubSub::ThreadModel {
struct MultiThreaded; }
20class StorageItemContainerModel :
public ::ContainerModel {
24 ::ll::TypedStorage<8, 8, ::StorageItemComponent const*> mStorageItemComponent;
25 ::ll::TypedStorage<8, 8, ::StorageWeightLimitItemComponent const*> mStorageWeightLimitComponent;
26 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::Container>> mContainer;
34 mContainerChangedPublisher;
39 StorageItemContainerModel();
44 virtual ~StorageItemContainerModel() =
default;
46 virtual void postInit() ;
48 virtual void containerContentChanged(
int slot) ;
50 virtual bool isValid() ;
52 virtual ::ContainerWeakRef getContainerWeakRef()
const ;
54 virtual int _getContainerOffset()
const ;
58 virtual ::Container* _getContainer()
const ;
66 ::std::shared_ptr<::Container> container,
78 ::std::shared_ptr<::Container> container,
Definition Publisher.h:25
Definition ContainerWeakRef.h:17
Definition Container.h:36
Definition ItemStack.h:26
Definition StorageItemComponent.h:29
MCAPI void * $ctor(::FullContainerName const &name, ::std::shared_ptr<::Container > container, bool isClientSide, ::StorageItemComponent *storageItemComponent, ::StorageWeightLimitItemComponent *storageWeightLimitItemComponent)
MCAPI void $containerContentChanged(int slot)
MCAPI::Container * $_getContainer() const
MCAPI int $_getContainerOffset() const
MCAPI StorageItemContainerModel(::FullContainerName const &name, ::std::shared_ptr<::Container > container, bool isClientSide, ::StorageItemComponent *storageItemComponent, ::StorageWeightLimitItemComponent *storageWeightLimitItemComponent)
MCAPI void $_onItemChanged(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI::ContainerWeakRef $getContainerWeakRef() const
Definition StorageWeightLimitItemComponent.h:16
Definition MultiThreaded.h:7
Definition FullContainerName.h:8