protected override void GetDependencies(System.Collections.Generic.Dictionary <long, UnityEngine.Object> dependencies, object obj)
 {
     base.GetDependencies(dependencies, obj);
     if (obj == null)
     {
         return;
     }
     UnityEngine.ParticleSystem.ShapeModule o = (UnityEngine.ParticleSystem.ShapeModule)obj;
     GetDependencies(radiusSpeed, o.radiusSpeed, dependencies);
     AddDependency(o.mesh, dependencies);
     AddDependency(o.meshRenderer, dependencies);
     AddDependency(o.skinnedMeshRenderer, dependencies);
     GetDependencies(arcSpeed, o.arcSpeed, dependencies);
 }
Example #2
0
        /// <summary>
        /// Write the specified value using the writer.
        /// </summary>
        /// <param name="value">Value.</param>
        /// <param name="writer">Writer.</param>
        public override void Write(object value, ISaveGameWriter writer)
        {
            UnityEngine.ParticleSystem.ShapeModule shapeModule = (UnityEngine.ParticleSystem.ShapeModule)value;
            writer.WriteProperty("enabled", shapeModule.enabled);
            writer.WriteProperty("shapeType", shapeModule.shapeType);
            writer.WriteProperty("randomDirectionAmount", shapeModule.randomDirectionAmount);
            writer.WriteProperty("sphericalDirectionAmount", shapeModule.sphericalDirectionAmount);
#if UNITY_2017_1_OR_NEWER
            writer.WriteProperty("randomPositionAmount", shapeModule.randomPositionAmount);
#endif
            writer.WriteProperty("alignToDirection", shapeModule.alignToDirection);
            writer.WriteProperty("radius", shapeModule.radius);
            writer.WriteProperty("radiusMode", shapeModule.radiusMode);
            writer.WriteProperty("radiusSpread", shapeModule.radiusSpread);
            writer.WriteProperty("radiusSpeed", shapeModule.radiusSpeed);
            writer.WriteProperty("radiusSpeedMultiplier", shapeModule.radiusSpeedMultiplier);
#if UNITY_2017_1_OR_NEWER
            writer.WriteProperty("radiusThickness", shapeModule.radiusThickness);
#endif
            writer.WriteProperty("angle", shapeModule.angle);
            writer.WriteProperty("length", shapeModule.length);
#if UNITY_2017_1_OR_NEWER
            writer.WriteProperty("boxThickness", shapeModule.boxThickness);
#endif
            writer.WriteProperty("meshShapeType", shapeModule.meshShapeType);
            writer.WriteProperty("mesh", shapeModule.mesh);
            writer.WriteProperty("meshRenderer", shapeModule.meshRenderer);
            writer.WriteProperty("skinnedMeshRenderer", shapeModule.skinnedMeshRenderer);
            writer.WriteProperty("useMeshMaterialIndex", shapeModule.useMeshMaterialIndex);
            writer.WriteProperty("meshMaterialIndex", shapeModule.meshMaterialIndex);
            writer.WriteProperty("useMeshColors", shapeModule.useMeshColors);
            writer.WriteProperty("normalOffset", shapeModule.normalOffset);
            writer.WriteProperty("arc", shapeModule.arc);
            writer.WriteProperty("arcMode", shapeModule.arcMode);
            writer.WriteProperty("arcSpread", shapeModule.arcSpread);
            writer.WriteProperty("arcSpeed", shapeModule.arcSpeed);
            writer.WriteProperty("arcSpeedMultiplier", shapeModule.arcSpeedMultiplier);
#if UNITY_2017_1_OR_NEWER
            writer.WriteProperty("donutRadius", shapeModule.donutRadius);
            writer.WriteProperty("position", shapeModule.position);
            writer.WriteProperty("rotation", shapeModule.rotation);
            writer.WriteProperty("scale", shapeModule.scale);
#endif
        }
 public override object WriteTo(object obj, System.Collections.Generic.Dictionary <long, UnityEngine.Object> objects)
 {
     obj = base.WriteTo(obj, objects);
     if (obj == null)
     {
         return(null);
     }
     UnityEngine.ParticleSystem.ShapeModule o = (UnityEngine.ParticleSystem.ShapeModule)obj;
     o.enabled                  = enabled;
     o.shapeType                = (UnityEngine.ParticleSystemShapeType)shapeType;
     o.randomDirectionAmount    = randomDirectionAmount;
     o.sphericalDirectionAmount = sphericalDirectionAmount;
     o.alignToDirection         = alignToDirection;
     o.radius                = radius;
     o.radiusMode            = (UnityEngine.ParticleSystemShapeMultiModeValue)radiusMode;
     o.radiusSpread          = radiusSpread;
     o.radiusSpeed           = Write(o.radiusSpeed, radiusSpeed, objects);
     o.radiusSpeedMultiplier = radiusSpeedMultiplier;
     o.angle                = angle;
     o.length               = length;
     o.scale                = box;
     o.meshShapeType        = (UnityEngine.ParticleSystemMeshShapeType)meshShapeType;
     o.mesh                 = (UnityEngine.Mesh)objects.Get(mesh);
     o.meshRenderer         = (UnityEngine.MeshRenderer)objects.Get(meshRenderer);
     o.skinnedMeshRenderer  = (UnityEngine.SkinnedMeshRenderer)objects.Get(skinnedMeshRenderer);
     o.useMeshMaterialIndex = useMeshMaterialIndex;
     o.meshMaterialIndex    = meshMaterialIndex;
     o.useMeshColors        = useMeshColors;
     o.normalOffset         = normalOffset;
     //o.meshScale = meshScale;
     o.scale              = scale;
     o.arc                = arc;
     o.arcMode            = (UnityEngine.ParticleSystemShapeMultiModeValue)arcMode;
     o.arcSpread          = arcSpread;
     o.arcSpeed           = Write(o.arcSpeed, arcSpeed, objects);
     o.arcSpeedMultiplier = arcSpeedMultiplier;
     return(o);
 }
 public override void ReadFrom(object obj)
 {
     base.ReadFrom(obj);
     if (obj == null)
     {
         return;
     }
     UnityEngine.ParticleSystem.ShapeModule o = (UnityEngine.ParticleSystem.ShapeModule)obj;
     enabled                  = o.enabled;
     shapeType                = (uint)o.shapeType;
     randomDirectionAmount    = o.randomDirectionAmount;
     sphericalDirectionAmount = o.sphericalDirectionAmount;
     alignToDirection         = o.alignToDirection;
     radius                = o.radius;
     radiusMode            = (uint)o.radiusMode;
     radiusSpread          = o.radiusSpread;
     radiusSpeed           = Read(radiusSpeed, o.radiusSpeed);
     radiusSpeedMultiplier = o.radiusSpeedMultiplier;
     angle                = o.angle;
     length               = o.length;
     box                  = o.scale;
     meshShapeType        = (uint)o.meshShapeType;
     mesh                 = o.mesh.GetMappedInstanceID();
     meshRenderer         = o.meshRenderer.GetMappedInstanceID();
     skinnedMeshRenderer  = o.skinnedMeshRenderer.GetMappedInstanceID();
     useMeshMaterialIndex = o.useMeshMaterialIndex;
     meshMaterialIndex    = o.meshMaterialIndex;
     useMeshColors        = o.useMeshColors;
     normalOffset         = o.normalOffset;
     //meshScale = o.meshScale;
     scale              = o.scale;
     arc                = o.arc;
     arcMode            = (uint)o.arcMode;
     arcSpread          = o.arcSpread;
     arcSpeed           = Read(arcSpeed, o.arcSpeed);
     arcSpeedMultiplier = o.arcSpeedMultiplier;
 }
Example #5
0
        /// <summary>
        /// Read the data using the reader.
        /// </summary>
        /// <param name="reader">Reader.</param>
        public override object Read(ISaveGameReader reader)
        {
            UnityEngine.ParticleSystem.ShapeModule shapeModule = new UnityEngine.ParticleSystem.ShapeModule();
            foreach (string property in reader.Properties)
            {
                switch (property)
                {
                case "enabled":
                    shapeModule.enabled = reader.ReadProperty <System.Boolean>();
                    break;

                case "shapeType":
                    shapeModule.shapeType = reader.ReadProperty <UnityEngine.ParticleSystemShapeType>();
                    break;

                case "randomDirectionAmount":
                    shapeModule.randomDirectionAmount = reader.ReadProperty <System.Single>();
                    break;

                case "sphericalDirectionAmount":
                    shapeModule.sphericalDirectionAmount = reader.ReadProperty <System.Single>();
                    break;

                case "randomPositionAmount":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.randomPositionAmount = reader.ReadProperty <System.Single>();
#else
                    reader.ReadProperty <System.Single>();
#endif
                    break;

                case "alignToDirection":
                    shapeModule.alignToDirection = reader.ReadProperty <System.Boolean>();
                    break;

                case "radius":
                    shapeModule.radius = reader.ReadProperty <System.Single>();
                    break;

                case "radiusMode":
                    shapeModule.radiusMode = reader.ReadProperty <UnityEngine.ParticleSystemShapeMultiModeValue>();
                    break;

                case "radiusSpread":
                    shapeModule.radiusSpread = reader.ReadProperty <System.Single>();
                    break;

                case "radiusSpeed":
                    shapeModule.radiusSpeed = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "radiusSpeedMultiplier":
                    shapeModule.radiusSpeedMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "radiusThickness":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.radiusThickness = reader.ReadProperty <System.Single>();
#else
                    reader.ReadProperty <System.Single>();
#endif
                    break;

                case "angle":
                    shapeModule.angle = reader.ReadProperty <System.Single>();
                    break;

                case "length":
                    shapeModule.length = reader.ReadProperty <System.Single>();
                    break;

                case "boxThickness":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.boxThickness = reader.ReadProperty <UnityEngine.Vector3>();
#else
                    reader.ReadProperty <UnityEngine.Vector3>();
#endif
                    break;

                case "meshShapeType":
                    shapeModule.meshShapeType = reader.ReadProperty <UnityEngine.ParticleSystemMeshShapeType>();
                    break;

                case "mesh":
                    if (shapeModule.mesh == null)
                    {
                        shapeModule.mesh = reader.ReadProperty <UnityEngine.Mesh>();
                    }
                    else
                    {
                        reader.ReadIntoProperty <UnityEngine.Mesh>(shapeModule.mesh);
                    }
                    break;

                case "meshRenderer":
                    if (shapeModule.meshRenderer == null)
                    {
                        shapeModule.meshRenderer = reader.ReadProperty <UnityEngine.MeshRenderer>();
                    }
                    else
                    {
                        reader.ReadIntoProperty <UnityEngine.MeshRenderer>(shapeModule.meshRenderer);
                    }
                    break;

                case "skinnedMeshRenderer":
                    if (shapeModule.skinnedMeshRenderer == null)
                    {
                        shapeModule.skinnedMeshRenderer = reader.ReadProperty <UnityEngine.SkinnedMeshRenderer>();
                    }
                    else
                    {
                        reader.ReadIntoProperty <UnityEngine.SkinnedMeshRenderer>(shapeModule.skinnedMeshRenderer);
                    }
                    break;

                case "useMeshMaterialIndex":
                    shapeModule.useMeshMaterialIndex = reader.ReadProperty <System.Boolean>();
                    break;

                case "meshMaterialIndex":
                    shapeModule.meshMaterialIndex = reader.ReadProperty <System.Int32>();
                    break;

                case "useMeshColors":
                    shapeModule.useMeshColors = reader.ReadProperty <System.Boolean>();
                    break;

                case "normalOffset":
                    shapeModule.normalOffset = reader.ReadProperty <System.Single>();
                    break;

                case "arc":
                    shapeModule.arc = reader.ReadProperty <System.Single>();
                    break;

                case "arcMode":
                    shapeModule.arcMode = reader.ReadProperty <UnityEngine.ParticleSystemShapeMultiModeValue>();
                    break;

                case "arcSpread":
                    shapeModule.arcSpread = reader.ReadProperty <System.Single>();
                    break;

                case "arcSpeed":
                    shapeModule.arcSpeed = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "arcSpeedMultiplier":
                    shapeModule.arcSpeedMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "donutRadius":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.donutRadius = reader.ReadProperty <System.Single>();
#else
                    reader.ReadProperty <System.Single>();
#endif
                    break;

                case "position":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.position = reader.ReadProperty <UnityEngine.Vector3>();
#else
                    reader.ReadProperty <UnityEngine.Vector3>();
#endif
                    break;

                case "rotation":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.rotation = reader.ReadProperty <UnityEngine.Vector3>();
#else
                    reader.ReadProperty <UnityEngine.Vector3>();
#endif
                    break;

                case "scale":
#if UNITY_2017_1_OR_NEWER
                    shapeModule.scale = reader.ReadProperty <UnityEngine.Vector3>();
#else
                    reader.ReadProperty <UnityEngine.Vector3>();
#endif
                    break;
                }
            }
            return(shapeModule);
        }