Exemple #1
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities  = hierarchy.Entities;

                foreach (var entityAndDesign in entities)
                {
                    var entity = entityAndDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag != "!UIComponent")
                        {
                            continue;
                        }

                        // VirtualResolution
                        component.RenameChild("VirtualResolution", "Resolution");

                        // VirtualResolutionMode
                        component.RenameChild("VirtualResolutionMode", "ResolutionStretch");
                    }
                }
            }
Exemple #2
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                dynamic settings = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!Xenko.Navigation.NavigationSettings,Xenko.Navigation"
                });

                // Default build settings
                dynamic buildSettings = new DynamicYamlMapping(new YamlMappingNode());

                buildSettings.CellHeight             = 0.2f;
                buildSettings.CellSize               = 0.3f;
                buildSettings.TileSize               = 32;
                buildSettings.MinRegionArea          = 2;
                buildSettings.RegionMergeArea        = 20;
                buildSettings.MaxEdgeLen             = 12.0f;
                buildSettings.MaxEdgeError           = 1.3f;
                buildSettings.DetailSamplingDistance = 6.0f;
                buildSettings.MaxDetailSamplingError = 1.0f;
                settings.BuildSettings               = buildSettings;

                var groups = new DynamicYamlArray(new YamlSequenceNode());

                // Agent settings array
                settings.Groups = groups;

                asset.Defaults.Add(settings);
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     if (asset.Source != null)
         asset.Source = DynamicYamlEmpty.Default;
     if (asset.SourceHash != null)
         asset.SourceHash = DynamicYamlEmpty.Default;
 }
Exemple #4
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities  = hierarchy.Entities;

                foreach (var entityAndDesign in entities)
                {
                    var entity = entityAndDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag != "!SpriteComponent")
                        {
                            continue;
                        }

                        var provider = component.SpriteProvider;
                        if (provider == null || provider.Node.Tag != "!SpriteFromSheet")
                        {
                            continue;
                        }

                        component.TransferChild("CurrentFrame", provider, "CurrentFrame");
                    }
                }
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     // Introduction of MaterialInstance
     var material = asset.Type.Material;
     if (material != null)
     {
         asset.Type.MaterialInstance = new YamlMappingNode();
         asset.Type.MaterialInstance.Material = material;
         asset.Type.Material = DynamicYamlEmpty.Default;
     }
     var type = asset.Type.Node as YamlMappingNode;
     if (type != null && type.Tag == "!CubeProceduralModel")
     {
         // Size changed from scalar to vector3
         var size = asset.Type.Size as DynamicYamlScalar;
         if (size != null)
         {
             var vecSize = new YamlMappingNode
             {
                 { new YamlScalarNode("X"), new YamlScalarNode(size.Node.Value) },
                 { new YamlScalarNode("Y"), new YamlScalarNode(size.Node.Value) },
                 { new YamlScalarNode("Z"), new YamlScalarNode(size.Node.Value) }
             };
             vecSize.Style = DataStyle.Compact;
             asset.Type.Size = vecSize;
         }
     }
 }
Exemple #6
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                dynamic setting = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!SiliconStudio.Xenko.Audio.AudioEngineSettings,SiliconStudio.Xenko.Audio"
                });

                asset.Defaults.Add(setting);
            }
Exemple #7
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                dynamic settings = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!Xenko.Streaming.StreamingSettings,Xenko.Engine"
                });

                asset.Defaults.Add(settings);
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     var hierarchy = asset.Hierarchy;
     var entities = (DynamicYamlArray)hierarchy.Entities;
     foreach (dynamic entity in entities)
     {
         var components = entity.Components;
         var modelComponent = components["ModelComponent.Key"];
         if (modelComponent != null)
             modelComponent.RemoveChild("DrawOrder");
     }
 }
Exemple #9
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                if (asset.IsDynamic != null)
                {
                    var isDynamic = (bool)asset.IsDynamic;

                    // There is also SDF type, but old assets don't have it yet
                    asset.AddChild("FontType", isDynamic ? "Dynamic" : "Static");

                    asset.RemoveChild("IsDynamic");
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                if (asset.IsDynamic != null)
                {
                    var isDynamic = (bool)asset.IsDynamic;

                    // There is also SDF type, but old assets don't have it yet
                    asset.AddChild("FontType", isDynamic ? "Dynamic" : "Static");

                    asset.RemoveChild("IsDynamic");
                }
            }
Exemple #11
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                      OverrideUpgraderHint overrideHint)
 {
     asset.Hierarchy.RootPartIds  = asset.Hierarchy.RootEntities;
     asset.Hierarchy.Parts        = asset.Hierarchy.Entities;
     asset.Hierarchy.RootEntities = DynamicYamlEmpty.Default;
     asset.Hierarchy.Entities     = DynamicYamlEmpty.Default;
     foreach (var entityDesign in asset.Hierarchy.Parts)
     {
         entityDesign.Folder             = entityDesign.Design.Folder;
         entityDesign.BaseId             = entityDesign.Design.BaseId;
         entityDesign.BasePartInstanceId = entityDesign.Design.BasePartInstanceId;
         entityDesign.Design             = DynamicYamlEmpty.Default;
     }
 }
Exemple #12
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities  = (DynamicYamlArray)hierarchy.Parts;

                foreach (dynamic entityDesign in entities)
                {
                    var entity = entityDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        component.Id     = component["~Id"];
                        component["~Id"] = DynamicYamlEmpty.Default;
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                if (asset.ColliderShapes == null)
                    return;

                foreach (var colliderShape in asset.ColliderShapes)
                {
                    if (colliderShape.Node.Tag == "!Box2DColliderShapeDesc")
                    {
                        var size = 2f * DynamicYamlExtensions.ConvertTo<Vector2>(colliderShape.HalfExtent);
                        colliderShape.Size = DynamicYamlExtensions.ConvertFrom(size);
                        colliderShape.HalfExtent = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!BoxColliderShapeDesc")
                    {
                        var size = 2f * DynamicYamlExtensions.ConvertTo<Vector3>(colliderShape.HalfExtents);
                        colliderShape.Size = DynamicYamlExtensions.ConvertFrom(size);
                        colliderShape.HalfExtents = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!CapsuleColliderShapeDesc" || colliderShape.Node.Tag == "!CylinderColliderShapeDesc")
                    {
                        var upVector = DynamicYamlExtensions.ConvertTo<Vector3>(colliderShape.UpAxis);
                        if (upVector == Vector3.UnitX)
                            colliderShape.Orientation = ShapeOrientation.UpX;
                        if (upVector == Vector3.UnitZ)
                            colliderShape.Orientation = ShapeOrientation.UpZ;

                        colliderShape.UpAxis = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!CapsuleColliderShapeDesc" && colliderShape.Height != null)
                    {
                        colliderShape.Length = 2f * (float)colliderShape.Height;
                        colliderShape.Height = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!CylinderColliderShapeDesc")
                    {
                        colliderShape.Radius = (float)colliderShape.HalfExtents.X;
                        colliderShape.Height = 2f * (float)colliderShape.HalfExtents.Y;
                        colliderShape.HalfExtents = DynamicYamlEmpty.Default;
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                if (asset.FontType == null)
                {
                    return;
                }

                if (asset.FontType.Size == null)
                {
                    //  It is possible our font type has the default size of 16, which translates to 21.33333 in pixel size
                    asset.FontType.AddChild("Size", 21.33333);
                    return;
                }

                var newSize = ((float)asset.FontType.Size) * 1.3333333f;

                asset.FontType.RemoveChild("Size");

                asset.FontType.AddChild("Size", newSize);
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     var hierarchy = asset.Hierarchy;
     var entities = (DynamicYamlArray)hierarchy.Entities;
     foreach (dynamic entity in entities)
     {
         var components = entity.Components;
         var spriteComponent = components["SpriteComponent.Key"];
         if (spriteComponent != null)
         {
             var provider = spriteComponent.SpriteProvider;
             var providerAsMap = provider as DynamicYamlMapping;
             if (providerAsMap != null && providerAsMap.Node.Tag == "!SpriteFromSpriteGroup")
             {
                 provider.Sheet = provider.SpriteGroup;
                 provider.SpriteGroup = DynamicYamlEmpty.Default;
                 providerAsMap.Node.Tag = "!SpriteFromSheet";
             }
         }
     }
 }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities = hierarchy.Entities;
                foreach (var entityAndDesign in entities)
                {
                    var entity = entityAndDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag != "!UIComponent")
                            continue;

                        // VirtualResolution
                        component.RenameChild("VirtualResolution", "Resolution");

                        // VirtualResolutionMode
                        component.RenameChild("VirtualResolutionMode", "ResolutionStretch");
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities = hierarchy.Entities;
                foreach (var entityAndDesign in entities)
                {
                    var entity = entityAndDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag != "!SpriteComponent")
                            continue;

                        var provider = component.SpriteProvider;
                        if (provider == null || provider.Node.Tag != "!SpriteFromSheet")
                            continue;

                        component.TransferChild("CurrentFrame", provider, "CurrentFrame");
                    }
                }
            }
Exemple #18
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities  = (DynamicYamlArray)hierarchy.Parts;

                foreach (dynamic entityDesign in entities)
                {
                    var entity = entityDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag == "!CharacterComponent")
                        {
                            var rads  = component.MaxSlope;
                            var angle = new DynamicYamlMapping(new YamlMappingNode());
                            angle.AddChild("Radians", rads);
                            component.MaxSlope = angle;
                        }
                    }
                }
            }
Exemple #19
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                var proceduralType = asset.Type;

                if (proceduralType.Diameter != null)
                {
                    proceduralType.Radius   = 0.5f * (float)proceduralType.Diameter;
                    proceduralType.Diameter = DynamicYamlEmpty.Default;
                }
                if (proceduralType.Node.Tag == "!TorusProceduralModel" && proceduralType.Thickness != null)
                {
                    proceduralType.Thickness = 0.5f * (float)proceduralType.Thickness;
                }
            }
Exemple #20
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                int backBufferWidth = asset.BackBufferWidth ?? 1280;

                asset.RemoveChild("BackBufferWidth");
                int backBufferHeight = asset.BackBufferHeight ?? 720;

                asset.RemoveChild("BackBufferHeight");
                GraphicsProfile profile = asset.DefaultGraphicsProfile ?? GraphicsProfile.Level_9_1;

                asset.RemoveChild("DefaultGraphicsProfile");
                ColorSpace colorSpace = asset.ColorSpace ?? ColorSpace.Linear;

                asset.RemoveChild("ColorSpace");
                DisplayOrientation displayOrientation = asset.DisplayOrientation ?? DisplayOrientation.Default;

                asset.RemoveChild("DisplayOrientation");
                TextureQuality textureQuality = asset.TextureQuality ?? TextureQuality.Fast;

                asset.RemoveChild("TextureQuality");
                var renderingMode = RenderingMode.HDR;

                if (asset.RenderingMode != null)
                {
                    if (asset.RenderingMode == "LDR")
                    {
                        renderingMode = RenderingMode.LDR;
                    }
                }
                asset.RemoveChild("RenderingMode");

                var configurations = new DynamicYamlArray(new YamlSequenceNode());

                asset.Defaults = configurations;

                dynamic renderingSettings = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!SiliconStudio.Xenko.Graphics.RenderingSettings,SiliconStudio.Xenko.Graphics"
                });

                renderingSettings.DefaultBackBufferWidth  = backBufferWidth;
                renderingSettings.DefaultBackBufferHeight = backBufferHeight;
                renderingSettings.DefaultGraphicsProfile  = profile;
                renderingSettings.ColorSpace         = colorSpace;
                renderingSettings.DisplayOrientation = displayOrientation;
                asset.Defaults.Add(renderingSettings);

                dynamic editorSettings = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!SiliconStudio.Xenko.Assets.EditorSettings,SiliconStudio.Xenko.Assets"
                });

                editorSettings.RenderingMode = renderingMode;
                asset.Defaults.Add(editorSettings);

                dynamic textSettings = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!SiliconStudio.Xenko.Assets.Textures.TextureSettings,SiliconStudio.Xenko.Assets"
                });

                textSettings.TextureQuality = textureQuality;
                asset.Defaults.Add(textSettings);

                dynamic physicsSettings = new DynamicYamlMapping(new YamlMappingNode {
                    Tag = "!SiliconStudio.Xenko.Physics.PhysicsSettings,SiliconStudio.Xenko.Physics"
                });

                asset.Defaults.Add(physicsSettings);

                var defaultFilters = new DynamicYamlArray(new YamlSequenceNode());

                asset.PlatformFilters = defaultFilters;
                asset.PlatformFilters.Add("PowerVR SGX 54[0-9]");
                asset.PlatformFilters.Add("Adreno \\(TM\\) 2[0-9][0-9]");
                asset.PlatformFilters.Add("Adreno (TM) 320");
                asset.PlatformFilters.Add("Adreno (TM) 330");
                asset.PlatformFilters.Add("Adreno \\(TM\\) 4[0-9][0-9]");
                asset.PlatformFilters.Add("NVIDIA Tegra");
                asset.PlatformFilters.Add("Intel(R) HD Graphics");
                asset.PlatformFilters.Add("^Mali\\-4");
                asset.PlatformFilters.Add("^Mali\\-T6");
                asset.PlatformFilters.Add("^Mali\\-T7");
            }
Exemple #21
0
 /// <inheritdoc/>
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
 }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                YamlNode assetNode = asset.Node;

                foreach (var node in assetNode.AllNodes)
                {
                    if (node.Tag != null && node.Tag.EndsWith(",Stride.Engine")
                        // Several types are still in Stride.Engine
                        && node.Tag != "!Stride.Rendering.Compositing.ForwardRenderer,Stride.Engine" &&
                        node.Tag != "!Stride.Rendering.Compositing.SceneCameraRenderer,Stride.Engine")
                    {
                        node.Tag = node.Tag.Replace(",Stride.Engine", ",Stride.Rendering");
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                var basePartMapping = new Dictionary<string, string>();
                if (asset["~BaseParts"] != null)
                {
                    foreach (dynamic basePart in asset["~BaseParts"])
                    {
                        try
                        {
                            var location = ((YamlScalarNode)basePart.Location.Node).Value;
                            var id = ((YamlScalarNode)basePart.Asset.Id.Node).Value;
                            var assetUrl = $"{id}:{location}";

                            foreach (dynamic part in basePart.Asset.Hierarchy.Parts)
                            {
                                try
                                {
                                    var partId = ((YamlScalarNode)part.Entity.Id.Node).Value;
                                    basePartMapping[partId] = assetUrl;
                                }
                                catch (Exception e)
                                {
                                    e.Ignore();
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            e.Ignore();
                        }
                    }
                    asset["~BaseParts"] = DynamicYamlEmpty.Default;
                }
                var entities = (DynamicYamlArray)asset.Hierarchy.Parts;
                foreach (dynamic entityDesign in entities)
                {
                    if (entityDesign.BaseId != null)
                    {
                        try
                        {
                            var baseId = ((YamlScalarNode)entityDesign.BaseId.Node).Value;
                            var baseInstanceId = ((YamlScalarNode)entityDesign.BasePartInstanceId.Node).Value;
                            string assetUrl;
                            if (basePartMapping.TryGetValue(baseId, out assetUrl))
                            {
                                var baseNode = (dynamic)(new DynamicYamlMapping(new YamlMappingNode()));
                                baseNode.BasePartAsset = assetUrl;
                                baseNode.BasePartId = baseId;
                                baseNode.InstanceId = baseInstanceId;
                                entityDesign.Base = baseNode;
                            }
                            entityDesign.BaseId = DynamicYamlEmpty.Default;
                            entityDesign.BasePartInstanceId = DynamicYamlEmpty.Default;
                        }
                        catch (Exception e)
                        {
                            e.Ignore();
                        }
                    }
                }
            }
 /// <inheritdoc/>
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
 }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                // Replace ComputeCurveSamplerVector4 with ComputeCurveSamplerColor4.
                // Replace ComputeAnimationCurveVector4 with ComputeAnimationCurveColor4.
                // Replace Vector4 with Color4.
                Action<dynamic> updateSampler = sampler =>
                {
                    if (sampler == null || sampler.Node.Tag != "!ComputeCurveSamplerVector4")
                        return;

                    sampler.Node.Tag = "!ComputeCurveSamplerColor4";

                    var curve = sampler.Curve;
                    curve.Node.Tag = "!ComputeAnimationCurveColor4";
                    foreach (var kf in curve.KeyFrames)
                    {
                        var colorValue = new DynamicYamlMapping(new YamlMappingNode());
                        colorValue.AddChild("R", kf.Value.X);
                        colorValue.AddChild("G", kf.Value.Y);
                        colorValue.AddChild("B", kf.Value.Z);
                        colorValue.AddChild("A", kf.Value.W);

                        kf.Value = colorValue;
                    }
                };

                var hierarchy = asset.Hierarchy;
                var entities = hierarchy.Entities;
                foreach (var entityAndDesign in entities)
                {
                    var entity = entityAndDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag != "!ParticleSystemComponent")
                            continue;

                        var particleSystem = component.ParticleSystem;
                        if (particleSystem == null)
                            continue;

                        foreach (var emitter in particleSystem.Emitters)
                        {
                            // Updaters
                            foreach (var updater in emitter.Updaters)
                            {
                                var updaterTag = updater.Node.Tag;
                                if (updaterTag != "!UpdaterColorOverTime")
                                    continue;

                                // Update the samplers
                                updateSampler(updater.SamplerMain);
                                updateSampler(updater.SamplerOptional);
                            }
                        }
                    }
                }
            }
Exemple #26
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     asset.RemoveChild("SceneSettings");
 }
Exemple #27
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                var dependencies = asset.Meta?.Dependencies;

                if (dependencies != null)
                {
                    foreach (var dependency in dependencies)
                    {
                        if (dependency.Name == "Paradox")
                            dependency.Name = "Xenko";
                    }
                }
            }
Exemple #28
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                if (asset.Profiles != null)
                {
                    var profiles = asset.Profiles;

                    foreach (var profile in profiles)
                    {
                        var folders = profile.AssetFolders;
                        if (folders != null)
                        {
                            foreach (var folder in folders)
                            {
                                if (folder.RawImports != null)
                                {
                                    folder.RemoveChild("RawImports");
                                }
                            }
                        }
                    }
                }
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     if (asset.IsNotPremultiplied != null)
     {
         asset.IsPremultiplied = !(bool)asset.IsNotPremultiplied;
         asset.IsNotPremultiplied = DynamicYamlEmpty.Default;
     }
 }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     if (asset.ScaleImport != null && (float)asset.ScaleImport == 0.0f)
     {
         asset.RemoveChild("ScaleImport");
     }
 }
Exemple #31
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                // SerializedVersion format changed during renaming upgrade. However, before this was merged back in master, some asset upgrader still with older version numbers were developed.
                // However since this upgrader can be reapplied, it is not a problem
                var proceduralType = asset.Type;

                if (proceduralType.Node.Tag == "!CapsuleProceduralModel" && currentVersion != PackageVersion.Parse("0.0.6"))
                {
                    if (proceduralType.Radius == null)
                    {
                        proceduralType.Radius = 0.25f;
                    }
                }
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
     OverrideUpgraderHint overrideHint)
 {
     var hierarchy = asset.Hierarchy;
     var entities = (DynamicYamlArray)hierarchy.Parts;
     foreach (dynamic entityDesign in entities)
     {
         var entity = entityDesign.Entity;
         foreach (var component in entity.Components)
         {
             var componentTag = component.Node.Tag;
             if (componentTag == "!CharacterComponent")
             {
                 var rads = component.MaxSlope;
                 var angle = new DynamicYamlMapping(new YamlMappingNode());
                 angle.AddChild("Radians", rads);
                 component.MaxSlope = angle;
             }
         }
     }
 }
Exemple #33
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     if (asset.NoPremultiply != null)
     {
         asset.IsPremultiplied = !(bool)asset.NoPremultiply;
         asset.NoPremultiply   = DynamicYamlEmpty.Default;
     }
     if (asset.IsNotPremultiply != null)
     {
         asset.IsPremultiplied  = !(bool)asset.IsNotPremultiply;
         asset.IsNotPremultiply = DynamicYamlEmpty.Default;
     }
 }
Exemple #34
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     if (asset.SRgb != null)
     {
         // By default transform to auto
         asset.ColorSpace = TextureColorSpace.Auto;
         asset.RemoveChild("SRgb");
     }
 }
Exemple #35
0
 /// <inheritdoc/>
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     asset.AnimationTimeMinimum = "0:00:00:00.0000000";
     asset.AnimationTimeMaximum = "0:00:30:00.0000000";  // Tentatively set this to 30 minutes
 }
Exemple #36
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     asset.Parameters = DynamicYamlEmpty.Default;
 }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
     OverrideUpgraderHint overrideHint)
 {
     asset.Hierarchy.RootPartIds = asset.Hierarchy.RootEntities;
     asset.Hierarchy.Parts = asset.Hierarchy.Entities;
     asset.Hierarchy.RootEntities = DynamicYamlEmpty.Default;
     asset.Hierarchy.Entities = DynamicYamlEmpty.Default;
     foreach (var entityDesign in asset.Hierarchy.Parts)
     {
         entityDesign.Folder = entityDesign.Design.Folder;
         entityDesign.BaseId = entityDesign.Design.BaseId;
         entityDesign.BasePartInstanceId = entityDesign.Design.BasePartInstanceId;
         entityDesign.Design = DynamicYamlEmpty.Default;
     }
 }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     var images = asset.Images;
     if (images != null)
     {
         asset.Sprites = images;
         asset.Images = DynamicYamlEmpty.Default;
     }
 }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
     OverrideUpgraderHint overrideHint)
 {
     var hierarchy = asset.Hierarchy;
     var entities = (DynamicYamlArray)hierarchy.Parts;
     foreach (dynamic entityDesign in entities)
     {
         var entity = entityDesign.Entity;
         foreach (var component in entity.Components)
         {
             component.Id = component["~Id"];
             component["~Id"] = DynamicYamlEmpty.Default;
         }
     }
 }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     var packing = asset.Packing;
     if (packing != null)
     {
         packing.AtlasMaximumSize = DynamicYamlEmpty.Default;
     }
 }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                var hierarchy = asset.Hierarchy;
                var entities = (DynamicYamlArray)hierarchy.Parts;
                foreach (dynamic entityDesign in entities)
                {
                    var entity = entityDesign.Entity;
                    foreach (var component in entity.Components)
                    {
                        try
                        {
                            var componentTag = component.Value.Node.Tag;
                            if (componentTag == "!ModelComponent")
                            {
                                var materials = component.Value.Materials;
                                var node = ((DynamicYamlMapping)materials).Node;
                                var i = -1;
                                foreach (var material in node.Children.ToList())
                                {
                                    ++i;
                                    node.Children.Remove(material.Key);
                                    if (((YamlScalarNode)material.Value).Value == "null")
                                        continue;

                                    node.Children.Add(new YamlScalarNode(((YamlScalarNode)material.Key).Value + '~' + i), material.Value);
                                }
                            }
                        }
                        catch (Exception)
                        {
                            try
                            {
                                // Component list serialized with the old version (as a sequence with ~Id in each item)
                                var componentTag = component.Node.Tag;
                                if (componentTag == "!ModelComponent")
                                {
                                    var materials = component.Materials;
                                    var node = ((DynamicYamlArray)materials).Node;
                                    var i = -1;
                                    dynamic newMaterial = new DynamicYamlMapping(new YamlMappingNode());
                                    foreach (var material in node.Children.ToList())
                                    {
                                        ++i;
                                        var reference = (YamlScalarNode)material;
                                        if (reference.Value == "null") // Skip null
                                            continue;

                                        UFile location;
                                        Guid referenceId;
                                        AssetId assetReference;
                                        if (AssetReference.TryParse(reference.Value, out assetReference, out location, out referenceId) && referenceId != Guid.Empty)
                                        {
                                            var itemId = new ItemId(referenceId.ToByteArray());
                                            newMaterial[itemId + "~" + i] = new AssetReference(assetReference, location);
                                        }
                                    }
                                    component["Materials"] = newMaterial;
                                }
                            }
                            catch (Exception e)
                            {
                                e.Ignore();
                            }
                        }
                    }
                }

            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                // SerializedVersion format changed during renaming upgrade. However, before this was merged back in master, some asset upgrader still with older version numbers were developed.
                // As a result, upgrade is not needed for version 3
                var sprites = asset.Sprites;
                if (sprites == null || currentVersion == PackageVersion.Parse("0.0.3"))
                    return;

                foreach (var sprite in asset.Sprites)
                {
                    if (sprite.Borders == null)
                    {
                        continue;
                    }
                    var y = sprite.Borders.Y ?? 0.0f;
                    sprite.Borders.Y = sprite.Borders.Z ?? 0.0f;
                    sprite.Borders.Z = y;
                }
            }
Exemple #43
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     if (asset.ScaleImport != null && (float)asset.ScaleImport == 0.0f)
     {
         asset.RemoveChild("ScaleImport");
     }
 }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                if (asset.ColliderShapes == null)
                {
                    return;
                }

                foreach (dynamic shape in asset.ColliderShapes)
                {
                    var tag = shape.Node.Tag;
                    if (tag != "!Box2DColliderShapeDesc")
                    {
                        continue;
                    }

                    shape.Node.Tag = "!BoxColliderShapeDesc";
                    shape.Is2D     = true;
                    shape.Size.X   = shape.Size.X;
                    shape.Size.Y   = shape.Size.Y;
                    shape.Size.Z   = 0.01f;
                }
            }
Exemple #45
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     foreach (var modelMaterial in asset.Materials)
     {
         var material = modelMaterial.Material;
         if (material != null)
         {
             modelMaterial.MaterialInstance          = new YamlMappingNode();
             modelMaterial.MaterialInstance.Material = material;
             modelMaterial.Material = DynamicYamlEmpty.Default;
         }
     }
 }
Exemple #46
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                // Introduction of MaterialInstance
                var material = asset.Type.Material;

                if (material != null)
                {
                    asset.Type.MaterialInstance          = new YamlMappingNode();
                    asset.Type.MaterialInstance.Material = material;
                    asset.Type.Material = DynamicYamlEmpty.Default;
                }
                var type = asset.Type.Node as YamlMappingNode;

                if (type != null && type.Tag == "!CubeProceduralModel")
                {
                    // Size changed from scalar to vector3
                    var size = asset.Type.Size as DynamicYamlScalar;
                    if (size != null)
                    {
                        var vecSize = new YamlMappingNode
                        {
                            { new YamlScalarNode("X"), new YamlScalarNode(size.Node.Value) },
                            { new YamlScalarNode("Y"), new YamlScalarNode(size.Node.Value) },
                            { new YamlScalarNode("Z"), new YamlScalarNode(size.Node.Value) }
                        };
                        vecSize.Style   = DataStyle.Compact;
                        asset.Type.Size = vecSize;
                    }
                }
            }
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     foreach (var modelMaterial in asset.Materials)
     {
         var material = modelMaterial.Material;
         if (material != null)
         {
             modelMaterial.MaterialInstance = new YamlMappingNode();
             modelMaterial.MaterialInstance.Material = material;
             modelMaterial.Material = DynamicYamlEmpty.Default;
         }
     }
 }
Exemple #48
0
 protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
 {
     foreach (var profile in asset["Profiles"])
     {
         profile["Properties"] = DynamicYamlEmpty.Default;
     }
 }
Exemple #49
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                var addRendering = true;
                var addEditor    = true;
                var addPhysics   = true;
                var addTexture   = true;

                foreach (DynamicYamlMapping mapping in asset.Defaults)
                {
                    if (mapping.Node.Tag == "!SiliconStudio.Xenko.Graphics.RenderingSettings,SiliconStudio.Xenko.Graphics")
                    {
                        addRendering = false;
                    }
                    if (mapping.Node.Tag == "!SiliconStudio.Xenko.Assets.EditorSettings,SiliconStudio.Xenko.Assets")
                    {
                        addEditor = false;
                    }
                    if (mapping.Node.Tag == "!SiliconStudio.Xenko.Assets.Textures.TextureSettings,SiliconStudio.Xenko.Assets")
                    {
                        addTexture = false;
                    }
                    if (mapping.Node.Tag == "!SiliconStudio.Xenko.Physics.PhysicsSettings,SiliconStudio.Xenko.Physics")
                    {
                        addPhysics = false;
                    }
                }

                if (addRendering)
                {
                    dynamic setting = new DynamicYamlMapping(new YamlMappingNode {
                        Tag = "!SiliconStudio.Xenko.Graphics.RenderingSettings,SiliconStudio.Xenko.Graphics"
                    });
                    asset.Defaults.Add(setting);
                }

                if (addEditor)
                {
                    dynamic setting = new DynamicYamlMapping(new YamlMappingNode {
                        Tag = "!SiliconStudio.Xenko.Assets.EditorSettings,SiliconStudio.Xenko.Assets"
                    });
                    asset.Defaults.Add(setting);
                }

                if (addPhysics)
                {
                    dynamic setting = new DynamicYamlMapping(new YamlMappingNode {
                        Tag = "!SiliconStudio.Xenko.Physics.PhysicsSettings,SiliconStudio.Xenko.Physics"
                    });
                    asset.Defaults.Add(setting);
                }

                if (addTexture)
                {
                    dynamic setting = new DynamicYamlMapping(new YamlMappingNode {
                        Tag = "!SiliconStudio.Xenko.Assets.Textures.TextureSettings,SiliconStudio.Xenko.Assets"
                    });
                    asset.Defaults.Add(setting);
                }
            }
Exemple #50
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                if (asset.Profiles != null)
                {
                    var profiles = asset.Profiles;

                    for (int i = 0; i < profiles.Count; ++i)
                    {
                        var profile = profiles[i];
                        if (profile.Platform == "WindowsStore" || profile.Platform == "WindowsPhone")
                        {
                            profiles.RemoveAt(i--);
                            context.Log.Warning($"Platform [{profile.Platform}] is not supported anymore, it will be removed from your package (but kept in solution as a backup). Please use Windows 10 (UWP) instead.");
                        }
                        else if (profile.Platform == nameof(PlatformType.Windows10))
                        {
                            profile.Platform = nameof(PlatformType.UWP);
                        }
                    }
                }
            }
Exemple #51
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                var proceduralType = asset.Type;

                if (proceduralType.ScaleUV != null)
                {
                    var currentScale = (float)proceduralType.ScaleUV;

                    var vecSize = new YamlMappingNode
                    {
                        { new YamlScalarNode("X"), new YamlScalarNode(currentScale.ToString(CultureInfo.InvariantCulture)) },
                        { new YamlScalarNode("Y"), new YamlScalarNode(currentScale.ToString(CultureInfo.InvariantCulture)) }
                    };
                    vecSize.Style = DataStyle.Compact;

                    proceduralType.RemoveChild("ScaleUV");

                    proceduralType.UvScale = vecSize;
                }
                else if (proceduralType.UVScales != null)
                {
                    var x = (float)proceduralType.UVScales.X;
                    var y = (float)proceduralType.UVScales.Y;

                    var vecSize = new YamlMappingNode
                    {
                        { new YamlScalarNode("X"), new YamlScalarNode(x.ToString(CultureInfo.InvariantCulture)) },
                        { new YamlScalarNode("Y"), new YamlScalarNode(y.ToString(CultureInfo.InvariantCulture)) }
                    };
                    vecSize.Style = DataStyle.Compact;

                    proceduralType.RemoveChild("UVScales");

                    proceduralType.UvScale = vecSize;
                }
                else
                {
                    var vecSize = new YamlMappingNode
                    {
                        { new YamlScalarNode("X"), new YamlScalarNode("1") },
                        { new YamlScalarNode("Y"), new YamlScalarNode("1") }
                    };
                    vecSize.Style = DataStyle.Compact;

                    proceduralType.UvScale = vecSize;
                }
            }
Exemple #52
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                YamlNode assetNode = asset.Node;

                foreach (var node in assetNode.AllNodes)
                {
                    if (node.Tag == "!Xenko.Streaming.StreamingSettings,Xenko.Engine")
                    {
                        node.Tag = node.Tag.Replace(",Xenko.Engine", ",Xenko.Rendering");
                    }
                }
            }
Exemple #53
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                // SerializedVersion format changed during renaming upgrade. However, before this was merged back in master, some asset upgrader still with older version numbers were developed.
                var proceduralType = asset.Type;

                if (proceduralType.Node.Tag == "!ConeProceduralModel" && currentVersion != PackageVersion.Parse("0.0.6"))
                {
                    if (proceduralType.LocalOffset == null)
                    {
                        dynamic offset = new DynamicYamlMapping(new YamlMappingNode());
                        offset.AddChild("X", 0.0f);
                        offset.AddChild("Y", 0.5f);
                        offset.AddChild("Z", 0.0f);
                        proceduralType.AddChild("LocalOffset", offset);
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {

                var hierarchy = asset.Hierarchy;
                var entities = (DynamicYamlArray)hierarchy.Entities;
                foreach (dynamic entityAndDesign in entities)
                {
                    var entity = entityAndDesign.Entity;

                    foreach (var component in entity.Components)
                    {
                        var componentTag = component.Node.Tag;
                        if (componentTag == "!ParticleSystemComponent")
                        {
                            dynamic particleSystem = component.ParticleSystem;
                            if (particleSystem != null)
                            {

                                foreach (dynamic emitter in particleSystem.Emitters)
                                {
                                    // Lifetime changed from: float (ParticleMinLifetime), float (ParticleMaxLifetime) -> Vector2 (ParticleLifetime)
                                    dynamic lifetime = new DynamicYamlMapping(new YamlMappingNode());
                                    lifetime.AddChild("X", emitter.ParticleMinLifetime);
                                    lifetime.AddChild("Y", emitter.ParticleMaxLifetime);

                                    emitter.AddChild("ParticleLifetime", lifetime);

                                    emitter.RemoveChild("ParticleMinLifetime");
                                    emitter.RemoveChild("ParticleMaxLifetime");

                                    // Initializers
                                    foreach (dynamic initializer in emitter.Initializers)
                                    {
                                        var initializerTag = initializer.Node.Tag;
                                        if (initializerTag == "!InitialRotationSeed")
                                        {
                                            dynamic angle = new DynamicYamlMapping(new YamlMappingNode());
                                            angle.AddChild("X", initializer.AngularRotationMin);
                                            angle.AddChild("Y", initializer.AngularRotationMax);

                                            initializer.AddChild("AngularRotation", angle);

                                            initializer.RemoveChild("AngularRotationMin");
                                            initializer.RemoveChild("AngularRotationMax");

                                        }
                                    }

                                    // Updaters
                                    foreach (dynamic updater in emitter.Updaters)
                                    {
                                        var updaterTag = updater.Node.Tag;
                                        if (updaterTag == "!UpdaterCollider")
                                        {
                                            var isSolid = (bool)updater.IsSolid;

                                            updater.AddChild("IsHollow", !isSolid);

                                            updater.RemoveChild("IsSolid");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
Exemple #55
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                var proceduralType = asset.Type;

                if (proceduralType.Node.Tag == "!CapsuleProceduralModel" && proceduralType.Height != null)
                {
                    proceduralType.Length = 2f * (float)proceduralType.Height;
                    proceduralType.Height = DynamicYamlEmpty.Default;
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                dynamic newSource = new DynamicYamlMapping(new YamlMappingNode());

                var assetName = (asset.FontName != null) ? (string)asset.FontName : null;
                var assetSource = (asset.Source != null) ? (string)asset.Source : null;

                // First check if the asset has a valid source
                if (assetSource != null && !assetSource.IsNullOrEmpty() && !assetSource.Equals("null"))
                {
                    newSource.Node.Tag = "!FileFontProvider";
                    newSource.AddChild("Source", assetSource);
                }

                // Only if the asset doesn't have a valid source can it be a system font
                else
                if (assetName != null && !assetName.IsNullOrEmpty() && !assetName.Equals("null"))
                {
                    newSource.Node.Tag = "!SystemFontProvider";
                    newSource.AddChild("FontName", assetName);

                    if (asset.Style != null)
                    {
                        newSource.AddChild("Style", asset.Style);
                    }
                }



                asset.RemoveChild("FontName");
                asset.RemoveChild("Source");
                asset.RemoveChild("Style");

                asset.AddChild("FontSource", newSource);


                if (asset.FontType != null)
                {
                    var fontType = (string)asset.FontType;
                    asset.RemoveChild("FontType");

                    dynamic newType = new DynamicYamlMapping(new YamlMappingNode());

                    if (fontType.Equals("Dynamic"))
                    {
                        newType.Node.Tag = "!RuntimeRasterizedSpriteFontType";

                        if (asset.Size != null)
                            newType.AddChild("Size", asset.Size);

                        if (asset.AntiAlias != null)
                            newType.AddChild("AntiAlias", asset.AntiAlias);
                    }
                    else
                    if (fontType.Equals("SDF"))
                    {
                        newType.Node.Tag = "!SignedDistanceFieldSpriteFontType";

                        if (asset.Size != null)
                            newType.AddChild("Size", asset.Size);

                        if (asset.CharacterSet != null)
                            newType.AddChild("CharacterSet", asset.CharacterSet);

                        if (asset.CharacterRegions != null)
                            newType.AddChild("CharacterRegions", asset.CharacterRegions);
                    }
                    else
                    {
                        newType.Node.Tag = "!OfflineRasterizedSpriteFontType";

                        if (asset.Size != null)
                            newType.AddChild("Size", asset.Size);

                        if (asset.CharacterSet != null)
                            newType.AddChild("CharacterSet", asset.CharacterSet);

                        if (asset.CharacterRegions != null)
                            newType.AddChild("CharacterRegions", asset.CharacterRegions);

                        if (asset.AntiAlias != null)
                            newType.AddChild("AntiAlias", asset.AntiAlias);

                        if (asset.IsPremultiplied != null)
                            newType.AddChild("IsPremultiplied", asset.IsPremultiplied);
                    }

                    asset.AddChild("FontType", newType);
                }

                asset.RemoveChild("IsPremultiplied");
                asset.RemoveChild("AntiAlias");
                asset.RemoveChild("UseKerning");
                asset.RemoveChild("Size");
                asset.RemoveChild("CharacterSet");
                asset.RemoveChild("CharacterRegions");
            }
Exemple #57
0
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                                                 OverrideUpgraderHint overrideHint)
            {
                var basePartMapping = new Dictionary <string, string>();

                if (asset["~BaseParts"] != null)
                {
                    foreach (dynamic basePart in asset["~BaseParts"])
                    {
                        try
                        {
                            var location = ((YamlScalarNode)basePart.Location.Node).Value;
                            var id       = ((YamlScalarNode)basePart.Asset.Id.Node).Value;
                            var assetUrl = $"{id}:{location}";

                            foreach (dynamic part in basePart.Asset.Hierarchy.Parts)
                            {
                                try
                                {
                                    var partId = ((YamlScalarNode)part.UIElement.Id.Node).Value;
                                    basePartMapping[partId] = assetUrl;
                                }
                                catch (Exception e)
                                {
                                    e.Ignore();
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            e.Ignore();
                        }
                    }
                    asset["~BaseParts"] = DynamicYamlEmpty.Default;
                }
                var uiElements = (DynamicYamlArray)asset.Hierarchy.Parts;

                foreach (dynamic uiDesign in uiElements)
                {
                    if (uiDesign.BaseId != null)
                    {
                        try
                        {
                            var    baseId         = ((YamlScalarNode)uiDesign.BaseId.Node).Value;
                            var    baseInstanceId = ((YamlScalarNode)uiDesign.BasePartInstanceId.Node).Value;
                            string assetUrl;
                            if (basePartMapping.TryGetValue(baseId, out assetUrl))
                            {
                                var baseNode = (dynamic)(new DynamicYamlMapping(new YamlMappingNode()));
                                baseNode.BasePartAsset = assetUrl;
                                baseNode.BasePartId    = baseId;
                                baseNode.InstanceId    = baseInstanceId;
                                uiDesign.Base          = baseNode;
                            }
                            uiDesign.BaseId             = DynamicYamlEmpty.Default;
                            uiDesign.BasePartInstanceId = DynamicYamlEmpty.Default;
                        }
                        catch (Exception e)
                        {
                            e.Ignore();
                        }
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                // TODO: Asset upgraders are called for BaseParts too, which might not be of the same type. Upgraders should be aware of this.
                if (asset.Node.Tag != "!SceneAsset")
                    return;

                var graphicsCompositor = asset.SceneSettings.GraphicsCompositor;

                if (graphicsCompositor != null && graphicsCompositor.Node.Tag == "!SceneGraphicsCompositorLayers")
                {
                    string modelEffect = null;

                    if (graphicsCompositor.Layers != null)
                    {
                        foreach (var layer in graphicsCompositor.Layers)
                        {
                            var layerModelEffect = RemoveModelEffectsFromLayer(layer);
                            if (modelEffect == null)
                            {
                                modelEffect = layerModelEffect;
                            }
                        }
                    }

                    if (graphicsCompositor.Master != null)
                    {
                        var layerModelEffect = RemoveModelEffectsFromLayer(graphicsCompositor.Master);
                        if (modelEffect == null)
                        {
                            modelEffect = layerModelEffect;
                        }
                    }

                    if (modelEffect != null)
                    {
                        graphicsCompositor.ModelEffect = modelEffect;
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint)
            {
                if (asset.ColliderShapes == null)
                {
                    return;
                }

                foreach (var colliderShape in asset.ColliderShapes)
                {
                    if (colliderShape.Node.Tag == "!Box2DColliderShapeDesc")
                    {
                        var size = 2f * DynamicYamlExtensions.ConvertTo <Vector2>(colliderShape.HalfExtent);
                        colliderShape.Size       = DynamicYamlExtensions.ConvertFrom(size);
                        colliderShape.HalfExtent = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!BoxColliderShapeDesc")
                    {
                        var size = 2f * DynamicYamlExtensions.ConvertTo <Vector3>(colliderShape.HalfExtents);
                        colliderShape.Size        = DynamicYamlExtensions.ConvertFrom(size);
                        colliderShape.HalfExtents = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!CapsuleColliderShapeDesc" || colliderShape.Node.Tag == "!CylinderColliderShapeDesc")
                    {
                        var upVector = DynamicYamlExtensions.ConvertTo <Vector3>(colliderShape.UpAxis);
                        if (upVector == Vector3.UnitX)
                        {
                            colliderShape.Orientation = ShapeOrientation.UpX;
                        }
                        if (upVector == Vector3.UnitZ)
                        {
                            colliderShape.Orientation = ShapeOrientation.UpZ;
                        }

                        colliderShape.UpAxis = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!CapsuleColliderShapeDesc" && colliderShape.Height != null)
                    {
                        colliderShape.Length = 2f * (float)colliderShape.Height;
                        colliderShape.Height = DynamicYamlEmpty.Default;
                    }
                    if (colliderShape.Node.Tag == "!CylinderColliderShapeDesc")
                    {
                        colliderShape.Radius      = (float)colliderShape.HalfExtents.X;
                        colliderShape.Height      = 2f * (float)colliderShape.HalfExtents.Y;
                        colliderShape.HalfExtents = DynamicYamlEmpty.Default;
                    }
                }
            }
            protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile,
                OverrideUpgraderHint overrideHint)
            {
                if (asset.FontType == null)
                    return;

                if (asset.FontType.Size == null)
                {
                    //  It is possible our font type has the default size of 16, which translates to 21.33333 in pixel size
                    asset.FontType.AddChild("Size", 21.33333);
                    return;
                }

                var newSize = ((float)asset.FontType.Size) * 1.3333333f;

                asset.FontType.RemoveChild("Size");

                asset.FontType.AddChild("Size", newSize);
            }