24class ElementConstructorContainerManagerController :
public ::ContainerManagerController {
28 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ElementConstructorContainerManagerModel>> mModel;
29 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CraftableElements>> mElements;
30 ::ll::TypedStorage<8, 64, ::std::function<void(
int,
int,
int)>> mSetParticles;
31 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
32 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultItemPreview;
39 ElementConstructorContainerManagerController();
45 virtual ~ElementConstructorContainerManagerController() =
default;
47 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const& slot)
const ;
53 virtual int handleAutoPlace(
56 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
57 ::std::vector<::AutoPlaceResult>& destinations
65 virtual bool isOutputSlot(::std::string
const& collectionName)
const ;
67 virtual ::CreateContainerItemScope
75 MCNAPI
explicit ElementConstructorContainerManagerController(
76 ::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel
79 MCNAPI ::ItemInstance _getElementItem(::ElementType type)
const;
85 MCNAPI
bool _updateOutputPreview(
::ItemStack const& stack);
87 MCNAPI
void _updateParticleInputsFromOutputSlot();
89 MCNAPI
bool isStillValid(
float pickRange);
91 MCNAPI
bool outputInteractWouldCausePlace(
::SlotData const& src);
93 MCNAPI
void updateOutput(
int protons,
int electrons,
int neutrons);
101 MCNAPI
void* $ctor(::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel);
109 MCNAPI ::ItemStackBase
const& $getTakeableItemStackBase(
::SlotData const& slot)
const;
115 MCNAPI
int $handleAutoPlace(
118 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
119 ::std::vector<::AutoPlaceResult>& destinations
122 MCNAPI
void $handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
126 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
128 MCNAPI ::CreateContainerItemScope