From a8d99586c9a70ae8668870ad92198b96f3a6dd2f Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 20:35:21 -0700 Subject: [PATCH 01/14] Finish ByteTag --- lib/nbt/impl/ByteTag.dart | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/nbt/impl/ByteTag.dart b/lib/nbt/impl/ByteTag.dart index 8a3b1a2..d7921c0 100644 --- a/lib/nbt/impl/ByteTag.dart +++ b/lib/nbt/impl/ByteTag.dart @@ -2,18 +2,20 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class ByteTag extends Tag { - final int value; + int _value = 0; - ByteTag({required this.value}); + ByteTag(int value) { + _value = value; + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readByte(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeByte(_value); } @override -- 2.47.2 From a27248daf9ef8c5dea9a6e22975f50bd54324a19 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 20:39:00 -0700 Subject: [PATCH 02/14] Finish serialization in ByteArrayTag.dart --- lib/nbt/impl/ByteArrayTag.dart | 30 ++++++++++++++++++++++++++++++ lib/nbt/impl/TagByteArray.dart | 22 ---------------------- 2 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 lib/nbt/impl/ByteArrayTag.dart delete mode 100644 lib/nbt/impl/TagByteArray.dart diff --git a/lib/nbt/impl/ByteArrayTag.dart b/lib/nbt/impl/ByteArrayTag.dart new file mode 100644 index 0000000..49adbda --- /dev/null +++ b/lib/nbt/impl/ByteArrayTag.dart @@ -0,0 +1,30 @@ +import 'package:libac_flutter/nbt/Stream.dart'; +import 'package:libac_flutter/nbt/Tag.dart'; + +class ByteArrayTag extends Tag { + List _value = []; + ByteArrayTag(List value) { + _value.addAll(value); + } + + @override + void readValue(ByteLayer data) { + int len = data.readInt(); + for (int i = 0; i < len; i++) { + _value.add(data.readByte()); + } + } + + @override + void writeValue(ByteLayer data) { + data.writeInt(_value.length); + for (int i in _value) { + data.writeByte(i); + } + } + + @override + TagType getTagType() { + return TagType.ByteArray; + } +} diff --git a/lib/nbt/impl/TagByteArray.dart b/lib/nbt/impl/TagByteArray.dart deleted file mode 100644 index 9e53c63..0000000 --- a/lib/nbt/impl/TagByteArray.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:libac_flutter/nbt/Stream.dart'; -import 'package:libac_flutter/nbt/Tag.dart'; - -class TagByteArray extends Tag { - final List value; - TagByteArray({required this.value}); - - @override - void readValue(ByteLayer data) { - // TODO: implement readValue - } - - @override - void writeValue(ByteLayer data) { - // TODO: implement writeValue - } - - @override - TagType getTagType() { - return TagType.ByteArray; - } -} -- 2.47.2 From 70f6e16d1792134acbb7fac7fe513dade668a27a Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 21:24:42 -0700 Subject: [PATCH 03/14] Finish implementing CompoundTag --- lib/nbt/Tag.dart | 73 +++++++++++++++++++ lib/nbt/impl/ByteArrayTag.dart | 9 ++- lib/nbt/impl/ByteTag.dart | 8 +- .../{TagCompound.dart => CompoundTag.dart} | 24 +++++- 4 files changed, 108 insertions(+), 6 deletions(-) rename lib/nbt/impl/{TagCompound.dart => CompoundTag.dart} (62%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 27330f9..8203d5e 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -1,4 +1,13 @@ +import 'package:libac_flutter/nbt/impl/ByteArrayTag.dart'; +import 'package:libac_flutter/nbt/impl/CompoundTag.dart'; +import 'package:libac_flutter/nbt/impl/TagEnd.dart'; +import 'package:libac_flutter/nbt/impl/TagFloat.dart'; +import 'package:libac_flutter/nbt/impl/TagInt.dart'; +import 'package:libac_flutter/nbt/impl/TagLong.dart'; +import 'package:libac_flutter/nbt/impl/TagShort.dart'; + import 'Stream.dart'; +import 'impl/ByteTag.dart'; enum TagType { End(0), @@ -17,6 +26,16 @@ enum TagType { final int byte; const TagType(this.byte); + + static TagType get(int byte) { + for (TagType type in values) { + if (type.byte == byte) { + return type; + } + } + + return TagType.End; + } } abstract class Tag { @@ -27,4 +46,58 @@ abstract class Tag { TagType getTagType(); void writeValue(ByteLayer data); void readValue(ByteLayer data); + String? _key; + + String getKey() { + return (_key == null ? "" : _key!); + } + + static Tag readNamedTag(ByteLayer data) { + var type = data.readByte(); + if (type == 0) { + return new TagEnd(); + } else { + Tag tag = makeTagOfType(TagType.get(type)); + tag._key = data.readString(); + tag.readValue(data); + + return tag; + } + } + + static void writeNamedTag(Tag tag, ByteLayer data) { + data.writeByte(tag.getType()); + if (tag.getType() != 0) { + data.writeString(tag.getKey()); + tag.writeValue(data); + } + } + + static Tag makeTagOfType(TagType type) { + switch (type) { + case TagType.Byte: + { + return new ByteTag(); + } + case TagType.ByteArray: + { + return new ByteArrayTag(); + } + + case TagType.Compound: + { + return new CompoundTag(); + } + case TagType.End: + return new TagEnd(); + case TagType.Short: + return new TagShort(value: 0); + case TagType.Int: + return new TagInt(value: 0); + case TagType.Long: + return new TagLong(value: 0); + case TagType.Float: + return new TagFloat(value: 0); + } + } } diff --git a/lib/nbt/impl/ByteArrayTag.dart b/lib/nbt/impl/ByteArrayTag.dart index 49adbda..4908062 100644 --- a/lib/nbt/impl/ByteArrayTag.dart +++ b/lib/nbt/impl/ByteArrayTag.dart @@ -3,10 +3,17 @@ import 'package:libac_flutter/nbt/Tag.dart'; class ByteArrayTag extends Tag { List _value = []; - ByteArrayTag(List value) { + + ByteArrayTag(); + + ByteArrayTag._(List value) { _value.addAll(value); } + static ByteArrayTag valueOf(List value) { + return ByteArrayTag._(value); + } + @override void readValue(ByteLayer data) { int len = data.readInt(); diff --git a/lib/nbt/impl/ByteTag.dart b/lib/nbt/impl/ByteTag.dart index d7921c0..3e00595 100644 --- a/lib/nbt/impl/ByteTag.dart +++ b/lib/nbt/impl/ByteTag.dart @@ -4,10 +4,16 @@ import 'package:libac_flutter/nbt/Tag.dart'; class ByteTag extends Tag { int _value = 0; - ByteTag(int value) { + ByteTag._(int value) { _value = value; } + ByteTag(); + + static ByteTag valueOf(int value) { + return ByteTag._(value); + } + @override void readValue(ByteLayer data) { _value = data.readByte(); diff --git a/lib/nbt/impl/TagCompound.dart b/lib/nbt/impl/CompoundTag.dart similarity index 62% rename from lib/nbt/impl/TagCompound.dart rename to lib/nbt/impl/CompoundTag.dart index 4415f6d..5a52fa9 100644 --- a/lib/nbt/impl/TagCompound.dart +++ b/lib/nbt/impl/CompoundTag.dart @@ -1,21 +1,37 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagCompound extends Tag { +class CompoundTag extends Tag { late final Map _value; - TagCompound() { + CompoundTag() { _value = new Map(); } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value.clear(); + + while (true) { + Tag tag = Tag.readNamedTag(data); + if (tag.getType() == 0) { + return; + } + + put(tag.getKey(), tag); + } } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + Iterator it = _value.values.iterator; + + while (it.moveNext()) { + Tag tag = it.current; + Tag.writeNamedTag(tag, data); + } + + data.writeByte(TagType.End.byte); } void put(String name, Tag tag) { -- 2.47.2 From 0bf1e2b2d900c8eeb484ac259df0fd5f7771b424 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 21:28:10 -0700 Subject: [PATCH 04/14] Implement DoubleTag --- lib/nbt/Tag.dart | 5 +++++ .../impl/{TagDouble.dart => DoubleTag.dart} | 19 ++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) rename lib/nbt/impl/{TagDouble.dart => DoubleTag.dart} (50%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 8203d5e..cb30fc9 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -1,5 +1,6 @@ import 'package:libac_flutter/nbt/impl/ByteArrayTag.dart'; import 'package:libac_flutter/nbt/impl/CompoundTag.dart'; +import 'package:libac_flutter/nbt/impl/DoubleTag.dart'; import 'package:libac_flutter/nbt/impl/TagEnd.dart'; import 'package:libac_flutter/nbt/impl/TagFloat.dart'; import 'package:libac_flutter/nbt/impl/TagInt.dart'; @@ -88,6 +89,10 @@ abstract class Tag { { return new CompoundTag(); } + case TagType.Double: + { + return new DoubleTag(); + } case TagType.End: return new TagEnd(); case TagType.Short: diff --git a/lib/nbt/impl/TagDouble.dart b/lib/nbt/impl/DoubleTag.dart similarity index 50% rename from lib/nbt/impl/TagDouble.dart rename to lib/nbt/impl/DoubleTag.dart index 6d7b94b..ae99112 100644 --- a/lib/nbt/impl/TagDouble.dart +++ b/lib/nbt/impl/DoubleTag.dart @@ -1,18 +1,27 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagDouble extends Tag { - final double value; - TagDouble({required this.value}); +class DoubleTag extends Tag { + double _value = 0.0; + + DoubleTag(); + + DoubleTag._(double value) { + _value = value; + } + + static DoubleTag valueOf(double value) { + return DoubleTag._(value); + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readDouble(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeDouble(_value); } @override -- 2.47.2 From 61aebb03ad9e1900b916f214a815749cb0789820 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 21:29:04 -0700 Subject: [PATCH 05/14] Implement EndTag --- lib/nbt/Tag.dart | 6 +++--- lib/nbt/impl/{TagEnd.dart => EndTag.dart} | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) rename lib/nbt/impl/{TagEnd.dart => EndTag.dart} (87%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index cb30fc9..6940998 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -1,7 +1,7 @@ import 'package:libac_flutter/nbt/impl/ByteArrayTag.dart'; import 'package:libac_flutter/nbt/impl/CompoundTag.dart'; import 'package:libac_flutter/nbt/impl/DoubleTag.dart'; -import 'package:libac_flutter/nbt/impl/TagEnd.dart'; +import 'package:libac_flutter/nbt/impl/EndTag.dart'; import 'package:libac_flutter/nbt/impl/TagFloat.dart'; import 'package:libac_flutter/nbt/impl/TagInt.dart'; import 'package:libac_flutter/nbt/impl/TagLong.dart'; @@ -56,7 +56,7 @@ abstract class Tag { static Tag readNamedTag(ByteLayer data) { var type = data.readByte(); if (type == 0) { - return new TagEnd(); + return new EndTag(); } else { Tag tag = makeTagOfType(TagType.get(type)); tag._key = data.readString(); @@ -94,7 +94,7 @@ abstract class Tag { return new DoubleTag(); } case TagType.End: - return new TagEnd(); + return new EndTag(); case TagType.Short: return new TagShort(value: 0); case TagType.Int: diff --git a/lib/nbt/impl/TagEnd.dart b/lib/nbt/impl/EndTag.dart similarity index 87% rename from lib/nbt/impl/TagEnd.dart rename to lib/nbt/impl/EndTag.dart index e95c48d..f5e038f 100644 --- a/lib/nbt/impl/TagEnd.dart +++ b/lib/nbt/impl/EndTag.dart @@ -1,8 +1,8 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagEnd extends Tag { - TagEnd(); +class EndTag extends Tag { + EndTag(); @override void readValue(ByteLayer data) {} -- 2.47.2 From 120328533c6b717853ed8f3ccaff75b712cf6a3a Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 21:30:58 -0700 Subject: [PATCH 06/14] Implement FloatTag --- lib/nbt/Tag.dart | 4 ++-- lib/nbt/impl/{TagFloat.dart => FloatTag.dart} | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) rename lib/nbt/impl/{TagFloat.dart => FloatTag.dart} (51%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 6940998..4d1fa6e 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -2,7 +2,7 @@ import 'package:libac_flutter/nbt/impl/ByteArrayTag.dart'; import 'package:libac_flutter/nbt/impl/CompoundTag.dart'; import 'package:libac_flutter/nbt/impl/DoubleTag.dart'; import 'package:libac_flutter/nbt/impl/EndTag.dart'; -import 'package:libac_flutter/nbt/impl/TagFloat.dart'; +import 'package:libac_flutter/nbt/impl/FloatTag.dart'; import 'package:libac_flutter/nbt/impl/TagInt.dart'; import 'package:libac_flutter/nbt/impl/TagLong.dart'; import 'package:libac_flutter/nbt/impl/TagShort.dart'; @@ -102,7 +102,7 @@ abstract class Tag { case TagType.Long: return new TagLong(value: 0); case TagType.Float: - return new TagFloat(value: 0); + return new FloatTag(); } } } diff --git a/lib/nbt/impl/TagFloat.dart b/lib/nbt/impl/FloatTag.dart similarity index 51% rename from lib/nbt/impl/TagFloat.dart rename to lib/nbt/impl/FloatTag.dart index beef4c8..b2c8b25 100644 --- a/lib/nbt/impl/TagFloat.dart +++ b/lib/nbt/impl/FloatTag.dart @@ -1,18 +1,26 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagFloat extends Tag { - final double value; - TagFloat({required this.value}); +class FloatTag extends Tag { + double _value = 0.0; + FloatTag(); + + FloatTag._(double value) { + _value = value; + } + + static FloatTag valueOf(double value) { + return FloatTag._(value); + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readFloat(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeFloat(_value); } @override -- 2.47.2 From 5642a7f6936147b3aa1049408e9de4f2137795a3 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 21:35:19 -0700 Subject: [PATCH 07/14] Implement IntTag --- lib/nbt/Tag.dart | 4 ++-- lib/nbt/impl/{TagInt.dart => IntTag.dart} | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) rename lib/nbt/impl/{TagInt.dart => IntTag.dart} (53%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 4d1fa6e..bdc8ee8 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -3,7 +3,7 @@ import 'package:libac_flutter/nbt/impl/CompoundTag.dart'; import 'package:libac_flutter/nbt/impl/DoubleTag.dart'; import 'package:libac_flutter/nbt/impl/EndTag.dart'; import 'package:libac_flutter/nbt/impl/FloatTag.dart'; -import 'package:libac_flutter/nbt/impl/TagInt.dart'; +import 'package:libac_flutter/nbt/impl/IntTag.dart'; import 'package:libac_flutter/nbt/impl/TagLong.dart'; import 'package:libac_flutter/nbt/impl/TagShort.dart'; @@ -98,7 +98,7 @@ abstract class Tag { case TagType.Short: return new TagShort(value: 0); case TagType.Int: - return new TagInt(value: 0); + return new IntTag(); case TagType.Long: return new TagLong(value: 0); case TagType.Float: diff --git a/lib/nbt/impl/TagInt.dart b/lib/nbt/impl/IntTag.dart similarity index 53% rename from lib/nbt/impl/TagInt.dart rename to lib/nbt/impl/IntTag.dart index 6310085..9ffde96 100644 --- a/lib/nbt/impl/TagInt.dart +++ b/lib/nbt/impl/IntTag.dart @@ -1,18 +1,26 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagInt extends Tag { - final int value; - TagInt({required this.value}); +class IntTag extends Tag { + int _value = 0; + IntTag(); + + IntTag._(int value) { + _value = value; + } + + static IntTag valueOf(int value) { + return IntTag._(value); + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readInt(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeInt(_value); } @override -- 2.47.2 From 4ee91e762a4f216b590fca45b80a5054503d2db9 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 21:40:20 -0700 Subject: [PATCH 08/14] Implement IntArrayTag --- lib/nbt/Tag.dart | 5 +++++ lib/nbt/impl/IntArrayTag.dart | 32 ++++++++++++++++++++++++++++++++ lib/nbt/impl/TagIntArray.dart | 22 ---------------------- 3 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 lib/nbt/impl/IntArrayTag.dart delete mode 100644 lib/nbt/impl/TagIntArray.dart diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index bdc8ee8..530a10e 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -3,6 +3,7 @@ import 'package:libac_flutter/nbt/impl/CompoundTag.dart'; import 'package:libac_flutter/nbt/impl/DoubleTag.dart'; import 'package:libac_flutter/nbt/impl/EndTag.dart'; import 'package:libac_flutter/nbt/impl/FloatTag.dart'; +import 'package:libac_flutter/nbt/impl/IntArrayTag.dart'; import 'package:libac_flutter/nbt/impl/IntTag.dart'; import 'package:libac_flutter/nbt/impl/TagLong.dart'; import 'package:libac_flutter/nbt/impl/TagShort.dart'; @@ -103,6 +104,10 @@ abstract class Tag { return new TagLong(value: 0); case TagType.Float: return new FloatTag(); + case TagType.IntArray: + { + return new IntArrayTag(); + } } } } diff --git a/lib/nbt/impl/IntArrayTag.dart b/lib/nbt/impl/IntArrayTag.dart new file mode 100644 index 0000000..0d6ce31 --- /dev/null +++ b/lib/nbt/impl/IntArrayTag.dart @@ -0,0 +1,32 @@ +import 'package:libac_flutter/nbt/Stream.dart'; +import 'package:libac_flutter/nbt/Tag.dart'; + +class IntArrayTag extends Tag { + List _value = []; + IntArrayTag(); + + IntArrayTag._(List value) { + _value.addAll(value); + } + + @override + void readValue(ByteLayer data) { + int count = data.readInt(); + for (int i = 0; i < count; i++) { + _value.add(data.readInt()); + } + } + + @override + void writeValue(ByteLayer data) { + data.writeInt(_value.length); + for (int i in _value) { + data.writeInt(i); + } + } + + @override + TagType getTagType() { + return TagType.IntArray; + } +} diff --git a/lib/nbt/impl/TagIntArray.dart b/lib/nbt/impl/TagIntArray.dart deleted file mode 100644 index 9edcb33..0000000 --- a/lib/nbt/impl/TagIntArray.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:libac_flutter/nbt/Stream.dart'; -import 'package:libac_flutter/nbt/Tag.dart'; - -class TagIntArray extends Tag { - final List value; - TagIntArray({required this.value}); - - @override - void readValue(ByteLayer data) { - // TODO: implement readValue - } - - @override - void writeValue(ByteLayer data) { - // TODO: implement writeValue - } - - @override - TagType getTagType() { - return TagType.IntArray; - } -} -- 2.47.2 From dd133afd68a9d7fa4559426d10d53a96388b4e7e Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 22:44:04 -0700 Subject: [PATCH 09/14] Implement ListTag --- lib/nbt/Tag.dart | 21 ++++++++++++ lib/nbt/impl/ListTag.dart | 67 +++++++++++++++++++++++++++++++++++++++ lib/nbt/impl/TagList.dart | 50 ----------------------------- 3 files changed, 88 insertions(+), 50 deletions(-) create mode 100644 lib/nbt/impl/ListTag.dart delete mode 100644 lib/nbt/impl/TagList.dart diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 530a10e..c565d83 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -10,6 +10,7 @@ import 'package:libac_flutter/nbt/impl/TagShort.dart'; import 'Stream.dart'; import 'impl/ByteTag.dart'; +import 'impl/ListTag.dart'; enum TagType { End(0), @@ -108,6 +109,26 @@ abstract class Tag { { return new IntArrayTag(); } + + case TagType.List: + { + return new ListTag(); + } + } } } + + bool equals(dynamic object) { + if (object == null || !(object is Tag)) return false; + + Tag tag = object; + if (tag.getType() != getType()) return false; + + if (getKey() == null && tag.getKey() != null || + tag.getKey() == null && getKey() != null) return false; + + if (getKey() != null && !(getKey() == tag.getKey())) return false; + + return true; + } } diff --git a/lib/nbt/impl/ListTag.dart b/lib/nbt/impl/ListTag.dart new file mode 100644 index 0000000..2ca5535 --- /dev/null +++ b/lib/nbt/impl/ListTag.dart @@ -0,0 +1,67 @@ +import 'package:libac_flutter/nbt/Stream.dart'; +import 'package:libac_flutter/nbt/Tag.dart'; + +class ListTag extends Tag { + List _value = []; + + ListTag() { + _value = List.empty(growable: true); + } + + @override + void readValue(ByteLayer data) { + TagType type = TagType.get(data.readByte()); + int size = data.readInt(); + + for (int i = 0; i < size; i++) { + Tag tag = Tag.makeTagOfType(type); + tag.readValue(data); + add(tag); + } + } + + @override + void writeValue(ByteLayer data) { + TagType type = TagType.End; + if (size() > 0) { + type = _value[0].getTagType(); + } + + data.writeByte(type.byte); + data.writeInt(size()); + for (int i = 0; i < size(); i++) { + _value[i].writeValue(data); + } + } + + void add(Tag tag) { + TagType type = TagType.End; + if (size() > 0) { + type = _value[0].getTagType(); + } + if (type == TagType.End || type == tag.getTagType()) { + _value.add(tag); + } + } + + void remove(Tag tag) { + _value.remove(tag); + } + + void removeAt(int index) { + _value.removeAt(index); + } + + int indexOf(Tag tag) { + return _value.indexOf(tag); + } + + @override + TagType getTagType() { + return TagType.List; + } + + int size() { + return _value.length; + } +} diff --git a/lib/nbt/impl/TagList.dart b/lib/nbt/impl/TagList.dart deleted file mode 100644 index 6b6af5d..0000000 --- a/lib/nbt/impl/TagList.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:libac_flutter/nbt/Stream.dart'; -import 'package:libac_flutter/nbt/Tag.dart'; - -class TagList extends Tag { - late final List _value; - TagType _internalType = TagType.End; - - TagList() { - _value = List.empty(growable: true); - } - - @override - void readValue(ByteLayer data) { - // TODO: implement readValue - } - - @override - void writeValue(ByteLayer data) { - // TODO: implement writeValue - } - - void add(Tag tag) { - if (_internalType == TagType.End) { - _value.clear(); - _value.add(tag); - _internalType = tag.getTagType(); - } else { - if (_internalType == tag.getTagType()) { - _value.add(tag); - } - } - } - - void remove(Tag tag) { - _value.remove(tag); - } - - void removeAt(int index) { - _value.removeAt(index); - } - - int indexOf(Tag tag) { - return _value.indexOf(tag); - } - - @override - TagType getTagType() { - return TagType.List; - } -} -- 2.47.2 From 4917419bd3382c1a596c10abb5f3e1111bddbbbb Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 22:47:52 -0700 Subject: [PATCH 10/14] Implement LongTag --- lib/nbt/Tag.dart | 31 +++++++++++---------- lib/nbt/impl/{TagLong.dart => LongTag.dart} | 18 ++++++++---- 2 files changed, 29 insertions(+), 20 deletions(-) rename lib/nbt/impl/{TagLong.dart => LongTag.dart} (52%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index c565d83..ce8e7fa 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -5,7 +5,7 @@ import 'package:libac_flutter/nbt/impl/EndTag.dart'; import 'package:libac_flutter/nbt/impl/FloatTag.dart'; import 'package:libac_flutter/nbt/impl/IntArrayTag.dart'; import 'package:libac_flutter/nbt/impl/IntTag.dart'; -import 'package:libac_flutter/nbt/impl/TagLong.dart'; +import 'package:libac_flutter/nbt/impl/LongTag.dart'; import 'package:libac_flutter/nbt/impl/TagShort.dart'; import 'Stream.dart'; @@ -76,6 +76,20 @@ abstract class Tag { } } + bool equals(dynamic object) { + if (object == null || !(object is Tag)) return false; + + Tag tag = object; + if (tag.getType() != getType()) return false; + + if (getKey() == null && tag.getKey() != null || + tag.getKey() == null && getKey() != null) return false; + + if (getKey() != null && !(getKey() == tag.getKey())) return false; + + return true; + } + static Tag makeTagOfType(TagType type) { switch (type) { case TagType.Byte: @@ -102,7 +116,7 @@ abstract class Tag { case TagType.Int: return new IntTag(); case TagType.Long: - return new TagLong(value: 0); + return new LongTag(); case TagType.Float: return new FloatTag(); case TagType.IntArray: @@ -118,17 +132,4 @@ abstract class Tag { } } - bool equals(dynamic object) { - if (object == null || !(object is Tag)) return false; - - Tag tag = object; - if (tag.getType() != getType()) return false; - - if (getKey() == null && tag.getKey() != null || - tag.getKey() == null && getKey() != null) return false; - - if (getKey() != null && !(getKey() == tag.getKey())) return false; - - return true; - } } diff --git a/lib/nbt/impl/TagLong.dart b/lib/nbt/impl/LongTag.dart similarity index 52% rename from lib/nbt/impl/TagLong.dart rename to lib/nbt/impl/LongTag.dart index 6f70359..a9644be 100644 --- a/lib/nbt/impl/TagLong.dart +++ b/lib/nbt/impl/LongTag.dart @@ -1,18 +1,26 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagLong extends Tag { - final int value; - TagLong({required this.value}); +class LongTag extends Tag { + int _value = 0; + LongTag(); + + LongTag._(int value) { + _value = value; + } + + static LongTag valueOf(int value) { + return LongTag._(value); + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readLong(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeLong(_value); } @override -- 2.47.2 From b4b2370e34163c2dcb520e603a6aa6e485ddb54c Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 22:52:55 -0700 Subject: [PATCH 11/14] Implement LongArrayTag --- lib/nbt/Tag.dart | 5 +++++ lib/nbt/impl/LongArrayTag.dart | 40 ++++++++++++++++++++++++++++++++++ lib/nbt/impl/TagLongArray.dart | 22 ------------------- 3 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 lib/nbt/impl/LongArrayTag.dart delete mode 100644 lib/nbt/impl/TagLongArray.dart diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index ce8e7fa..5e7e2cf 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -11,6 +11,7 @@ import 'package:libac_flutter/nbt/impl/TagShort.dart'; import 'Stream.dart'; import 'impl/ByteTag.dart'; import 'impl/ListTag.dart'; +import 'impl/LongArrayTag.dart'; enum TagType { End(0), @@ -123,6 +124,10 @@ abstract class Tag { { return new IntArrayTag(); } + case TagType.LongArray: + { + return new LongArrayTag(); + } case TagType.List: { diff --git a/lib/nbt/impl/LongArrayTag.dart b/lib/nbt/impl/LongArrayTag.dart new file mode 100644 index 0000000..1d33d07 --- /dev/null +++ b/lib/nbt/impl/LongArrayTag.dart @@ -0,0 +1,40 @@ +import 'package:libac_flutter/nbt/Stream.dart'; +import 'package:libac_flutter/nbt/Tag.dart'; + +class LongArrayTag extends Tag { + List _value = []; + LongArrayTag(); + + LongArrayTag._(List lst) { + _value.addAll(lst); + } + + static LongArrayTag valueOf(List value) { + return LongArrayTag._(value); + } + + @override + void readValue(ByteLayer data) { + int count = data.readInt(); + for (int i = 0; i < count; i++) { + _value.add(data.readLong()); + } + } + + @override + void writeValue(ByteLayer data) { + data.writeInt(size()); + for (int i in _value) { + data.writeLong(i); + } + } + + int size() { + return _value.length; + } + + @override + TagType getTagType() { + return TagType.LongArray; + } +} diff --git a/lib/nbt/impl/TagLongArray.dart b/lib/nbt/impl/TagLongArray.dart deleted file mode 100644 index 62d41cb..0000000 --- a/lib/nbt/impl/TagLongArray.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:libac_flutter/nbt/Stream.dart'; -import 'package:libac_flutter/nbt/Tag.dart'; - -class TagLongArray extends Tag { - final List value; - TagLongArray({required this.value}); - - @override - void readValue(ByteLayer data) { - // TODO: implement readValue - } - - @override - void writeValue(ByteLayer data) { - // TODO: implement writeValue - } - - @override - TagType getTagType() { - return TagType.LongArray; - } -} -- 2.47.2 From 3956dc0ea9ee64e3df256b0068d130d619de1880 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 22:55:23 -0700 Subject: [PATCH 12/14] Implement ShortTag --- lib/nbt/Tag.dart | 4 ++-- lib/nbt/impl/{TagShort.dart => ShortTag.dart} | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) rename lib/nbt/impl/{TagShort.dart => ShortTag.dart} (52%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 5e7e2cf..4d8c37c 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -6,7 +6,7 @@ import 'package:libac_flutter/nbt/impl/FloatTag.dart'; import 'package:libac_flutter/nbt/impl/IntArrayTag.dart'; import 'package:libac_flutter/nbt/impl/IntTag.dart'; import 'package:libac_flutter/nbt/impl/LongTag.dart'; -import 'package:libac_flutter/nbt/impl/TagShort.dart'; +import 'package:libac_flutter/nbt/impl/ShortTag.dart'; import 'Stream.dart'; import 'impl/ByteTag.dart'; @@ -113,7 +113,7 @@ abstract class Tag { case TagType.End: return new EndTag(); case TagType.Short: - return new TagShort(value: 0); + return new ShortTag(); case TagType.Int: return new IntTag(); case TagType.Long: diff --git a/lib/nbt/impl/TagShort.dart b/lib/nbt/impl/ShortTag.dart similarity index 52% rename from lib/nbt/impl/TagShort.dart rename to lib/nbt/impl/ShortTag.dart index 13040eb..a430dd2 100644 --- a/lib/nbt/impl/TagShort.dart +++ b/lib/nbt/impl/ShortTag.dart @@ -1,18 +1,26 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagShort extends Tag { - final int value; - TagShort({required this.value}); +class ShortTag extends Tag { + int _value = 0; + ShortTag(); + + ShortTag._(int value) { + _value = value; + } + + static ShortTag valueOf(int value) { + return ShortTag._(value); + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readShort(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeShort(_value); } @override -- 2.47.2 From 6c83fbc3716ec45a012ac387c3025f3da2dda7b3 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 23:02:03 -0700 Subject: [PATCH 13/14] Implement StringTag, run autofix --- lib/nbt/Tag.dart | 52 +++++++++++-------- lib/nbt/impl/ByteArrayTag.dart | 2 +- lib/nbt/impl/CompoundTag.dart | 6 +-- lib/nbt/impl/IntArrayTag.dart | 2 +- lib/nbt/impl/LongArrayTag.dart | 2 +- .../impl/{TagString.dart => StringTag.dart} | 18 +++++-- 6 files changed, 50 insertions(+), 32 deletions(-) rename lib/nbt/impl/{TagString.dart => StringTag.dart} (51%) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 4d8c37c..5021b48 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -12,6 +12,7 @@ import 'Stream.dart'; import 'impl/ByteTag.dart'; import 'impl/ListTag.dart'; import 'impl/LongArrayTag.dart'; +import 'impl/StringTag.dart'; enum TagType { End(0), @@ -59,7 +60,7 @@ abstract class Tag { static Tag readNamedTag(ByteLayer data) { var type = data.readByte(); if (type == 0) { - return new EndTag(); + return EndTag(); } else { Tag tag = makeTagOfType(TagType.get(type)); tag._key = data.readString(); @@ -78,63 +79,72 @@ abstract class Tag { } bool equals(dynamic object) { - if (object == null || !(object is Tag)) return false; + if (object == null || object is! Tag) return false; Tag tag = object; if (tag.getType() != getType()) return false; - if (getKey() == null && tag.getKey() != null || - tag.getKey() == null && getKey() != null) return false; - - if (getKey() != null && !(getKey() == tag.getKey())) return false; + if (!(getKey() == tag.getKey())) return false; return true; } - + static Tag makeTagOfType(TagType type) { switch (type) { case TagType.Byte: { - return new ByteTag(); + return ByteTag(); } case TagType.ByteArray: { - return new ByteArrayTag(); + return ByteArrayTag(); } case TagType.Compound: { - return new CompoundTag(); + return CompoundTag(); } case TagType.Double: { - return new DoubleTag(); + return DoubleTag(); } case TagType.End: - return new EndTag(); + { + return EndTag(); + } case TagType.Short: - return new ShortTag(); + { + return ShortTag(); + } case TagType.Int: - return new IntTag(); + { + return IntTag(); + } case TagType.Long: - return new LongTag(); + { + return LongTag(); + } case TagType.Float: - return new FloatTag(); + { + return FloatTag(); + } case TagType.IntArray: { - return new IntArrayTag(); + return IntArrayTag(); } case TagType.LongArray: { - return new LongArrayTag(); + return LongArrayTag(); } case TagType.List: { - return new ListTag(); + return ListTag(); + } + case TagType.String: + { + return StringTag(); } - } } } - } diff --git a/lib/nbt/impl/ByteArrayTag.dart b/lib/nbt/impl/ByteArrayTag.dart index 4908062..918d1cd 100644 --- a/lib/nbt/impl/ByteArrayTag.dart +++ b/lib/nbt/impl/ByteArrayTag.dart @@ -2,7 +2,7 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class ByteArrayTag extends Tag { - List _value = []; + final List _value = []; ByteArrayTag(); diff --git a/lib/nbt/impl/CompoundTag.dart b/lib/nbt/impl/CompoundTag.dart index 5a52fa9..fc552db 100644 --- a/lib/nbt/impl/CompoundTag.dart +++ b/lib/nbt/impl/CompoundTag.dart @@ -5,7 +5,7 @@ class CompoundTag extends Tag { late final Map _value; CompoundTag() { - _value = new Map(); + _value = {}; } @override @@ -43,9 +43,9 @@ class CompoundTag extends Tag { } Tag? get(String name) { - if (contains(name)) + if (contains(name)) { return _value[name] as Tag; - else { + } else { // Does not exist! return null; } diff --git a/lib/nbt/impl/IntArrayTag.dart b/lib/nbt/impl/IntArrayTag.dart index 0d6ce31..67d4d9c 100644 --- a/lib/nbt/impl/IntArrayTag.dart +++ b/lib/nbt/impl/IntArrayTag.dart @@ -2,7 +2,7 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class IntArrayTag extends Tag { - List _value = []; + final List _value = []; IntArrayTag(); IntArrayTag._(List value) { diff --git a/lib/nbt/impl/LongArrayTag.dart b/lib/nbt/impl/LongArrayTag.dart index 1d33d07..5bb287b 100644 --- a/lib/nbt/impl/LongArrayTag.dart +++ b/lib/nbt/impl/LongArrayTag.dart @@ -2,7 +2,7 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class LongArrayTag extends Tag { - List _value = []; + final List _value = []; LongArrayTag(); LongArrayTag._(List lst) { diff --git a/lib/nbt/impl/TagString.dart b/lib/nbt/impl/StringTag.dart similarity index 51% rename from lib/nbt/impl/TagString.dart rename to lib/nbt/impl/StringTag.dart index 861f413..432b70f 100644 --- a/lib/nbt/impl/TagString.dart +++ b/lib/nbt/impl/StringTag.dart @@ -1,18 +1,26 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; -class TagString extends Tag { - final String value; - TagString({required this.value}); +class StringTag extends Tag { + String _value = ""; + StringTag(); + + StringTag._(String str) { + _value = str; + } + + static StringTag valueOf(String str) { + return StringTag._(str); + } @override void readValue(ByteLayer data) { - // TODO: implement readValue + _value = data.readString(); } @override void writeValue(ByteLayer data) { - // TODO: implement writeValue + data.writeString(_value); } @override -- 2.47.2 From 43aa3bc6d0070c0ae98e5d8f407fb46d5de634de Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 4 May 2024 23:21:40 -0700 Subject: [PATCH 14/14] Add some helper functions, adjust visibility on variables --- lib/nbt/Tag.dart | 80 ++++++++++++++++++++++++++++++++++ lib/nbt/impl/ByteArrayTag.dart | 10 ++--- lib/nbt/impl/ByteTag.dart | 8 ++-- lib/nbt/impl/CompoundTag.dart | 18 ++++---- lib/nbt/impl/DoubleTag.dart | 8 ++-- lib/nbt/impl/FloatTag.dart | 8 ++-- lib/nbt/impl/IntArrayTag.dart | 10 ++--- lib/nbt/impl/IntTag.dart | 8 ++-- lib/nbt/impl/ListTag.dart | 22 +++++----- lib/nbt/impl/LongArrayTag.dart | 10 ++--- lib/nbt/impl/LongTag.dart | 8 ++-- lib/nbt/impl/ShortTag.dart | 8 ++-- lib/nbt/impl/StringTag.dart | 8 ++-- 13 files changed, 141 insertions(+), 65 deletions(-) diff --git a/lib/nbt/Tag.dart b/lib/nbt/Tag.dart index 5021b48..24fb210 100644 --- a/lib/nbt/Tag.dart +++ b/lib/nbt/Tag.dart @@ -147,4 +147,84 @@ abstract class Tag { } } } + + int asByte() { + if (this is ByteTag) { + return (this as ByteTag).value; + } else { + return 0; + } + } + + List asByteArray() { + if (this is ByteArrayTag) { + return (this as ByteArrayTag).value; + } else { + return []; + } + } + + double asDouble() { + if (this is DoubleTag) { + return (this as DoubleTag).value; + } else { + return 0.0; + } + } + + double asFloat() { + if (this is FloatTag) { + return (this as FloatTag).value; + } else { + return 0.0; + } + } + + List asIntArray() { + if (this is IntArrayTag) { + return (this as IntArrayTag).value; + } else { + return []; + } + } + + int asInt() { + if (this is IntTag) { + return (this as IntTag).value; + } else { + return 0; + } + } + + List asLongArray() { + if (this is LongArrayTag) { + return (this as LongArrayTag).value; + } else { + return []; + } + } + + int asLong() { + if (this is LongTag) { + return (this as LongTag).value; + } else { + return 0; + } + } + + int asShort() { + if (this is ShortTag) { + return (this as ShortTag).value; + } else { + return 0; + } + } + + String asString() { + if (this is StringTag) { + return (this as StringTag).value; + } else { + return ""; + } + } } diff --git a/lib/nbt/impl/ByteArrayTag.dart b/lib/nbt/impl/ByteArrayTag.dart index 918d1cd..86cbf40 100644 --- a/lib/nbt/impl/ByteArrayTag.dart +++ b/lib/nbt/impl/ByteArrayTag.dart @@ -2,12 +2,12 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class ByteArrayTag extends Tag { - final List _value = []; + final List value = []; ByteArrayTag(); ByteArrayTag._(List value) { - _value.addAll(value); + this.value.addAll(value); } static ByteArrayTag valueOf(List value) { @@ -18,14 +18,14 @@ class ByteArrayTag extends Tag { void readValue(ByteLayer data) { int len = data.readInt(); for (int i = 0; i < len; i++) { - _value.add(data.readByte()); + value.add(data.readByte()); } } @override void writeValue(ByteLayer data) { - data.writeInt(_value.length); - for (int i in _value) { + data.writeInt(value.length); + for (int i in value) { data.writeByte(i); } } diff --git a/lib/nbt/impl/ByteTag.dart b/lib/nbt/impl/ByteTag.dart index 3e00595..ca6c756 100644 --- a/lib/nbt/impl/ByteTag.dart +++ b/lib/nbt/impl/ByteTag.dart @@ -2,10 +2,10 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class ByteTag extends Tag { - int _value = 0; + int value = 0; ByteTag._(int value) { - _value = value; + this.value = value; } ByteTag(); @@ -16,12 +16,12 @@ class ByteTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readByte(); + value = data.readByte(); } @override void writeValue(ByteLayer data) { - data.writeByte(_value); + data.writeByte(value); } @override diff --git a/lib/nbt/impl/CompoundTag.dart b/lib/nbt/impl/CompoundTag.dart index fc552db..a4a50a0 100644 --- a/lib/nbt/impl/CompoundTag.dart +++ b/lib/nbt/impl/CompoundTag.dart @@ -2,15 +2,13 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class CompoundTag extends Tag { - late final Map _value; + late final Map value = {}; - CompoundTag() { - _value = {}; - } + CompoundTag(); @override void readValue(ByteLayer data) { - _value.clear(); + value.clear(); while (true) { Tag tag = Tag.readNamedTag(data); @@ -24,7 +22,7 @@ class CompoundTag extends Tag { @override void writeValue(ByteLayer data) { - Iterator it = _value.values.iterator; + Iterator it = value.values.iterator; while (it.moveNext()) { Tag tag = it.current; @@ -35,16 +33,16 @@ class CompoundTag extends Tag { } void put(String name, Tag tag) { - _value[name] = tag; + value[name] = tag; } bool contains(String name) { - return _value.containsKey(name); + return value.containsKey(name); } Tag? get(String name) { if (contains(name)) { - return _value[name] as Tag; + return value[name] as Tag; } else { // Does not exist! return null; @@ -52,7 +50,7 @@ class CompoundTag extends Tag { } void remove(String name) { - _value.remove(name); + value.remove(name); } @override diff --git a/lib/nbt/impl/DoubleTag.dart b/lib/nbt/impl/DoubleTag.dart index ae99112..eaf2195 100644 --- a/lib/nbt/impl/DoubleTag.dart +++ b/lib/nbt/impl/DoubleTag.dart @@ -2,12 +2,12 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class DoubleTag extends Tag { - double _value = 0.0; + double value = 0.0; DoubleTag(); DoubleTag._(double value) { - _value = value; + this.value = value; } static DoubleTag valueOf(double value) { @@ -16,12 +16,12 @@ class DoubleTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readDouble(); + value = data.readDouble(); } @override void writeValue(ByteLayer data) { - data.writeDouble(_value); + data.writeDouble(value); } @override diff --git a/lib/nbt/impl/FloatTag.dart b/lib/nbt/impl/FloatTag.dart index b2c8b25..450a5ef 100644 --- a/lib/nbt/impl/FloatTag.dart +++ b/lib/nbt/impl/FloatTag.dart @@ -2,11 +2,11 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class FloatTag extends Tag { - double _value = 0.0; + double value = 0.0; FloatTag(); FloatTag._(double value) { - _value = value; + this.value = value; } static FloatTag valueOf(double value) { @@ -15,12 +15,12 @@ class FloatTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readFloat(); + value = data.readFloat(); } @override void writeValue(ByteLayer data) { - data.writeFloat(_value); + data.writeFloat(value); } @override diff --git a/lib/nbt/impl/IntArrayTag.dart b/lib/nbt/impl/IntArrayTag.dart index 67d4d9c..e5412e9 100644 --- a/lib/nbt/impl/IntArrayTag.dart +++ b/lib/nbt/impl/IntArrayTag.dart @@ -2,25 +2,25 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class IntArrayTag extends Tag { - final List _value = []; + final List value = []; IntArrayTag(); IntArrayTag._(List value) { - _value.addAll(value); + this.value.addAll(value); } @override void readValue(ByteLayer data) { int count = data.readInt(); for (int i = 0; i < count; i++) { - _value.add(data.readInt()); + value.add(data.readInt()); } } @override void writeValue(ByteLayer data) { - data.writeInt(_value.length); - for (int i in _value) { + data.writeInt(value.length); + for (int i in value) { data.writeInt(i); } } diff --git a/lib/nbt/impl/IntTag.dart b/lib/nbt/impl/IntTag.dart index 9ffde96..877996e 100644 --- a/lib/nbt/impl/IntTag.dart +++ b/lib/nbt/impl/IntTag.dart @@ -2,11 +2,11 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class IntTag extends Tag { - int _value = 0; + int value = 0; IntTag(); IntTag._(int value) { - _value = value; + this.value = value; } static IntTag valueOf(int value) { @@ -15,12 +15,12 @@ class IntTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readInt(); + value = data.readInt(); } @override void writeValue(ByteLayer data) { - data.writeInt(_value); + data.writeInt(value); } @override diff --git a/lib/nbt/impl/ListTag.dart b/lib/nbt/impl/ListTag.dart index 2ca5535..e7e1c1e 100644 --- a/lib/nbt/impl/ListTag.dart +++ b/lib/nbt/impl/ListTag.dart @@ -2,11 +2,9 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class ListTag extends Tag { - List _value = []; + List value = []; - ListTag() { - _value = List.empty(growable: true); - } + ListTag(); @override void readValue(ByteLayer data) { @@ -24,36 +22,36 @@ class ListTag extends Tag { void writeValue(ByteLayer data) { TagType type = TagType.End; if (size() > 0) { - type = _value[0].getTagType(); + type = value[0].getTagType(); } data.writeByte(type.byte); data.writeInt(size()); for (int i = 0; i < size(); i++) { - _value[i].writeValue(data); + value[i].writeValue(data); } } void add(Tag tag) { TagType type = TagType.End; if (size() > 0) { - type = _value[0].getTagType(); + type = value[0].getTagType(); } if (type == TagType.End || type == tag.getTagType()) { - _value.add(tag); + value.add(tag); } } void remove(Tag tag) { - _value.remove(tag); + value.remove(tag); } void removeAt(int index) { - _value.removeAt(index); + value.removeAt(index); } int indexOf(Tag tag) { - return _value.indexOf(tag); + return value.indexOf(tag); } @override @@ -62,6 +60,6 @@ class ListTag extends Tag { } int size() { - return _value.length; + return value.length; } } diff --git a/lib/nbt/impl/LongArrayTag.dart b/lib/nbt/impl/LongArrayTag.dart index 5bb287b..5f6bd37 100644 --- a/lib/nbt/impl/LongArrayTag.dart +++ b/lib/nbt/impl/LongArrayTag.dart @@ -2,11 +2,11 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class LongArrayTag extends Tag { - final List _value = []; + final List value = []; LongArrayTag(); LongArrayTag._(List lst) { - _value.addAll(lst); + value.addAll(lst); } static LongArrayTag valueOf(List value) { @@ -17,20 +17,20 @@ class LongArrayTag extends Tag { void readValue(ByteLayer data) { int count = data.readInt(); for (int i = 0; i < count; i++) { - _value.add(data.readLong()); + value.add(data.readLong()); } } @override void writeValue(ByteLayer data) { data.writeInt(size()); - for (int i in _value) { + for (int i in value) { data.writeLong(i); } } int size() { - return _value.length; + return value.length; } @override diff --git a/lib/nbt/impl/LongTag.dart b/lib/nbt/impl/LongTag.dart index a9644be..4a9e5ec 100644 --- a/lib/nbt/impl/LongTag.dart +++ b/lib/nbt/impl/LongTag.dart @@ -2,11 +2,11 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class LongTag extends Tag { - int _value = 0; + int value = 0; LongTag(); LongTag._(int value) { - _value = value; + this.value = value; } static LongTag valueOf(int value) { @@ -15,12 +15,12 @@ class LongTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readLong(); + value = data.readLong(); } @override void writeValue(ByteLayer data) { - data.writeLong(_value); + data.writeLong(value); } @override diff --git a/lib/nbt/impl/ShortTag.dart b/lib/nbt/impl/ShortTag.dart index a430dd2..1341d72 100644 --- a/lib/nbt/impl/ShortTag.dart +++ b/lib/nbt/impl/ShortTag.dart @@ -2,11 +2,11 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class ShortTag extends Tag { - int _value = 0; + int value = 0; ShortTag(); ShortTag._(int value) { - _value = value; + this.value = value; } static ShortTag valueOf(int value) { @@ -15,12 +15,12 @@ class ShortTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readShort(); + value = data.readShort(); } @override void writeValue(ByteLayer data) { - data.writeShort(_value); + data.writeShort(value); } @override diff --git a/lib/nbt/impl/StringTag.dart b/lib/nbt/impl/StringTag.dart index 432b70f..19f5aa9 100644 --- a/lib/nbt/impl/StringTag.dart +++ b/lib/nbt/impl/StringTag.dart @@ -2,11 +2,11 @@ import 'package:libac_flutter/nbt/Stream.dart'; import 'package:libac_flutter/nbt/Tag.dart'; class StringTag extends Tag { - String _value = ""; + String value = ""; StringTag(); StringTag._(String str) { - _value = str; + value = str; } static StringTag valueOf(String str) { @@ -15,12 +15,12 @@ class StringTag extends Tag { @override void readValue(ByteLayer data) { - _value = data.readString(); + value = data.readString(); } @override void writeValue(ByteLayer data) { - data.writeString(_value); + data.writeString(value); } @override -- 2.47.2