33class FurnaceBlockActor :
public ::BlockActor,
public ::Container {
46 ::ll::TypedStorage<4, 4, int> mLitTime;
47 ::ll::TypedStorage<4, 4, int> mLitDuration;
48 ::ll::TypedStorage<4, 4, int> mCookingProgress;
49 ::ll::TypedStorage<4, 4, uint> mStoredXP;
50 ::ll::TypedStorage<8, 456, ::ItemStack[3]> mItems;
51 ::ll::TypedStorage<1, 3, bool[3]> mDirty;
52 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ActorUniqueID>> mActors;
53 ::ll::TypedStorage<8, 48, ::HashedString const> mRecipeTag;
54 ::ll::TypedStorage<4, 4, int const> mBurnInterval;
55 ::ll::TypedStorage<1, 1, bool> mOpenByLocalPlayer;
56 ::ll::TypedStorage<4, 4, ::SharedTypes::Legacy::LevelSoundEvent> mSmeltSoundEvent;
57 ::ll::TypedStorage<4, 4, int> mSoundTick;
58 ::ll::TypedStorage<4, 4, int> mSoundTickTarget;
59 ::ll::TypedStorage<8, 8, ::Block const&> mUnlitFurnace;
60 ::ll::TypedStorage<8, 8, ::Block const&> mLitFurnace;
61 ::ll::TypedStorage<8, 128, ::ItemInstance> mLastFuelItem;
62 ::ll::TypedStorage<1, 1, bool> mNoDrop;
63 ::ll::TypedStorage<1, 1, bool> mNeedsLitStateFixup;
68 FurnaceBlockActor& operator=(FurnaceBlockActor
const&);
69 FurnaceBlockActor(FurnaceBlockActor
const&);
75 virtual ::ItemStack
const& getItem(
int index)
const ;
77 virtual void setItem(
int slot,
::ItemStack const& item) ;
79 virtual ::std::string getName()
const ;
81 virtual int getMaxStackSize()
const ;
83 virtual int getContainerSize()
const ;
87 virtual void startOpen(
::Actor& actor) ;
89 virtual void stopOpen(
::Actor& actor) ;
91 virtual bool canPushInItem(
int slot,
int face,
::ItemStack const& item)
const ;
93 virtual bool canPullOutItem(
int slot,
int face,
::ItemStack const& item)
const ;
95 virtual ::Container* getContainer() ;
97 virtual ::Container
const* getContainer()
const ;
109 virtual void onMove() ;
111 virtual void serverInitItemStackIds(
114 ::std::function<
void(
int,
::ItemStack const&)> onNetIdChanged
119 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(
::BlockSource& region) ;
123 virtual ~FurnaceBlockActor() ;
129 MCAPI FurnaceBlockActor(
130 ::BlockActorType blockActorType,
133 ::SharedTypes::Legacy::LevelSoundEvent smeltSound,
134 ::SharedTypes::Legacy::ContainerType containerType,
142 MCAPI
void burn(
::Recipes const& recipes);
144 MCAPI
bool canBurn(
::Recipes const& recipes);
148 MCAPI
void checkForSmeltEverythingAchievement(
::BlockSource& region);
150 MCAPI
int withdrawStoredXPReward();
156 MCAPI
static float _getXPRewardMultiplier(
::ItemStackBase const& item);
158 MCAPI
static int getAvailableFuelSetCount(
int slot,
::ItemStackBase const& item);
160 MCAPI
static float getBurnDuration(
::ItemStackBase const& itemInstance,
float burnInterval);
162 MCAPI
static float getItemBurnDuration(
::Item const& item,
float burnInterval);
164 MCAPI
static int getXPRewardFromSmeltingItems(
::ItemStackBase const& item,
int numItemsSmelted);
166 MCAPI_C
static bool isItemAllowedInFuelSlot(
int slot,
::ItemStackBase const& item,
int amount);
172 MCAPI static ::std::string
const& BURN_DURATION_KEY();
174 MCAPI
static int const& BURN_INTERVAL();
176 MCAPI static ::std::string
const& BURN_TIME_KEY();
178 MCAPI static ::std::string
const& COOK_TIME_KEY();
180 MCAPI static ::std::string
const& CUSTOM_NAME_KEY();
182 MCAPI
static float const& DEFAULT_SMELTING_TIME();
184 MCAPI static ::std::string
const& FILTERED_CUSTOM_NAME_KEY();
186 MCAPI static ::std::string
const& ITEMS_LIST_KEY();
188 MCAPI static ::std::string
const& LAST_FUEL_KEY();
190 MCAPI static ::std::string
const& SLOT_KEY();
192 MCAPI static ::std::string
const& STORED_XP_DEPRECATED_KEY();
194 MCAPI static ::std::string
const& STORED_XP_KEY();
201 ::BlockActorType blockActorType,
204 ::SharedTypes::Legacy::LevelSoundEvent smeltSound,
205 ::SharedTypes::Legacy::ContainerType containerType,
221 MCFOLD ::ItemStack
const& $getItem(
int index)
const;
223 MCAPI
void $setItem(
int slot,
::ItemStack const& item);
225 MCAPI ::std::string $getName()
const;
227 MCFOLD
int $getMaxStackSize()
const;
229 MCFOLD
int $getContainerSize()
const;
233 MCAPI
void $startOpen(
::Actor& actor);
235 MCAPI
void $stopOpen(
::Actor& actor);
237 MCAPI
bool $canPushInItem(
int slot,
int face,
::ItemStack const& item)
const;
239 MCAPI
bool $canPullOutItem(
int slot,
int face,
::ItemStack const& item)
const;
241 MCFOLD ::Container* $getContainer();
243 MCFOLD ::Container
const* $getContainer()
const;
255 MCFOLD
void $onMove();
257 MCAPI
void $serverInitItemStackIds(
260 ::std::function<
void(
int,
::ItemStack const&)> onNetIdChanged
265 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(
::BlockSource& region);
275 MCAPI
static void** $vftableForContainer();
277 MCAPI
static void** $vftableForBlockActor();
Definition SaveContext.h:5