32 enum class InternalType : uchar {
45 ::ll::TypedStorage<8, 8, ::Item const*> mItem;
46 ::ll::TypedStorage<2, 2, short> mAuxValue;
52 MCAPI ::Block
const* getBlock()
const;
60 virtual ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> clone()
const = 0;
66 virtual ::std::string getFullName()
const;
68 virtual ::std::string toString()
const;
70 virtual ::ItemDescriptor::ItemEntry getItem()
const;
72 virtual bool forEachItemUntil(::std::function<
bool(
::Item const&,
short)> func)
const;
74 virtual ::std::map<::std::string, ::std::string> toMap()
const = 0;
76 virtual ::std::optional<::CompoundTag> save()
const = 0;
82 virtual ::ItemDescriptor::InternalType getType()
const = 0;
84 virtual bool isValid()
const;
86 virtual uint64 getHash()
const = 0;
88 virtual bool shouldResolve()
const;
90 virtual ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> resolve()
const;
106 MCFOLD ::std::string $getFullName()
const;
108 MCAPI ::std::string $toString()
const;
110 MCFOLD ::ItemDescriptor::ItemEntry $getItem()
const;
112 MCAPI
bool $forEachItemUntil(::std::function<
bool(
::Item const&,
short)> func)
const;
116 MCFOLD
bool $isValid()
const;
118 MCFOLD
bool $shouldResolve()
const;
120 MCFOLD ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> $resolve()
const;
135 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemDescriptor::BaseDescriptor>> mImpl;
140 ItemDescriptor(ItemDescriptor
const&);
146 virtual ~ItemDescriptor();
156 MCAPI
explicit ItemDescriptor(
::Block const& block);
158 MCAPI
explicit ItemDescriptor(
::BlockType const& block);
160 MCAPI
explicit ItemDescriptor(
::ItemTag const& itemTag);
164 MCAPI ItemDescriptor(::std::string_view fullName,
int itemAux);
166 MCAPI ItemDescriptor(
::Item const& item,
int auxValue);
168 MCAPI ItemDescriptor(
::Json::Value const& val, ::MolangVersion molangVersion);
170 MCAPI
void _resolve()
const;
172 MCAPI
bool forEachItemUntil(::std::function<
bool(
::Item const&,
short)> func)
const;
174 MCAPI
short getAuxValue()
const;
176 MCAPI ::Block
const* getBlock()
const;
178 MCAPI ::WeakPtr<::BlockType const>
const& getBlockType()
const;
180 MCAPI ::std::string getFullName()
const;
182 MCAPI
short getId()
const;
184 MCAPI
int getIdAux()
const;
186 MCAPI ::Item
const* getItem()
const;
188 MCAPI ::std::string getRawNameId()
const;
190 MCAPI ::std::string getSerializedNameAndAux()
const;
192 MCAPI
bool isNull()
const;
194 MCAPI
bool isValid(
bool shouldResolve)
const;
196 MCAPI
void operator=(::ItemDescriptor&& rhs);
198 MCAPI
void operator=(::ItemDescriptor
const& rhs);
200 MCAPI
bool sameItem(::ItemDescriptor
const& otherItemDescriptor,
bool compareAux)
const;
202 MCAPI ::std::optional<::CompoundTag> save()
const;
212 MCAPI static ::std::optional<::ItemDescriptor> fromTag(
::CompoundTag const* tag);
214 MCAPI static ::SharedTypes::Legacy::ItemDescriptor toSharedTypes(::ItemDescriptor
const&
id);
220 MCAPI
void* $ctor(
::Block const& block);
224 MCAPI
void* $ctor(
::ItemTag const& itemTag);
228 MCAPI
void* $ctor(::std::string_view fullName,
int itemAux);
230 MCAPI
void* $ctor(
::Item const& item,
int auxValue);
232 MCAPI
void* $ctor(
::Json::Value const& val, ::MolangVersion molangVersion);
254 MCAPI
static void** $vftable();
Definition ItemDescriptor.h:41