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()));
        }
Example #2
0
        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}");
        }
Example #4
0
        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));
        }