public static ExternalReference ReadExternalReferenceFrom(UnsafeReader reader) { var id = reader.ReadInt(); if (id != 1) { throw new InvalidOperationException($"Expected external reference, found {id}"); } return(new ExternalReference(reader.ReadGuid(), reader.ReadLong())); }
private static void ReadGuidToAnchors([NotNull] UnsafeReader reader, [NotNull] OneToListMap <Guid, long> guidToAnchors) { var guid = reader.ReadGuid(); var usagesCount = reader.ReadInt32(); for (var i = 0; i < usagesCount; i++) { guidToAnchors.Add(guid, reader.ReadLong()); } }
public static IHierarchyReference ReadReferenceFrom(UnsafeReader reader) { var id = reader.ReadInt(); if (id == 0) { return(new LocalReference(AssetUtils.ReadOWORD(reader), reader.ReadLong())); } if (id == 1) { return(new ExternalReference(reader.ReadGuid(), reader.ReadLong())); } throw new InvalidOperationException($"Unknown reference type, {id}"); }
public static AnimationUsage ReadFrom([NotNull] UnsafeReader reader) { var animationReference = HierarchyReferenceUtil.ReadLocalReferenceFrom(reader); var animationName = reader.ReadString(); var sampleRate = reader.ReadInt(); var functionName = reader.ReadString(); if (animationName is null || functionName is null) { return(null); } var time = reader.ReadDouble(); var guid = reader.ReadGuid(); return(new AnimationUsage(animationReference, animationName, sampleRate, functionName, time, guid)); }
public static PrefabInstanceHierarchy Read(UnsafeReader reader) { var location = HierarchyReferenceUtil.ReadLocalReferenceFrom(reader); var parentTransform = HierarchyReferenceUtil.ReadLocalReferenceFrom(reader); var count = reader.ReadInt32(); var modifications = new List <PrefabModification>(); for (int i = 0; i < count; i++) { modifications.Add(reader.ReadPolymorphic <PrefabModification>()); } var sourcePrefabGuid = reader.ReadGuid(); return(new PrefabInstanceHierarchy(location, parentTransform, modifications, sourcePrefabGuid)); }
private static MetaFileCacheItem Read(UnsafeReader reader) { var guid = reader.ReadGuid(); return(new MetaFileCacheItem(guid)); }