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();
45 virtual ~ElementConstructorContainerManagerController() =
default;
47 virtual ~ElementConstructorContainerManagerController() ;
51 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const&)
const ;
53 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const& slot)
const ;
69 virtual int handleAutoPlace(
72 ::std::vector<::AutoPlaceItem>
const&,
73 ::std::vector<::AutoPlaceResult>&
76 virtual int handleAutoPlace(
79 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
80 ::std::vector<::AutoPlaceResult>& destinations
98 virtual bool isOutputSlot(::std::string
const&)
const ;
100 virtual bool isOutputSlot(::std::string
const& collectionName)
const ;
104 virtual ::CreateContainerItemScope
107 virtual ::CreateContainerItemScope
117 MCNAPI
explicit ElementConstructorContainerManagerController(
118 ::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel
125 MCNAPI
bool _updateOutputPreview(
::ItemStack const& stack);
127 MCNAPI
void _updateParticleInputsFromOutputSlot();
129 MCNAPI
bool isStillValid(
float pickRange);
131 MCNAPI
bool outputInteractWouldCausePlace(
::SlotData const& src);
133 MCNAPI
void setParticleCallback(::std::function<
void(
int,
int,
int)> callback);
135 MCNAPI
void updateOutput(
int protons,
int electrons,
int neutrons);
137 MCNAPI
void updateOutputFromSlot(
::SlotData const& src);
145 MCNAPI
void* $ctor(::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel);
159 MCNAPI ::ItemStackBase
const& $getTakeableItemStackBase(
::SlotData const& slot)
const;
165 MCNAPI
int $handleAutoPlace(
168 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
169 ::std::vector<::AutoPlaceResult>& destinations
172 MCNAPI
void $handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
176 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
178 MCNAPI ::CreateContainerItemScope