Implement basic SNBT reader and testsuite

This commit is contained in:
zontreck 2024-06-06 14:14:13 -07:00
parent 396c660113
commit a0f372693b
17 changed files with 352 additions and 2 deletions

View file

@ -5,7 +5,7 @@ import 'Tag.dart';
import 'impl/CompoundTag.dart';
class SnbtIo {
static void write(String file, CompoundTag tag) {
static void writeToFile(String file, CompoundTag tag) {
File handle = File(file);
if (handle.existsSync())
@ -15,4 +15,22 @@ class SnbtIo {
Tag.writeStringifiedNamedTag(tag, builder, 0);
handle.writeAsString(builder.toString());
}
static Future<Tag> readFromFile(String file) async {
File fi = File(file);
String data = await fi.readAsString();
StringReader reader = StringReader(data);
return Tag.readStringifiedNamedTag(reader);
}
static String writeToString(CompoundTag tag) {
StringBuilder builder = StringBuilder();
Tag.writeStringifiedNamedTag(tag, builder, 0);
return builder.toString();
}
static Future<Tag> readFromString(String data) async {
return Tag.readStringifiedNamedTag(StringReader(data));
}
}