33class FurnaceBlockActor :
public ::VanillaBlockActor,
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& region) ;
123 virtual ~FurnaceBlockActor() ;
129 MCAPI FurnaceBlockActor(
130 ::BlockActorType blockActorType,
133 ::SharedTypes::Legacy::LevelSoundEvent smeltSound,
134 ::SharedTypes::Legacy::ContainerType containerType,
140 MCAPI
bool canBurn(
::Recipes const& recipes);
144 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 bool isItemAllowedInFuelSlot(
int slot,
::ItemStackBase const& item,
int amount);
170 MCAPI static ::std::string
const& BURN_DURATION_KEY();
172 MCAPI static ::std::string
const& BURN_TIME_KEY();
174 MCAPI static ::std::string
const& COOK_TIME_KEY();
176 MCAPI static ::std::string
const& FILTERED_CUSTOM_NAME_KEY();
178 MCAPI static ::std::string
const& ITEMS_LIST_KEY();
180 MCAPI static ::std::string
const& LAST_FUEL_KEY();
182 MCAPI static ::std::string
const& SLOT_KEY();
184 MCAPI static ::std::string
const& STORED_XP_DEPRECATED_KEY();
186 MCAPI static ::std::string
const& STORED_XP_KEY();
193 ::BlockActorType blockActorType,
196 ::SharedTypes::Legacy::LevelSoundEvent smeltSound,
197 ::SharedTypes::Legacy::ContainerType containerType,
213 MCFOLD ::ItemStack
const& $getItem(
int slot)
const;
215 MCAPI
void $setItem(
int slot,
::ItemStack const& item);
217 MCAPI ::std::string $getName()
const;
219 MCFOLD
int $getMaxStackSize()
const;
221 MCFOLD
int $getContainerSize()
const;
225 MCAPI
void $startOpen(
::Actor& actor);
227 MCAPI
void $stopOpen(
::Actor& actor);
229 MCAPI
bool $canPushInItem(
int slot,
int face,
::ItemStack const& item)
const;
231 MCAPI
bool $canPullOutItem(
int slot,
int face,
::ItemStack const& item)
const;
233 MCFOLD ::Container* $getContainer();
235 MCFOLD ::Container
const* $getContainer()
const;
247 MCFOLD
void $onMove();
249 MCAPI
void $serverInitItemStackIds(
252 ::std::function<
void(
int,
::ItemStack const&)> onNetIdChanged
257 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(
::BlockSource& region);
Definition SaveContext.h:5