24class MaterialReducerContainerManagerController :
public ::ContainerManagerController {
27 using ActionScope = ::gsl::final_action<::std::function<void()>>;
32 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::MaterialReducerContainerManagerModel>> mModel;
33 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CraftableCompounds>> mCraftableCompounds;
34 ::ll::TypedStorage<8, 8, ::BlockReducer*> mBlockReducer;
35 ::ll::TypedStorage<1, 1, bool> mObservingContainers;
36 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
43 MaterialReducerContainerManagerController();
49 virtual ~MaterialReducerContainerManagerController() =
default;
51 virtual bool isOutputSlot(::std::string
const& collectionName)
const ;
53 virtual void closeContainers() ;
57 virtual int handleAutoPlace(
60 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
61 ::std::vector<::AutoPlaceResult>& destinations
71 MCNAPI
explicit MaterialReducerContainerManagerController(
72 ::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel
75 MCNAPI
void _consumeInputItem();
81 MCNAPI
bool _hasAnyInput();
83 MCNAPI
bool _hasAnyOutput();
85 MCNAPI ::CreateContainerItemScope _makeCreateOutputItemScope(
91 MCNAPI
void _setupCallbacks();
93 MCNAPI
void _updateResult(
::ItemStack const& input);
95 MCNAPI
bool isStillValid(
float pickRange);
103 MCNAPI
void* $ctor(::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel);
111 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
113 MCNAPI
void $closeContainers();
117 MCNAPI
int $handleAutoPlace(
120 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
121 ::std::vector<::AutoPlaceResult>& destinations