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 slot)
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&) ;
127 MCAPI
explicit FurnaceBlockActor(
::BlockPos const& pos);
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);
151 MCAPI
int getBurnProgress(
int max);
153 MCFOLD ::ItemInstance
const& getLastFuelItem()
const;
156 MCFOLD
int getLitDuration()
const;
159 MCAPI
int getLitProgress(
int max);
162 MCFOLD
int getLitTime()
const;
164 MCAPI
int getStoredXP()
const;
166 MCFOLD
int getTickCount()
const;
172 MCFOLD
void setLitDuration(
int value);
174 MCFOLD
void setLitTime(
int value);
176 MCAPI
void setOpenByLocalPlayer(
bool open);
178 MCAPI
void setStoredXP(
int value);
180 MCFOLD
void setTickCount(
int value);
182 MCAPI
void storeXPRewardForRemovingWithHopper(
::ItemStackBase const& item,
int numItemsSmelted);
184 MCAPI
int withdrawStoredXPReward();
190 MCAPI
static float _getXPRewardMultiplier(
::ItemStackBase const& item);
192 MCAPI
static int getAvailableFuelSetCount(
int slot,
::ItemStackBase const& item);
194 MCAPI
static float getBurnDuration(
::ItemStackBase const& itemInstance,
float burnInterval);
196 MCAPI
static float getItemBurnDuration(
::Item const& item,
float burnInterval);
198 MCAPI
static int getXPRewardFromSmeltingItems(
::ItemStackBase const& item,
int numItemsSmelted);
200 MCAPI
static bool isItemAllowedInFuelSlot(
int slot,
::ItemStackBase const& item,
int amount);
206 MCAPI static ::std::string
const& BURN_DURATION_KEY();
208 MCAPI
static int const& BURN_INTERVAL();
210 MCAPI static ::std::string
const& BURN_TIME_KEY();
212 MCAPI static ::std::string
const& COOK_TIME_KEY();
214 MCAPI
static float const& DEFAULT_SMELTING_TIME();
216 MCAPI static ::std::string
const& FILTERED_CUSTOM_NAME_KEY();
218 MCAPI static ::std::string
const& ITEMS_LIST_KEY();
220 MCAPI static ::std::string
const& LAST_FUEL_KEY();
222 MCAPI static ::std::string
const& SLOT_KEY();
224 MCAPI static ::std::string
const& STORED_XP_DEPRECATED_KEY();
226 MCAPI static ::std::string
const& STORED_XP_KEY();
235 ::BlockActorType blockActorType,
238 ::SharedTypes::Legacy::LevelSoundEvent smeltSound,
239 ::SharedTypes::Legacy::ContainerType containerType,
249 MCFOLD ::ItemStack
const& $getItem(
int slot)
const;
251 MCAPI
void $setItem(
int slot,
::ItemStack const& item);
253 MCAPI ::std::string $getName()
const;
255 MCFOLD
int $getMaxStackSize()
const;
257 MCFOLD
int $getContainerSize()
const;
261 MCAPI
void $startOpen(
::Actor& actor);
263 MCAPI
void $stopOpen(
::Actor& actor);
265 MCAPI
bool $canPushInItem(
int slot,
int face,
::ItemStack const& item)
const;
267 MCAPI
bool $canPullOutItem(
int slot,
int face,
::ItemStack const& item)
const;
269 MCFOLD ::Container* $getContainer();
271 MCFOLD ::Container
const* $getContainer()
const;
283 MCFOLD
void $onMove();
285 MCAPI
void $serverInitItemStackIds(
288 ::std::function<
void(
int,
::ItemStack const&)> onNetIdChanged
293 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(
::BlockSource&);
303 MCAPI
static void** $vftableForContainer();
305 MCAPI
static void** $vftableForBlockActor();
Definition SaveContext.h:5