23class ElementConstructorContainerManagerController :
public ::ContainerManagerController {
27 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ElementConstructorContainerManagerModel>> mModel;
28 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CraftableElements>> mElements;
29 ::ll::TypedStorage<8, 64, ::std::function<void(
int,
int,
int)>> mSetParticles;
30 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
31 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultItemPreview;
38 ElementConstructorContainerManagerController();
44 virtual ~ElementConstructorContainerManagerController() =
default;
46 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const& slot)
const ;
52 virtual int handleAutoPlace(
55 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
56 ::std::vector<::AutoPlaceResult>& destinations
64 virtual bool isOutputSlot(::std::string
const& collectionName)
const ;
66 virtual ::CreateContainerItemScope
74 MCNAPI
explicit ElementConstructorContainerManagerController(
75 ::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel
80 MCNAPI
bool _updateOutputPreview(
::ItemStack const& stack);
82 MCNAPI
void updateOutput(
int protons,
int electrons,
int neutrons);
84 MCNAPI
void updateOutputFromSlot(
::SlotData const& src);
92 MCNAPI
void* $ctor(::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel);
100 MCNAPI ::ItemStackBase
const& $getTakeableItemStackBase(
::SlotData const& slot)
const;
106 MCNAPI
int $handleAutoPlace(
109 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
110 ::std::vector<::AutoPlaceResult>& destinations
113 MCNAPI
bool $handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
117 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
119 MCNAPI ::CreateContainerItemScope