コード例 #1
0
        public static void GenerateTypeTree(TypeTreeContext context)
        {
            GameObjectLayout layout = context.Layout.GameObject;

            context.AddNode(layout.Name, TypeTreeUtils.BaseName);
            context.BeginChildren();
            ObjectLayout.GenerateTypeTree(context);
            if (layout.IsComponentTuple)
            {
                context.AddArray(layout.ComponentName, TupleLayout.GenerateTypeTree, Int32Layout.GenerateTypeTree,
                                 (c, n) => c.AddPPtr(c.Layout.Component.Name, n));
            }
            else
            {
                context.AddArray(layout.ComponentName, ComponentPairLayout.GenerateTypeTree);
            }
            if (layout.IsActiveFirst)
            {
                context.AddBool(layout.IsActiveName);
            }
            context.AddUInt32(layout.LayerName);
            if (layout.IsNameFirst)
            {
                context.AddString(layout.NameName);
            }
            if (layout.HasTag)
            {
                context.AddUInt16(layout.TagName);
            }
            if (layout.HasTagString)
            {
                context.AddString(layout.TagStringName);
            }
            if (layout.HasIcon && layout.IsIconFirst)
            {
                context.AddPPtr(context.Layout.Texture2D.Name, layout.IconName);
            }
            if (layout.HasNavMeshLayer)
            {
                context.AddUInt32(layout.NavMeshLayerName);
                context.AddUInt32(layout.StaticEditorFlagsName);
            }
            if (!layout.IsNameFirst)
            {
                context.AddString(layout.NameName);
            }
            if (!layout.IsActiveFirst)
            {
                context.AddBool(layout.IsActiveName);
            }
            if (layout.HasIsStatic)
            {
                context.AddBool(layout.IsStaticName);
            }
            if (layout.HasIcon && !layout.IsIconFirst)
            {
                context.AddPPtr(context.Layout.Texture2D.Name, layout.IconName);
            }
            context.EndChildren();
        }
コード例 #2
0
 public static void GenerateTypeTree(TypeTreeContext context, string name)
 {
     context.AddNode(nameof(PrefabModification), name);
     context.BeginChildren();
     context.AddPPtr(nameof(Transform), TransformParentName);
     context.AddArray(ModificationsName, PropertyModification.GenerateTypeTree);
     if (IsRemovedComponentsComponentPointer(context.Version))
     {
         context.AddArray(RemovedComponentsName, PPtr <Component> .GenerateTypeTree);
     }
     else
     {
         context.AddArray(RemovedComponentsName, PPtr <Object> .GenerateTypeTree);
     }
     context.EndChildren();
 }
コード例 #3
0
 public static void GenerateTypeTree(TypeTreeContext context, string name)
 {
     context.AddNode(TypeTreeUtils.GUIStyleStateName, name);
     context.BeginChildren();
     context.AddPPtr(nameof(Texture2D), BackgroundName);
     context.AddArray(ScaledBackgroundsName, PPtr <Texture2D> .GenerateTypeTree);
     ColorRGBAf.GenerateTypeTree(context, TextColorName);
     context.EndChildren();
 }
コード例 #4
0
        public static void GenerateTypeTree(TypeTreeContext context, string name)
        {
            PrefabModificationLayout layout = context.Layout.PrefabInstance.PrefabModification;

            context.AddNode(layout.Name, name);
            context.BeginChildren();
            context.AddPPtr(context.Layout.Transform.Name, layout.TransformParentName);
            context.AddArray(layout.ModificationsName, PropertyModificationLayout.GenerateTypeTree);
            if (layout.IsComponentPointer)
            {
                context.AddArray(layout.RemovedComponentsName, (c, n) => c.AddPPtr(c.Layout.Component.Name, n));
            }
            else
            {
                context.AddArray(layout.RemovedComponentsName, (c, n) => c.AddPPtr(c.Layout.Object.Name, n));
            }
            context.EndChildren();
        }
コード例 #5
0
        public static void GenerateTypeTree(TypeTreeContext context, string name)
        {
            PrefabInstanceLayout layout = context.Layout.PrefabInstance;

            context.AddNode(layout.Name, name, layout.Version);
            context.BeginChildren();
            if (layout.IsModificationFormat)
            {
                ObjectLayout.GenerateTypeTree(context);
                if (layout.HasRootGameObject && layout.IsRootGameObjectFirst)
                {
                    context.AddPPtr(context.Layout.GameObject.Name, layout.RootGameObjectName);
                }

                PrefabModificationLayout.GenerateTypeTree(context, layout.ModificationName);
                if (layout.HasSourcePrefab)
                {
                    context.AddPPtr(layout.Name, layout.SourcePrefabName);
                }
                else
                {
                    context.AddPPtr(layout.Name, layout.ParentPrefabName);
                }
                if (!layout.IsRootGameObjectFirst)
                {
                    context.AddPPtr(context.Layout.GameObject.Name, layout.RootGameObjectName);
                }
                if (layout.HasIsPrefabAsset)
                {
                    context.AddBool(layout.IsPrefabAssetName);
                }
                else
                {
                    context.AddBool(layout.IsPrefabParentName);
                }
                if (layout.HasIsExploded)
                {
                    context.AddBool(layout.IsExplodedName);
                }
                context.Align();
            }
            else
            {
                GUIDLayout.GenerateTypeTree(context, layout.LastMergeIdentifierName);
                if (layout.HasLastTemplateIdentifier)
                {
                    GUIDLayout.GenerateTypeTree(context, layout.LastTemplateIdentifierName);
                }
                context.AddArray(layout.ObjectsName, (c, n) => c.AddPPtr(c.Layout.EditorExtension.Name, n));
                context.AddPPtr(layout.Name, layout.FatherName);
                context.AddBool(layout.IsDataTemplateName, TransferMetaFlags.AlignBytesFlag);
                NamedObjectLayout.GenerateTypeTree(context);
            }
            context.EndChildren();
        }
コード例 #6
0
 public static void GenerateTypeTree(TypeTreeContext context, string name)
 {
     context.AddNode(nameof(PPtrCurve), name);
     context.BeginChildren();
     context.AddArray(CurveName, PPtrKeyframe.GenerateTypeTree);
     context.AddString(AttributeName);
     context.AddString(PathName);
     context.AddNode(TypeTreeUtils.TypeStarName, ClassIDName, sizeof(int));
     context.AddPPtr(nameof(MonoScript), ScriptName);
     context.EndChildren();
 }
コード例 #7
0
        public static void GenerateTypeTree(TypeTreeContext context, string name)
        {
            AnimationLayout layout = context.Layout.Animation;

            context.AddNode(layout.Name, name, layout.Version);
            context.BeginChildren();
            BehaviourLayout.GenerateTypeTree(context);
            context.AddPPtr(context.Layout.AnimationClip.Name, layout.AnimationName);
            if (layout.HasAnimations)
            {
                context.AddArray(layout.AnimationName, (c, n) => c.AddPPtr(c.Layout.AnimationClip.Name, n));
            }
            else
            {
                context.AddArray(layout.AnimationName, TupleLayout.GenerateTypeTree, StringLayout.GenerateTypeTree,
                                 (c, n) => c.AddPPtr(c.Layout.AnimationClip.Name, n));
            }

            context.AddInt32(layout.WrapModeName);
            context.AddBool(layout.PlayAutomaticallyName);
            context.AddBool(layout.AnimatePhysicsInvariantName);
            if (layout.HasAnimateOnlyIfVisible)
            {
                context.AddBool(layout.AnimateOnlyIfVisibleName);
            }
            if (layout.IsAlign)
            {
                context.Align();
            }

            if (layout.HasCullingType)
            {
                context.AddInt32(layout.CullingTypeName);
            }
            if (layout.HasUserAABB)
            {
                AABBLayout.GenerateTypeTree(context, layout.UserAABBName);
            }
            context.EndChildren();
        }
コード例 #8
0
        public static void GenerateTypeTree(TypeTreeContext context, string name)
        {
            PPtrCurveLayout layout = context.Layout.AnimationClip.PPtrCurve;

            context.AddNode(layout.Name, name);
            context.BeginChildren();
            context.AddArray(layout.CurveName, PPtrKeyframe.GenerateTypeTree);
            context.AddString(layout.AttributeName);
            context.AddString(layout.PathName);
            context.AddNode(TypeTreeUtils.TypeStarName, layout.ClassIDName, 1, sizeof(int));
            context.AddPPtr(context.Layout.MonoScript.Name, layout.ScriptName);
            context.EndChildren();
        }
コード例 #9
0
        public static void GenerateTypeTree(TypeTreeContext context, string name)
        {
            GUIStyleStateLayout layout = context.Layout.Serialized.GUIStyle.GUIStyleState;

            context.AddNode(layout.Name, name);
            context.BeginChildren();
            context.AddPPtr(context.Layout.Texture2D.Name, layout.BackgroundName);
            if (layout.HasScaledBackgrounds)
            {
                context.AddArray(layout.ScaledBackgroundsName, (c, n) => PPtrLayout.GenerateTypeTree(c, c.Layout.Texture2D.Name, n));
            }
            ColorRGBAfLayout.GenerateTypeTree(context, layout.TextColorName);
            context.EndChildren();
        }
コード例 #10
0
ファイル: PrefabInstance.cs プロジェクト: lego13/UtinyRipper
        public static void GenerateTypeTree(TypeTreeContext context, string name)
        {
            string className = GetPrefabInstanceName(context.Version);

            context.AddNode(className, name, 0, ToSerializedVersion(context.Version));
            context.BeginChildren();
            if (IsModificationsFormat(context.Version))
            {
                Object.GenerateTypeTree(context);

                bool hasRootGameObject     = IsRootGameObjectRelevant(context.Flags);
                bool isRootGameObjectFirst = IsRootGameObjectFirst(context.Version);
                if (hasRootGameObject && isRootGameObjectFirst)
                {
                    context.AddPPtr(nameof(GameObject), RootGameObjectName);
                }

                PrefabModification.GenerateTypeTree(context, ModificationName);
                context.AddPPtr(className, GetSourcePrefabName(context.Version));
                if (hasRootGameObject && !isRootGameObjectFirst)
                {
                    context.AddPPtr(nameof(GameObject), RootGameObjectName);
                }
                if (IsPrefabAssetRelevant(context.Version))
                {
                    context.AddBool(GetIsPrefabAssetName(context.Version));
                }
                if (IsExplodedRelevant(context.Version))
                {
                    context.AddBool(IsExplodedName);
                }
                context.Align();
            }
            else
            {
                GUID.GenerateTypeTree(context, LastMergeIdentifierName);
                if (HasLastTemplateIdentifier(context.Version))
                {
                    GUID.GenerateTypeTree(context, LastTemplateIdentifierName);
                }
                context.AddArray(ObjectsName, PPtr <EditorExtension> .GenerateTypeTree);
                context.AddPPtr(className, FatherName);
                context.AddBool(IsDataTemplateName, TransferMetaFlags.AlignBytesFlag);
                NamedObject.GenerateTypeTree(context);
            }
            context.EndChildren();
        }
コード例 #11
0
        public static void GenerateTypeTree(TypeTreeContext context, string name, TypeTreeGenerator generator)
        {
            AnimationCurveTplLayout layout = context.Layout.Serialized.AnimationCurveTpl;

            context.AddNode(layout.Name, name, layout.Version);
            context.BeginChildren();
            context.AddArray(layout.CurveName, (c, n) => KeyframeTplLayout.GenerateTypeTree(c, n, generator));
            if (context.Layout.IsAlign)
            {
                context.Align();
            }
            context.AddInt32(layout.PreInfinityName);
            context.AddInt32(layout.PostInfinityName);
            if (layout.HasRotationOrder)
            {
                context.AddInt32(layout.RotationOrderName);
            }
            context.EndChildren();
        }