28class ContainerScreenValidation {
32 ::ll::TypedStorage<8, 40, ::ContainerScreenContext> mScreenContext;
33 ::ll::TypedStorage<4, 4, ::ContainerValidationCaller> mCaller;
34 ::ll::TypedStorage<8, 64, ::std::unordered_map<::FullContainerName, uint64>> mContainerIndexMap;
38 ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::ContainerValidationBase const>>>
39 mContainerValidatorMap;
40 ::ll::TypedStorage<8, 64, ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>>>
41 mPredictiveContainers;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerScreenValidatorBase>> mContainerScreenValidator;
43 ::ll::TypedStorage<8, 24, ::std::vector<::ContainerValidationLayer>> mValidationStack;
44 ::ll::TypedStorage<4, 12, ::ContainerValidationDebug const> mDebug;
49 ContainerScreenValidation();
54 virtual ~ContainerScreenValidation() =
default;
56 virtual ::ContainerValidationResult
57 tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs> craftInputs, uchar
const numCrafts);
59 virtual ::ContainerValidationCraftResult
60 getCraftResults(::std::unique_ptr<::ContainerValidationCraftInputs> craftInputs, uchar
const numCrafts);
62 virtual ::ContainerValidationResult tryActivate();
68 MCAPI ContainerScreenValidation(
70 ::ContainerValidationCaller caller,
71 ::std::unordered_map<
::FullContainerName, ::std::shared_ptr<::Container>> predictiveContainers
76 MCAPI ::ContainerValidationSlotInfo
79 MCAPI
bool _dropItems();
81 MCAPI
bool _propagateContainers();
88 MCAPI
int _trySetItem(
91 bool isWholeStackTransfer,
92 bool allowPartialSuccess,
93 bool isInternalTransfer
96 MCAPI ::ContainerValidationResult _tryTransferSpecial(
99 ::ContainerScreenRequestActionType actionType
103 MCAPI ::std::optional<::ContainerIterationRange>
107 MCAPI ::std::shared_ptr<::SimpleSparseContainer>
110 MCAPI
bool tryCommitActionResults();
114 MCAPI ::ContainerValidationResult
117 MCAPI ::ContainerValidationResult
120 MCAPI ::ContainerValidationResult tryTransfer(
124 bool isAllowingPartialTransfer
131 MCAPI static ::std::unique_ptr<::ContainerScreenValidation> makeContainerScreenValidation(
133 ::ContainerValidationCaller caller,
134 ::std::unordered_map<
::FullContainerName, ::std::shared_ptr<::Container>> predictiveContainers
143 ::ContainerValidationCaller caller,
144 ::std::unordered_map<
::FullContainerName, ::std::shared_ptr<::Container>> predictiveContainers
151 MCAPI ::ContainerValidationResult
152 $tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs> craftInputs, uchar
const numCrafts);
154 MCAPI ::ContainerValidationCraftResult
155 $getCraftResults(::std::unique_ptr<::ContainerValidationCraftInputs> craftInputs, uchar
const numCrafts);
157 MCFOLD ::ContainerValidationResult $tryActivate();
Definition ContainerScreenContext.h:16