32 ::ll::TypedStorage<4, 4, ::SparseContainerBackingSetType const> mBackingSetType;
33 ::ll::TypedStorage<8, 8, ::Container&> mBackingContainer;
34 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::ItemStack>> mItems;
35 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ISparseContainerSetListener>> mNetManagerSetter;
36 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IPlayerContainerSetter>> mPlayerSetter;
40 ::std::unordered_map<::ContainerEnumName, ::std::function<void(
int,
::ItemStack const&,
::ItemStack const&)>>>
41 mItemNetworkChangedCallbacks;
45 ::std::unordered_map<::ContainerEnumName, ::std::function<bool(
int,
::ItemStackBase const&,
int)>>>
46 mItemAllowedInSlotCallbacks;
47 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function<bool(
::ItemStackBase const&)>>>
48 mItemAllowedToAddCallbacks;
52 ::std::unordered_map<::ContainerEnumName, ::std::function<int(
int,
::ItemStackBase const&)>>>
53 mAvailableSetCountCallbacks;
54 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function<bool(
int)>>>
55 mValidSlotForContainerCallbacks;
56 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function<bool(
::ItemStackBase const&)>>>
57 mItemAllowedToRemoveCallbacks;
58 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function<bool(
::ItemStackBase const&)>>>
59 mItemAllowedInContainerCallbacks;
60 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
61 ::ll::TypedStorage<1, 1, bool const> mIsItemStackNetManagerEnabled;
66 SparseContainer& operator=(SparseContainer
const&);
67 SparseContainer(SparseContainer
const&);
74 virtual ~SparseContainer() =
default;
76 virtual ~SparseContainer() ;
80 virtual ::ItemStack
const& getItem(
int)
const ;
82 virtual ::ItemStack
const& getItem(
int slot)
const ;
85 virtual int getContainerSize()
const ;
87 virtual int getMaxStackSize()
const ;
90 virtual void containerContentChanged(
int) ;
92 virtual void containerContentChanged(
int slot) ;
98 virtual void setItem(
int slot,
::ItemStack const& item) ;
101 virtual void serverInitItemStackIds(
int,
int, ::std::function<
void(
int,
::ItemStack const&)>) ;
104 virtual void startOpen(
::Actor&) ;
106 virtual void startOpen(
::Actor& actor) ;
109 virtual void stopOpen(
::Actor& actor) ;
111 virtual void removeItem(
int slot,
int count) ;
118 MCAPI SparseContainer(
119 ::Container& backingContainer,
120 ::SparseContainerBackingSetType backingSetType,
122 bool isItemStackNetManagerEnabled,
123 ::std::unique_ptr<::ISparseContainerSetListener> netManagerSetter,
124 ::std::unique_ptr<::IPlayerContainerSetter> playerSetter
127 MCFOLD
void _clearCreatedItem(
int slot);
129 MCAPI
int _getAvailableAddCount(
131 ::ContainerEnumName itemInSlot,
135 MCAPI
bool _isSlotInRange(
int slot)
const;
139 MCAPI
void addAvailableSetCountCallback(
140 ::ContainerEnumName name,
141 ::std::function<
int(
int,
::ItemStackBase const&)> availableSetCountCallback
144 MCAPI
void addItemAllowedInContainerCallback(
145 ::ContainerEnumName name,
149 MCAPI
void addItemAllowedInSlotCallback(
150 ::ContainerEnumName name,
151 ::std::function<
bool(
int,
::ItemStackBase const&,
int)> itemAllowedCallback
154 MCAPI
void addItemAllowedToAddCallback(
155 ::ContainerEnumName name,
159 MCAPI
void addItemAllowedToRemoveCallback(
160 ::ContainerEnumName name,
165 MCAPI
void addItemNetworkChangedCallback(
166 ::ContainerEnumName name,
171 MCAPI
void addValidSlotForContainerCallback(
172 ::ContainerEnumName name,
173 ::std::function<
bool(
int)> validSlotForContainerCallback
176 MCAPI ::ItemAddType canAdd(
184 MCFOLD
bool canConsume(::ContainerEnumName name,
int slot,
int amount)
const;
186 MCFOLD
bool canDestroy(::ContainerEnumName name,
int slot,
int amount)
const;
188 MCFOLD
bool canDrop(::ContainerEnumName name,
int slot,
int amount)
const;
190 MCAPI
bool canRemove(::ContainerEnumName name,
int slot,
int amount)
const;
192 MCAPI ::ItemSetType canSet(
202 MCAPI
int getAvailableAddCount(
204 ::ContainerEnumName name,
209 MCAPI
int getAvailableSetCount(
216 MCAPI
bool isClientSide()
const;
219 MCAPI
bool isUsingLegacyScreenTransactions()
const;
222 MCAPI
bool isValidSlot(::ContainerEnumName name,
int slot)
const;
225 MCAPI
void removeItemNetworkChangedCallback(::ContainerEnumName name);
233 ::Container& backingContainer,
234 ::SparseContainerBackingSetType backingSetType,
236 bool isItemStackNetManagerEnabled,
237 ::std::unique_ptr<::ISparseContainerSetListener> netManagerSetter,
238 ::std::unique_ptr<::IPlayerContainerSetter> playerSetter
253 MCAPI ::ItemStack
const& $getItem(
int slot)
const;
255 MCAPI
int $getContainerSize()
const;
257 MCAPI
int $getMaxStackSize()
const;
259 MCFOLD
void $containerContentChanged(
int slot);
261 MCAPI
void $setItem(
int slot,
::ItemStack const& item);
263 MCFOLD
void $serverInitItemStackIds(
int,
int, ::std::function<
void(
int,
::ItemStack const&)>);
265 MCAPI
void $startOpen(
::Actor& actor);
267 MCAPI
void $stopOpen(
::Actor& actor);
269 MCFOLD
void $removeItem(
int slot,
int count);
278 MCAPI
static void** $vftableForContainerContentChangeListener();
280 MCAPI
static void** $vftableForContainer();
Definition ContainerScreenContext.h:19