Make LibAC be web compatible for UUIDs
This commit is contained in:
parent
960cf0d789
commit
d6f0e05713
7 changed files with 254 additions and 52 deletions
|
@ -7,7 +7,7 @@ import 'package:libac_flutter/nbt/impl/ListTag.dart';
|
|||
import 'package:libac_flutter/utils/Vector3.dart';
|
||||
|
||||
import '../utils/Vector2.dart';
|
||||
import '../utils/uuid/UUID.dart';
|
||||
import '../utils/uuid/NbtUUID.dart';
|
||||
|
||||
class NbtUtils {
|
||||
static void writeBoolean(CompoundTag tag, String name, bool b) {
|
||||
|
@ -96,23 +96,23 @@ class NbtUtils {
|
|||
return [msb >> 32, msb, lsb >> 32, lsb];
|
||||
}
|
||||
|
||||
static List<int> _uuidToIntArray(UUID ID) {
|
||||
static List<int> _uuidToIntArray(NbtUUID ID) {
|
||||
return _msbLsbToIntArray(
|
||||
ID.getMostSignificantBits(), ID.getLeastSignificantBits());
|
||||
}
|
||||
|
||||
static UUID _uuidFromIntArray(List<int> values) {
|
||||
return UUID((values[0] << 32 | values[1] & 4294967295),
|
||||
static NbtUUID _uuidFromIntArray(List<int> values) {
|
||||
return NbtUUID((values[0] << 32 | values[1] & 4294967295),
|
||||
(values[2] << 32 | values[3] & 4294967295));
|
||||
}
|
||||
|
||||
static void writeUUID(CompoundTag tag, String name, UUID ID) {
|
||||
static void writeUUID(CompoundTag tag, String name, NbtUUID ID) {
|
||||
tag.put(name, IntArrayTag.valueOf(_uuidToIntArray(ID)));
|
||||
}
|
||||
|
||||
static UUID readUUID(CompoundTag tag, String name) {
|
||||
static NbtUUID readUUID(CompoundTag tag, String name) {
|
||||
if (!tag.contains(name)) {
|
||||
return UUID.ZERO;
|
||||
return NbtUUID.ZERO;
|
||||
} else {
|
||||
return _uuidFromIntArray(tag.get(name)!.asIntArray());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue