LeviLamina
Loading...
Searching...
No Matches
ContainerScreenValidation.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/inventory/network/ContainerScreenContext.h"
7#include "mc/world/inventory/simulation/ContainerScreenRequestActionType.h"
8#include "mc/world/inventory/simulation/ContainerValidationCaller.h"
9#include "mc/world/inventory/simulation/ContainerValidationDebug.h"
10
11// auto generated forward declare list
12// clang-format off
13class Container;
16class ItemStack;
25// clang-format on
26
27class ContainerScreenValidation {
28public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<8, 40, ::ContainerScreenContext> mScreenContext;
32 ::ll::TypedStorage<4, 4, ::ContainerValidationCaller> mCaller;
33 ::ll::TypedStorage<8, 64, ::std::unordered_map<::FullContainerName, uint64>> mContainerIndexMap;
34 ::ll::TypedStorage<
35 8,
36 64,
37 ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::ContainerValidationBase const>>>
38 mContainerValidatorMap;
39 ::ll::TypedStorage<8, 64, ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>>>
40 mPredictiveContainers;
41 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerScreenValidatorBase>> mContainerScreenValidator;
42 ::ll::TypedStorage<8, 24, ::std::vector<::ContainerValidationLayer>> mValidationStack;
43 ::ll::TypedStorage<4, 12, ::ContainerValidationDebug const> mDebug;
44 // NOLINTEND
45
46public:
47 // prevent constructor by default
48 ContainerScreenValidation();
49
50public:
51 // virtual functions
52 // NOLINTBEGIN
53 virtual ~ContainerScreenValidation();
54
55 virtual ::ContainerValidationResult tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs>, uchar const);
56
57 virtual ::ContainerValidationCraftResult
58 getCraftResults(::std::unique_ptr<::ContainerValidationCraftInputs>, uchar const);
59
60 virtual ::ContainerValidationResult tryActivate();
61 // NOLINTEND
62
63public:
64 // member functions
65 // NOLINTBEGIN
67 ::ContainerScreenContext const& screenContext,
68 ::ContainerValidationCaller caller,
69 ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>> predictiveContainers
70 );
71
72 MCNAPI void _commit();
73
74 MCNAPI ::ContainerValidationSlotInfo
76
77 MCNAPI bool _dropItems();
78
79 MCNAPI ::std::shared_ptr<::ContainerValidationBase const>
81
82 MCNAPI bool _propagateContainers();
83
84 MCNAPI int _tryAddItem(::ContainerValidationSlotInfo& slotInfo, int addCount, bool allowPartialSuccess);
85
86 MCNAPI bool
88
89 MCNAPI ::ItemStack _tryRemoveItem(::ContainerValidationSlotInfo& slotInfo, int amount);
90
91 MCNAPI int _trySetItem(
93 ::ItemStack const& stack,
94 bool isWholeStackTransfer,
95 bool allowPartialSuccess,
96 bool isInternalTransfer
97 );
98
99 MCNAPI ::ContainerValidationResult _tryTransferSpecial(
100 ::ContainerValidationSlotData const& srcSlotData,
101 int transferAmount,
102 ::ContainerScreenRequestActionType actionType
103 );
104
105 MCNAPI ::std::shared_ptr<::SimpleSparseContainer>
107
109
110 MCNAPI ::ContainerValidationResult tryConsume(::ContainerValidationSlotData const& srcSlotData, int transferAmount);
111
112 MCNAPI ::ContainerValidationResult
113 tryDrop(::ContainerValidationSlotData const& srcSlotData, int transferAmount, bool dropRandomly);
114
115 MCNAPI ::ContainerValidationResult
117
118 MCNAPI ::ContainerValidationResult tryTransfer(
119 ::ContainerValidationSlotData const& srcSlotData,
120 ::ContainerValidationSlotData const& dstSlotData,
121 int transferAmount,
122 bool isAllowingPartialTransfer
123 );
124 // NOLINTEND
125
126public:
127 // static functions
128 // NOLINTBEGIN
129 MCNAPI static ::std::unique_ptr<::ContainerScreenValidation> makeContainerScreenValidation(
130 ::ContainerScreenContext const& screenContext,
131 ::ContainerValidationCaller caller,
132 ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>> predictiveContainers
133 );
134 // NOLINTEND
135
136public:
137 // constructor thunks
138 // NOLINTBEGIN
139 MCNAPI void* $ctor(
140 ::ContainerScreenContext const& screenContext,
141 ::ContainerValidationCaller caller,
142 ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>> predictiveContainers
143 );
144 // NOLINTEND
145
146public:
147 // destructor thunk
148 // NOLINTBEGIN
149 MCNAPI void $dtor();
150 // NOLINTEND
151
152public:
153 // virtual function thunks
154 // NOLINTBEGIN
155 MCNAPI ::ContainerValidationResult $tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs>, uchar const);
156
157 MCNAPI ::ContainerValidationCraftResult
158 $getCraftResults(::std::unique_ptr<::ContainerValidationCraftInputs>, uchar const);
159
160 MCNAPI ::ContainerValidationResult $tryActivate();
161
162
163 // NOLINTEND
164
165public:
166 // vftables
167 // NOLINTBEGIN
168 MCNAPI static void** $vftable();
169 // NOLINTEND
170};
Definition ContainerScreenContext.h:17
MCAPI bool tryCommitActionResults()
MCAPI int _tryAddItem(::ContainerValidationSlotInfo &slotInfo, int addCount, bool allowPartialSuccess)
MCAPI ContainerScreenValidation(::ContainerScreenContext const &screenContext, ::ContainerValidationCaller caller, ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container > > predictiveContainers)
MCAPI ::std::shared_ptr<::ContainerValidationBase const > _getOrCreateContainerValidator(::FullContainerName const &containerEnumName)
MCAPI bool _tryMoveItem(::ContainerValidationSlotInfo &srcValidatorPair, ::ContainerValidationSlotInfo &dstValidatorPair)
MCAPI void * $ctor(::ContainerScreenContext const &screenContext, ::ContainerValidationCaller caller, ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container > > predictiveContainers)
MCAPI ::std::shared_ptr<::SimpleSparseContainer > getOrCreateSparseContainer(::FullContainerName const &containerEnumName)
MCAPI int _trySetItem(::ContainerValidationSlotInfo &slotInfo, ::ItemStack const &stack, bool isWholeStackTransfer, bool allowPartialSuccess, bool isInternalTransfer)
MCAPI::ItemStack _tryRemoveItem(::ContainerValidationSlotInfo &slotInfo, int amount)
MCAPI::ContainerValidationResult tryTransfer(::ContainerValidationSlotData const &srcSlotData, ::ContainerValidationSlotData const &dstSlotData, int transferAmount, bool isAllowingPartialTransfer)
MCAPI::ContainerValidationCraftResult $getCraftResults(::std::unique_ptr<::ContainerValidationCraftInputs >, uchar const)
static MCAPI void ** $vftable()
static MCAPI ::std::unique_ptr<::ContainerScreenValidation > makeContainerScreenValidation(::ContainerScreenContext const &screenContext, ::ContainerValidationCaller caller, ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container > > predictiveContainers)
MCAPI bool _propagateContainers()
MCAPI::ContainerValidationResult _tryTransferSpecial(::ContainerValidationSlotData const &srcSlotData, int transferAmount, ::ContainerScreenRequestActionType actionType)
MCAPI::ContainerValidationResult tryDrop(::ContainerValidationSlotData const &srcSlotData, int transferAmount, bool dropRandomly)
MCAPI::ContainerValidationResult $tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs >, uchar const)
MCAPI::ContainerValidationResult trySwap(::ContainerValidationSlotData const &srcSlotData, ::ContainerValidationSlotData const &dstSlotData)
MCAPI::ContainerValidationResult tryConsume(::ContainerValidationSlotData const &srcSlotData, int transferAmount)
MCAPI::ContainerValidationResult $tryActivate()
MCAPI::ContainerValidationSlotInfo _createContainerValidatorSlotInfo(::ContainerValidationSlotData const &slotData)
Definition ContainerScreenValidatorBase.h:18
Definition ContainerValidationBase.h:12
Definition Container.h:33
Definition ItemStack.h:26
Definition SimpleSparseContainer.h:18
Definition ContainerValidationCraftInputs.h:5
Definition ContainerValidationCraftResult.h:14
Definition ContainerValidationLayer.h:15
Definition ContainerValidationResult.h:14
Definition ContainerValidationSlotData.h:8
Definition ContainerValidationSlotInfo.h:14
Definition FullContainerName.h:8