3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/world/Container.h"
7#include "mc/world/level/block/actor/VanillaBlockActor.h"
26class BeaconBlockActor :
public ::VanillaBlockActor,
public ::Container {
29 using BeaconBeamSections = ::std::vector<::BeaconBeamSection>;
34 ::ll::TypedStorage<8, 24, ::std::vector<::BeaconBeamSection>> mBeamSections;
35 ::ll::TypedStorage<4, 4, float> mBeamRot;
36 ::ll::TypedStorage<4, 4, int> mNumLevels;
37 ::ll::TypedStorage<4, 4, int> mNumLevelsSet;
38 ::ll::TypedStorage<4, 4, int> mBlockRefreshCounter;
39 ::ll::TypedStorage<4, 4, int> mPrimaryEffectId;
40 ::ll::TypedStorage<4, 4, int> mSecondaryEffectId;
41 ::ll::TypedStorage<4, 4, int> mPrimaryEffectTier;
42 ::ll::TypedStorage<4, 4, int> mSecondaryEffectTier;
43 ::ll::TypedStorage<8, 24, ::std::vector<::MobEffect const*>> mBeaconEffects;
44 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<::MobEffect const*>>> mTierEffects;
45 ::ll::TypedStorage<1, 1, bool> mPermanentlyRendered;
46 ::ll::TypedStorage<1, 1, bool> mClientRenderingNeedsUpdate;
47 ::ll::TypedStorage<1, 1, bool> mIsBlockBaseLoaded;
57 virtual ~BeaconBlockActor() =
default;
65 virtual bool hasAlphaLayer()
const ;
67 virtual bool isPermanentlyRendered()
const ;
69 virtual bool isWithinRenderDistance(
::Vec3 const& cameraPosition)
const ;
71 virtual ::ItemStack
const& getItem(
int slot)
const ;
73 virtual void setItem(
int slot,
::ItemStack const& item) ;
75 virtual void removeItem(
int slot,
int count) ;
77 virtual ::std::string getName()
const ;
79 virtual int getContainerSize()
const ;
81 virtual int getMaxStackSize()
const ;
83 virtual void startOpen(
::Actor&) ;
85 virtual void stopOpen(
::Actor& actor) ;
87 virtual void serverInitItemStackIds(
90 ::std::function<
void(
int,
::ItemStack const&)> onNetIdChanged
93 virtual ::Container* getContainer() ;
95 virtual ::Container
const* getContainer()
const ;
97 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(
::BlockSource& region) ;
105 MCAPI BeaconBlockActor(
::BlockPos const& pos,
bool permanentlyRendered);
138 MCAPI
void* $ctor(
::BlockPos const& pos,
bool permanentlyRendered);
156 MCNAPI ::ItemStack
const&
$getItem(
int slot)
const;
175 ::std::function<
void(
int,
::ItemStack const&)> onNetIdChanged
static MCAPI bool isPaymentItem(::ItemDescriptor const &pItem)
MCAPI void $setItem(int slot, ::ItemStack const &item)
MCAPI::ItemStack const & $getItem(int slot) const
MCAPI void $load(::ILevel &level, ::CompoundTag const &tag, ::DataLoadHelper &dataLoadHelper)
MCAPI void $_onUpdatePacket(::CompoundTag const &data, ::BlockSource ®ion)
MCAPI void $stopOpen(::Actor &actor)
MCAPI ::std::unique_ptr<::BlockActorDataPacket > $_getUpdatePacket(::BlockSource ®ion)
MCAPI::std::string $getName() const
MCAPI::Container * $getContainer()
MCAPI void $serverInitItemStackIds(int containerSlot, int count, ::std::function< void(int, ::ItemStack const &)> onNetIdChanged)
MCAPI void _notifyBeamSectionsChange(::BlockSource ®ion, ::std::vector<::BeaconBeamSection > const &oldBeamSections)
MCAPI void $startOpen(::Actor &)
MCAPI bool $isWithinRenderDistance(::Vec3 const &cameraPosition) const
MCAPI int _getEffectTier(int effectId) const
MCAPI int $getMaxStackSize() const
MCAPI void $removeItem(int slot, int count)
MCAPI bool $hasAlphaLayer() const
MCAPI bool $save(::CompoundTag &tag, ::SaveContext const &saveContext) const
MCAPI::Container const * $getContainer() const
MCAPI bool $isPermanentlyRendered() const
MCAPI int $getContainerSize() const
MCAPI bool setSecondaryEffect(int effectId)
Definition BlockActorDataPacket.h:19
Definition BlockSource.h:72
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition ItemDescriptor.h:24
Definition ItemStack.h:26
Definition MobEffect.h:27
Definition SaveContext.h:5
Definition BeaconBeamSection.h:8