20class ListTag :
public ::Tag,
public std::vector<UniqueTagPtr> {
22 using List = std::vector<UniqueTagPtr>;
23 Tag::Type mType{Tag::End};
25 using Tag::operator==;
28 [[nodiscard]]
constexpr ListTag() =
default;
30 [[nodiscard]]
constexpr ListTag(List tags) : List(std::move(tags)) {
31 if (!empty()) mType = front().getId();
33 [[nodiscard]]
constexpr ListTag(std::initializer_list<CompoundTagVariant> tags);
34 [[nodiscard]]
constexpr ListTag(std::vector<CompoundTagVariant> tags);
41 virtual ::Bedrock::Result<void> load(
::IDataInput& dis) ;
43 virtual ::Tag::Type getId()
const ;
45 virtual ::std::string toString()
const ;
47 virtual void print(::std::string
const& prefix,
::PrintStream& out)
const ;
49 virtual ::std::unique_ptr<::Tag> copy()
const ;
51 virtual uint64 hash()
const ;
53 virtual bool equals(::Tag
const& rhs)
const ;
55 virtual void deleteChildren() ;
57 virtual ~ListTag() =
default;
63 MCAPI
void add(::std::unique_ptr<::Tag> tag);
65 MCAPI ::std::unique_ptr<::ListTag> copyList()
const;
67 MCAPI
void forEachCompoundTag(::std::function<
void(
::CompoundTag const&)> func)
const;
69 MCAPI ::Tag* get(
int index)
const;
71 MCAPI
float getFloat(
int index)
const;
93 MCFOLD ::Tag::Type $getId()
const;
95 MCAPI ::std::string $toString()
const;
97 MCAPI
void $print(::std::string
const& prefix,
::PrintStream& out)
const;
99 MCAPI ::std::unique_ptr<::Tag> $copy()
const;
101 MCAPI uint64 $hash()
const;
103 MCAPI
bool $equals(::Tag
const& rhs)
const;
105 MCAPI
void $deleteChildren();