3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/molang/MolangVersion.h"
7#include "mc/platform/brstd/function_ref.h"
19namespace Json {
class Value; }
33 enum class InternalType : uchar {
46 ::ll::TypedStorage<8, 8, ::Item const*> mItem;
47 ::ll::TypedStorage<2, 2, short> mAuxValue;
55 virtual ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> clone()
const = 0;
61 virtual ::std::string getFullName()
const;
63 virtual ::std::string toString()
const;
65 virtual ::std::string getNameAndAux()
const;
67 virtual ::ItemDescriptor::ItemEntry getItem()
const;
71 virtual ::std::map<::std::string, ::std::string> toMap()
const = 0;
73 virtual ::std::optional<::CompoundTag> save()
const = 0;
79 virtual ::ItemDescriptor::InternalType getType()
const = 0;
81 virtual bool isValid()
const;
83 virtual uint64 getHash()
const = 0;
85 virtual bool shouldResolve()
const;
87 virtual ::std::unique_ptr<::ItemDescriptor::BaseDescriptor> resolve()
const;
101 MCNAPI ::ItemDescriptor::ItemEntry
$getItem()
const;
111 MCNAPI ::std::unique_ptr<::ItemDescriptor::BaseDescriptor>
$resolve()
const;
120 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemDescriptor::BaseDescriptor>> mImpl;
124 ItemDescriptor() { mImpl =
nullptr; }
145 MCAPI
explicit ItemDescriptor(
::ItemTag const& itemTag);
149 MCAPI ItemDescriptor(::std::string_view fullName,
int itemAux);
151 MCAPI ItemDescriptor(
::Item const& item,
int auxValue);
157 MCAPI
short getAuxValue()
const;
159 MCAPI ::Block
const* getBlock()
const;
161 MCAPI ::BlockType
const* getBlockType()
const;
163 MCAPI
int getIdAux()
const;
165 MCAPI ::Item
const* getItem()
const;
167 MCAPI ::std::string getRawNameId()
const;
169 MCAPI ::std::string getSerializedNameAndAux(
bool removeInvalidAux)
const;
171 MCAPI
bool isNull()
const;
173 MCAPI
bool isValid(
bool shouldResolve)
const;
175 MCNAPI
explicit operator ::ItemInstance()
const;
177 MCAPI
bool sameItem(::ItemDescriptor
const& otherItemDescriptor,
bool compareAux)
const;
187 MCAPI static ::std::optional<::ItemDescriptor> fromTag(
::CompoundTag const* tag);
201 MCAPI
void*
$ctor(::std::string_view fullName,
int itemAux);
203 MCAPI
void*
$ctor(
::Item const& item,
int auxValue);
Definition BinaryStream.h:10
Definition BlockType.h:79
Definition CompoundTag.h:18
Definition ItemDescriptor.h:24
MCAPI void * $ctor(::Block const &block)
MCAPI ItemDescriptor(::Json::Value const &val, ::MolangVersion molangVersion)
static MCAPI void ** $vftable()
MCAPI void * $ctor(::BlockType const &block)
MCAPI ItemDescriptor(::ReadOnlyBinaryStream &stream)
MCAPI ItemDescriptor(::Block const &block)
static MCAPI void bindType(::cereal::ReflectionCtx &ctx)
MCAPI void * $ctor(::ReadOnlyBinaryStream &stream)
static MCAPI void fromSharedTypes(::ItemDescriptor &instance, ::SharedTypes::Legacy::ItemDescriptor const &desc)
MCAPI void * $ctor(::Json::Value const &val, ::MolangVersion molangVersion)
MCAPI ItemDescriptor(::BlockType const &block)
Definition ItemInstance.h:15
Definition ReadOnlyBinaryStream.h:8
Definition function_ref.h:60
Definition ItemDescriptor.h:51
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 bool $forEachItemUntil(::brstd::function_ref< bool(::Item const &, short)> func) const
MCAPI bool $shouldResolve() const
MCAPI::std::string $getNameAndAux() const
MCAPI::std::string $toString() const
MCAPI void $serialize(::Json::Value &val) const
Definition ItemDescriptor.h:42
Definition ItemDescriptor.h:15
Definition ReflectionCtx.h:11
Definition serialize.h:11