public function write(NBT $nbt)
{
if (!isset($this->tagType)) {
$id = null;
foreach ($this as $tag) {
if ($tag instanceof Tag) {
if (!isset($id)) {
$id = $tag->getType();
} elseif ($id !== $tag->getType()) {
return false;
}
}
}
$this->tagType = $id;
}
$nbt->putByte($this->tagType);
/** @var Tag[] $tags */
$tags = [];
foreach ($this as $tag) {
if ($tag instanceof Tag) {
$tags[] = $tag;
}
}
$nbt->putInt(count($tags));
foreach ($tags as $tag) {
$tag->write($nbt);
}
}