Initial SNBT implementation

This commit is contained in:
zontreck 2024-05-08 18:52:20 -07:00
parent c10ffc58b8
commit 84b37f8b04
16 changed files with 137 additions and 0 deletions

View file

@ -46,4 +46,9 @@ class ByteArrayTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: [$array]");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("[B; ${value.join("B, ")}B]");
}
}

View file

@ -34,4 +34,9 @@ class ByteTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("${value}b");
}
}

View file

@ -85,4 +85,22 @@ class CompoundTag extends Tag {
void endPrettyPrint(int indent) {
print("${"".padLeft(indent, '\t')}}");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
Iterator<Tag> it = value.values.iterator;
builder.append("{\n");
bool firstEntry = true;
while (it.moveNext()) {
Tag t = it.current;
if (firstEntry) {
firstEntry = false;
} else {
builder.append(",\n");
}
Tag.writeStringifiedNamedTag(t, builder, indent);
}
builder.append("\n${"".padLeft(indent - 1, '\t')}}\n");
}
}

View file

@ -34,4 +34,9 @@ class DoubleTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("${value}d");
}
}

View file

@ -19,4 +19,7 @@ class EndTag extends Tag {
void prettyPrint(int indent, bool recurse) {
print("${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {}
}

View file

@ -33,4 +33,9 @@ class FloatTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("${value}f");
}
}

View file

@ -45,4 +45,9 @@ class IntArrayTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: [$array]");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("[I; ${value.join('I, ')}I]");
}
}

View file

@ -33,4 +33,9 @@ class IntTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("${value}i");
}
}

View file

@ -86,4 +86,9 @@ class ListTag extends Tag {
void endPrettyPrint(int indent) {
print("${"".padLeft(indent, '\t')}]");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("[\n");
}
}

View file

@ -49,4 +49,9 @@ class LongArrayTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: [$array]");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("[L; ${value.join('L, ')}L]");
}
}

View file

@ -33,4 +33,9 @@ class LongTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("${value}L");
}
}

View file

@ -33,4 +33,9 @@ class ShortTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("${value}S");
}
}

View file

@ -33,4 +33,9 @@ class StringTag extends Tag {
print(
"${"".padLeft(indent, '\t')}${Tag.getCanonicalName(getTagType())}: $value");
}
@override
void writeStringifiedValue(StringBuilder builder, int indent) {
builder.append("\"${value}\"");
}
}