3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/legacy/ActorUniqueID.h"
7#include "mc/world/level/block/actor/BlockActorVersion.h"
8#include "mc/world/level/block/actor/component/IBlockActorComponent.h"
30 enum class EntityStorageResult : uchar {
35 EntityAlreadyStored = 4,
42 EntityNotAllowed = 11,
50 ::ll::TypedStorage<8, 8, ::BlockActor&> mBlockActor;
51 ::ll::TypedStorage<8, 8, ::BlockSource&> mRegion;
56 Context& operator=(Context
const&);
57 Context(Context
const&);
65 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mUniqueId;
66 ::ll::TypedStorage<8, 32, ::std::string> mDefinitionId;
70 using EntityBucket = ::std::vector<::CompoundTag>;
72 using EntityBuckets = ::std::unordered_map<::std::string, ::std::vector<::CompoundTag>>;
77 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::vector<::CompoundTag>>> mEntities;
91 MCNAPI ::std::vector<::EntityStorageBlockActorComponent::EntityStorageInfo>
94 MCNAPI ::EntityStorageBlockActorComponent::EntityStorageResult
release(
95 ::std::string
const& bucket,
101 MCNAPI
int size(::std::string
const& bucket)
const;
103 MCNAPI ::EntityStorageBlockActorComponent::EntityStorageResult
store(
104 ::std::string
const& bucket,
110 MCNAPI ::EntityStorageBlockActorComponent::EntityStorageResult
transfer(
111 ::std::string
const& bucket,
122 MCNAPI static ::std::unique_ptr<::EntityStorageBlockActorComponent> tryCreateFor(
::BlockType const& blockType);
Definition BlockActor.h:30
Definition BlockSource.h:72
Definition BlockType.h:79
Definition CompoundTag.h:18
Definition EntityStorageBlockActorComponent.h:21
MCAPI::EntityStorageBlockActorComponent::EntityStorageResult release(::std::string const &bucket, ::ActorUniqueID entityId, ::Actor *&outActor, ::EntityStorageBlockActorComponent::Context const &context)
MCAPI::EntityStorageBlockActorComponent::EntityStorageResult store(::std::string const &bucket, ::Actor &actor, ::ActorUniqueID &outEntityId, ::EntityStorageBlockActorComponent::Context const &context)
MCAPI void $save(::CompoundTag &parentTag, ::SaveContext const &) const
MCAPI ::std::vector<::EntityStorageBlockActorComponent::EntityStorageInfo > getEntities(::std::string const &bucket) const
static MCAPI void ** $vftable()
MCAPI::EntityStorageBlockActorComponent::EntityStorageResult transfer(::std::string const &bucket, ::ActorUniqueID entityId, ::BlockActor &targetBlockActor, ::EntityStorageBlockActorComponent::Context const &context)
MCAPI int size(::std::string const &bucket) const
MCAPI void $load(::CompoundTag const &parentTag, ::ILevel &level, ::BlockActorVersion version)
Definition SaveContext.h:5
Definition ActorUniqueID.h:5
Definition EntityStorageBlockActorComponent.h:46
Definition EntityStorageBlockActorComponent.h:61
Definition IBlockActorComponent.h:15