3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/common/WeakPtr.h"
7#include "mc/molang/MolangVersion.h"
18namespace Json {
class Value; }
35 ::ll::TypedStorage<8, 8, ::Item const*> mItem;
36 ::ll::TypedStorage<2, 2, short> mAuxValue;
46 enum class InternalType : uchar {
60 virtual ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> clone()
const = 0;
69 virtual ::std::string getFullName()
const;
72 virtual ::std::string toString()
const;
75 virtual ::ItemDescriptor::ItemEntry getItem()
const;
78 virtual bool forEachItemUntil(::std::function<
bool(
::Item const&,
short)> func)
const;
81 virtual ::std::map<::std::string, ::std::string> toMap()
const = 0;
84 virtual ::std::optional<::CompoundTag> save()
const = 0;
93 virtual ::ItemDescriptor::InternalType getType()
const = 0;
96 virtual bool isValid()
const;
99 virtual uint64 getHash()
const = 0;
102 virtual bool shouldResolve()
const;
105 virtual ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> resolve()
const;
126 MCNAPI ::ItemDescriptor::ItemEntry
$getItem()
const;
136 MCNAPI ::std::unique_ptr<::ItemDescriptor::BaseDescriptor>
$resolve()
const;
149 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemDescriptor::BaseDescriptor>> mImpl;
187 MCAPI
void _resolve()
const;
189 MCAPI
bool forEachItemUntil(::std::function<
bool(
::Item const&,
short)> func)
const;
191 MCAPI
short getAuxValue()
const;
193 MCAPI ::Block
const* getBlock()
const;
195 MCAPI ::std::string getFullName()
const;
197 MCAPI
short getId()
const;
199 MCAPI
int getIdAux()
const;
201 MCAPI ::Item
const* getItem()
const;
203 MCAPI ::WeakPtr<::BlockLegacy const>
const& getLegacyBlock()
const;
205 MCAPI ::std::string getRawNameId()
const;
207 MCAPI ::std::string getSerializedNameAndAux()
const;
209 MCAPI
bool isNull()
const;
211 MCAPI
bool isValid(
bool shouldResolve)
const;
217 MCAPI
bool sameItem(
::ItemDescriptor const& otherItemDescriptor,
bool compareAux)
const;
219 MCAPI ::std::optional<::CompoundTag> save()
const;
225 MCAPI static ::std::optional<::ItemDescriptor> fromTag(
::CompoundTag const* tag);
227 MCAPI static ::SharedTypes::Legacy::ItemDescriptor toSharedTypes(
::ItemDescriptor const&
id);
233 MCAPI
void* $ctor(
::Block const& block);
237 MCAPI
void* $ctor(
::ItemTag const& itemTag);
241 MCAPI
void* $ctor(::std::string_view fullName,
int itemAux);
243 MCAPI
void* $ctor(
::Item const& item,
int auxValue);
245 MCAPI
void* $ctor(
::Json::Value const& val, ::MolangVersion molangVersion);
Definition BinaryStream.h:10
Definition BlockLegacy.h:88
Definition CompoundTag.h:13
Definition ItemDescriptor.h:22
static MCAPI void ** $vftable()
Definition ReadOnlyBinaryStream.h:8
Definition ItemDescriptor.h:55
MCAPI bool $sameItems(::ItemDescriptor::BaseDescriptor const &otherDescriptor, bool compareAux) const
MCAPI bool $isValid() const
MCAPI::ItemDescriptor::ItemEntry $getItem() const
MCAPI ::std::unique_ptr<::ItemDescriptor::BaseDescriptor > $resolve() const
MCAPI::std::string $getFullName() const
MCAPI bool $shouldResolve() const
MCAPI::std::string $toString() const
MCAPI void $serialize(::Json::Value &val) const
MCAPI bool $forEachItemUntil(::std::function< bool(::Item const &, short)> func) const
static MCAPI void ** $vftable()
Definition ItemDescriptor.h:31
MCAPI::Block const * getBlock() const
Definition serialize.h:11