public static TransformHierarchy Read(UnsafeReader reader)
 {
     return(new TransformHierarchy(HierarchyReferenceUtil.ReadLocalReferenceFrom(reader),
                                   HierarchyReferenceUtil.ReadLocalReferenceFrom(reader),
                                   HierarchyReferenceUtil.ReadLocalReferenceFrom(reader),
                                   reader.ReadInt32()));
 }
Exemple #2
0
        private static IHierarchyElement ReadHieraerchyElement(UnsafeReader reader)
        {
            switch (reader.ReadInt32())
            {
            case 0:
                return(GameObjectHierarchy.Read(reader));

            case 1:
                return(ComponentHierarchy.Read(reader));

            case 2:
                return(PrefabInstanceHierarchy.Read(reader));

            case 3:
                return(ScriptComponentHierarchy.Read(reader));

            case 4:
                return(StrippedHierarchyElement.Read(reader));

            case 5:
                return(TransformHierarchy.Read(reader));

            default:
                throw new InvalidOperationException("Unknown type");
            }
        }
Exemple #3
0
 private static TransformHierarchyElement Read(UnsafeReader reader)
 {
     return(new TransformHierarchyElement(
                FileID.ReadFrom(reader),
                FileID.ReadFrom(reader),
                FileID.ReadFrom(reader),
                reader.ReadBool(),
                reader.ReadInt32(),
                FileID.ReadFrom(reader),
                FileID.ReadFrom(reader)));
 }
Exemple #4
0
        private static List <AnimationUsage> ReadGuidToEventsMap([NotNull] UnsafeReader reader)
        {
            var eventUsagesCount = reader.ReadInt32();
            var eventUsages      = new List <AnimationUsage>(eventUsagesCount);

            for (var i = 0; i < eventUsagesCount; i++)
            {
                eventUsages.Add(AnimationUsage.ReadFrom(reader));
            }
            return(eventUsages);
        }
Exemple #5
0
        private static ICollection <string> ReadStateNames([NotNull] UnsafeReader reader)
        {
            var count      = reader.ReadInt32();
            var stateNames = new List <string>(count);

            for (var i = 0; i < count; i++)
            {
                stateNames.Add(reader.ReadString());
            }
            return(stateNames);
        }
Exemple #6
0
        private static OneToListMap <Guid, long> ReadGuidToAnchorsMap([NotNull] UnsafeReader reader)
        {
            var guidToAnchorsCount = reader.ReadInt32();
            var anchorToUsages     = new OneToListMap <Guid, long>(guidToAnchorsCount);

            for (var i = 0; i < guidToAnchorsCount; i++)
            {
                ReadGuidToAnchors(reader, anchorToUsages);
            }
            return(anchorToUsages);
        }
        private static object Read(UnsafeReader reader)
        {
            var count = reader.ReadInt32();
            var list  = new List <InspectorVariableUsage>();

            for (int i = 0; i < count; i++)
            {
                list.Add(reader.ReadPolymorphic <InspectorVariableUsage>());
            }
            return(new AssetInspectorValuesDataElement(list));
        }
Exemple #8
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());
            }
        }
        private static object Read(UnsafeReader reader)
        {
            var count   = reader.ReadInt32();
            var methods = new List <AssetMethodData>();

            for (int i = 0; i < count; i++)
            {
                methods.Add(AssetMethodData.ReadFrom(reader));
            }

            return(new AssetMethodsDataElement(methods));
        }
Exemple #10
0
        private static JetHashSet <string> ReadSet(UnsafeReader reader)
        {
            var count = reader.ReadInt32();
            var list  = new JetHashSet <string>();

            for (int i = 0; i < count; i++)
            {
                list.Add(reader.ReadString());
            }

            return(list);
        }
Exemple #11
0
        private static IList <FileID> ReadChildren(UnsafeReader reader)
        {
            var count  = reader.ReadInt32();
            var result = new List <FileID>(count);

            for (var i = 0; i < count; i++)
            {
                result.Add(FileID.ReadFrom(reader));
            }

            return(result);
        }
Exemple #12
0
        private static Dictionary <FileID, T> ReadDictionary <T>(UnsafeReader reader, Func <UnsafeReader, T> readValue)
        {
            var count  = reader.ReadInt32();
            var result = new Dictionary <FileID, T>(count);

            for (int i = 0; i < count; i++)
            {
                result[FileID.ReadFrom(reader)] = readValue(reader);
            }

            return(result);
        }
Exemple #13
0
        private static object Read(UnsafeReader reader)
        {
            var count  = reader.ReadInt32();
            var result = new AssetUsagesDataElement();

            for (int i = 0; i < count; i++)
            {
                result.AssetUsages.Add(AssetUsage.ReadFrom(reader));
            }

            return(result);
        }
Exemple #14
0
        public static AssetUsage ReadFrom(UnsafeReader reader)
        {
            var localReference = reader.ReadPolymorphic <LocalReference>();
            var count          = reader.ReadInt32();
            var deps           = new List <IHierarchyReference>();

            for (int i = 0; i < count; i++)
            {
                deps.Add(reader.ReadPolymorphic <IHierarchyReference>());
            }
            return(new AssetUsage(localReference, deps));
        }
Exemple #15
0
        private static object Read(UnsafeReader reader)
        {
            var otherCount       = reader.ReadInt32();
            var gameObjectsCount = reader.ReadInt32();
            var transformCount   = reader.ReadInt32();
            var scriptCount      = reader.ReadInt32();
            var componentsCount  = reader.ReadInt32();


            var result = new AssetDocumentHierarchyElement(otherCount, gameObjectsCount, transformCount, scriptCount, componentsCount);

            for (int i = 0; i < otherCount; i++)
            {
                var hierarchyElement = ReadHieraerchyElement(reader);
                result.myOtherBoxedElements.Add(hierarchyElement);
            }

            for (int i = 0; i < gameObjectsCount; i++)
            {
                result.myGameObjectHierarchies.Add(GameObjectHierarchy.Read(reader));
            }

            for (int i = 0; i < transformCount; i++)
            {
                result.myTransformElements.Add(TransformHierarchy.Read(reader));
            }

            for (int i = 0; i < scriptCount; i++)
            {
                result.myScriptComponentElements.Add(ScriptComponentHierarchy.Read(reader));
            }

            for (int i = 0; i < componentsCount; i++)
            {
                result.myComponentElements.Add(ComponentHierarchy.Read(reader));
            }

            return(result);
        }
Exemple #16
0
        private static OneToListMap <long, T> ReadAnchorToUsagesMap <T>([NotNull] UnsafeReader reader,
                                                                        [NotNull] Func <UnsafeReader, T> read)
            where T : IAnimatorScriptUsage
        {
            var anchorToUsagesCount = reader.ReadInt32();
            var anchorToUsages      = new OneToListMap <long, T>(anchorToUsagesCount);

            for (var i = 0; i < anchorToUsagesCount; i++)
            {
                ReadAnchorToUsagesEntry(reader, anchorToUsages, read);
            }
            return(anchorToUsages);
        }
Exemple #17
0
        private static void ReadAnchorToUsagesEntry <T>([NotNull] UnsafeReader reader,
                                                        [NotNull] OneToListMap <long, T> anchorToUsages,
                                                        [NotNull] Func <UnsafeReader, T> read)
            where T : IAnimatorScriptUsage
        {
            var anchor      = reader.ReadLong();
            var usagesCount = reader.ReadInt32();

            for (var i = 0; i < usagesCount; i++)
            {
                anchorToUsages.Add(anchor, read(reader));
            }
        }
Exemple #18
0
        public static SceneHierarchy Read(UnsafeReader reader)
        {
            var element = new SceneHierarchy();
            var count   = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                var id = FileID.ReadFrom(reader);
                element.Elements.Add(id, reader.ReadPolymorphic <IUnityHierarchyElement>());
            }

            return(element);
        }
Exemple #19
0
        public static UnityAssetData ReadDelegate(UnsafeReader reader)
        {
            var assetData = new UnityAssetData();

            var count = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                var v = reader.ReadPolymorphic <IUnityAssetDataElement>();
                assetData.AddDataElement(v);
            }

            return(assetData);
        }
Exemple #20
0
        private static IDictionary <long, long> ReadChildToParentMap([NotNull] UnsafeReader reader)
        {
            var count         = reader.ReadInt32();
            var childToParent = new Dictionary <long, long>(count);

            for (var i = 0; i < count; i++)
            {
                var child  = reader.ReadLong();
                var parent = reader.ReadLong();
                childToParent[child] = parent;
            }

            return(childToParent);
        }
        private static object Read(UnsafeReader reader)
        {
            var count   = reader.ReadInt32();
            var methods = new List <UnityEventData>(count);

            for (int i = 0; i < count; i++)
            {
                methods.Add(UnityEventData.ReadFrom(reader));
            }

            var result = new UnityEventsDataElement(methods, ImportedUnityEventData.ReadFrom(reader));

            return(result);
        }
        private static object Read(UnsafeReader reader)
        {
            var count = reader.ReadInt32();
            var list  = new List <InspectorVariableUsage>(count);

            for (int i = 0; i < count; i++)
            {
                list.Add(reader.ReadPolymorphic <InspectorVariableUsage>());
            }

            var importedInspectorValues = ImportedInspectorValues.ReadFrom(reader);
            var result = new AssetInspectorValuesDataElement(list, importedInspectorValues);

            return(result);
        }
Exemple #23
0
        private static IDictionary <long, AnimatorStateMachineScriptUsage> ReadStateMachineAnchorToUsageMap(
            [NotNull] UnsafeReader reader)
        {
            var count = reader.ReadInt32();
            var stateMachineAnchorToUsage = new Dictionary <long, AnimatorStateMachineScriptUsage>(count);

            for (var i = 0; i < count; i++)
            {
                var anchor = reader.ReadLong();
                var usage  = AnimatorStateMachineScriptUsage.ReadFrom(reader);
                stateMachineAnchorToUsage.Add(anchor, usage);
            }

            return(stateMachineAnchorToUsage);
        }
Exemple #24
0
        public static MonoBehaviourPropertyValue Read(UnsafeReader reader)
        {
            var type = reader.ReadInt32();

            switch (type)
            {
            case 0:
                return(MonoBehaviourReferenceValue.ReadFrom(reader));

            case 1:
                return(MonoBehaviourPrimitiveValue.ReadFrom(reader));

            default:
                throw new InvalidOperationException();
            }
        }
        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));
        }
Exemple #26
0
        public static T[] ReadArray <T>(this UnsafeReader reader, CtxReadDelegate <T> itemReader, SerializationCtx ctx)
        {
            int count = reader.ReadInt32();

            if (count < 0)
            {
                return(null);
            }
            var res = new T[count];


            for (var i = 0; i < count; i++)
            {
                res[i] = itemReader(ctx, reader);
            }
            return(res);
        }
Exemple #27
0
        public static List <T> ReadList <T>(this UnsafeReader reader, CtxReadDelegate <T> itemReader, SerializationCtx ctx)
        {
            int count = reader.ReadInt32();

            if (count < 0)
            {
                return(null);
            }
            var res = new List <T>(count);


            for (var i = 0; i < count; i++)
            {
                res.Add(itemReader(ctx, reader));
            }
            return(res);
        }
        private static object Read(UnsafeReader reader)
        {
            var count  = reader.ReadInt32();
            var result = new AssetDocumentHierarchyElement();

            for (int i = 0; i < count; i++)
            {
                var hierarchyElement = reader.ReadPolymorphic <IHierarchyElement>();
                result.myLocalAnchorToHierarchyElement[hierarchyElement.Location.LocalDocumentAnchor] = hierarchyElement;
                if (hierarchyElement is ITransformHierarchy transformHierarchy)
                {
                    result.myTransformHierarchies.Add(transformHierarchy);
                }

                if (hierarchyElement is IPrefabInstanceHierarchy prefabInstanceHierarchy)
                {
                    result.myPrefabInstanceHierarchies.Add(prefabInstanceHierarchy);
                }
            }
            return(result);
        }
Exemple #29
0
 public static AssetMethodData ReadFrom(UnsafeReader reader)
 {
     return(new AssetMethodData(reader.ReadPolymorphic <LocalReference>(), reader.ReadString(), new TextRange(reader.ReadInt32(), reader.ReadInt32()),
                                (EventHandlerArgumentMode)reader.ReadInt32(), reader.ReadString(), reader.ReadPolymorphic <IHierarchyReference>()));
 }
 private static object Read(UnsafeReader reader) => new TransformHierarchy(reader.ReadPolymorphic <LocalReference>(), reader.ReadPolymorphic <LocalReference>(),
                                                                           reader.ReadPolymorphic <LocalReference>(), reader.ReadInt32(), reader.ReadPolymorphic <LocalReference>(),
                                                                           reader.ReadPolymorphic <ExternalReference>(), reader.ReadBool());