23class DecoratedPotBlockActor :
public ::RandomizableBlockActorContainer {
26 enum class PotFace : uint64 {
33 using SherdList = ::std::array<::std::string, 4>;
38 ::ll::TypedStorage<8, 128, ::std::array<::std::string, 4>> mSherdItemNames;
39 ::ll::TypedStorage<8, 152, ::ItemStack> mContainedItem;
40 ::ll::TypedStorage<1, 1, ::DecoratedPotAnimation> mAnimation;
41 ::ll::TypedStorage<4, 4, int> mAnimationTick;
46 DecoratedPotBlockActor();
57 virtual void serverInitItemStackIds(
63 virtual int getContainerSize()
const ;
65 virtual int getMaxStackSize()
const ;
67 virtual ::ItemStack
const& getItem(
int)
const ;
69 virtual void setItem(
int item,
::ItemStack const&) ;
71 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(
::BlockSource&) ;
79 MCAPI
explicit DecoratedPotBlockActor(
::BlockPos const& pos);
85 MCAPI
void _setContainedItem(
::ItemStack const& item);
90 MCFOLD ::DecoratedPotAnimation getAnimation()
const;
92 MCAPI
float getAnimationProgress(
float frameAlpha)
const;
95 MCFOLD ::std::array<::std::string, 4>
const& getSherdNames()
const;
97 MCAPI
void tryAddItem(
::Player& player);
103 MCAPI
static bool _areDefaultSherds(::std::array<::std::string, 4>
const& sherds);
106 MCAPI static ::std::string getDelimitedConcatenatedSherdNames(
::CompoundTag const* userData);
109 MCAPI
static void removeDefaultSherdsFromUserData(
::ItemStackBase& itemInstance);
113 saveSherdsToItemForInventoryRendering(
::ItemStack& itemInstance, ::std::string
const& screenSherdNames);
117 saveSherdsToTag(
::CompoundTag& tag, ::std::array<::std::string, 4>
const& sherds,
bool forceSaveDefaultSherds);
121 MCAPI static ::std::optional<::std::array<::std::string, 4>> tryGetSherdsFromTag(
::CompoundTag const& tag);
127 MCAPI static ::std::array<::std::string, 4>
const& DEFAULT_SHERD_LIST();
146 $serverInitItemStackIds(
int containerSlot,
int onNetIdChanged, ::std::function<
void(
int,
::ItemStack const&)>);
148 MCFOLD
int $getContainerSize()
const;
150 MCFOLD
int $getMaxStackSize()
const;
152 MCFOLD ::ItemStack
const& $getItem(
int)
const;
156 MCFOLD ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(
::BlockSource&);
166 MCAPI
static void** $vftableForContainer();
168 MCAPI
static void** $vftableForRandomizableBlockActorContainerBase();
Definition SaveContext.h:5