コード例 #1
0
        // TODO support gradients
        private static InitialColor ConvertMinMaxGradient(UnityEngine.ParticleSystem.MinMaxGradient gradient)
        {
            switch (gradient.mode)
            {
            case ParticleSystemGradientMode.Color:
            {
                float4 color = new float4(gradient.color.r, gradient.color.g, gradient.color.b, gradient.color.a);
                return(new InitialColor {
                        ColorMin = color, ColorMax = color
                    });
            }

            case ParticleSystemGradientMode.TwoColors:
                return(new InitialColor
                {
                    ColorMin = new float4(gradient.colorMin.r, gradient.colorMin.g, gradient.colorMin.b, gradient.colorMin.a),
                    ColorMax = new float4(gradient.colorMax.r, gradient.colorMax.g, gradient.colorMax.b, gradient.colorMax.a)
                });

            case ParticleSystemGradientMode.Gradient:
            case ParticleSystemGradientMode.TwoGradients:
            case ParticleSystemGradientMode.RandomColor:
            {
                UnityEngine.Debug.LogWarning("ParticleSystemGradientMode " + nameof(gradient.mode) + " not supported.");
                float4 defaultColor = new float4(1);
                return(new InitialColor {
                        ColorMin = defaultColor, ColorMax = defaultColor
                    });
            }

            default:
                throw new System.ArgumentOutOfRangeException(nameof(gradient.mode), gradient.mode, null);
            }
        }
コード例 #2
0
        static int _m_GetColor(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


            UnityEngine.ParticleSystem.CustomDataModule __cl_gen_to_be_invoked; translator.Get(L, 1, out __cl_gen_to_be_invoked);


            try {
                {
                    UnityEngine.ParticleSystemCustomData stream; translator.Get(L, 2, out stream);

                    UnityEngine.ParticleSystem.MinMaxGradient __cl_gen_ret = __cl_gen_to_be_invoked.GetColor(stream);
                    translator.Push(L, __cl_gen_ret);


                    translator.Update(L, 1, __cl_gen_to_be_invoked);


                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
コード例 #3
0
    public void ReplaceParticleFXStartColor(UnityEngine.ParticleSystem.MinMaxGradient newValue)
    {
        var index     = GameComponentsLookup.ParticleFXStartColor;
        var component = (ParticleFXStartColorComponent)CreateComponent(index, typeof(ParticleFXStartColorComponent));

        component.Value = newValue;
        ReplaceComponent(index, component);
    }
        static int __CreateInstance(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

            try {
                if (LuaAPI.lua_gettop(L) == 2 && translator.Assignable <UnityEngine.Color>(L, 2))
                {
                    UnityEngine.Color color; translator.Get(L, 2, out color);

                    UnityEngine.ParticleSystem.MinMaxGradient __cl_gen_ret = new UnityEngine.ParticleSystem.MinMaxGradient(color);
                    translator.Push(L, __cl_gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 2 && translator.Assignable <UnityEngine.Gradient>(L, 2))
                {
                    UnityEngine.Gradient gradient = (UnityEngine.Gradient)translator.GetObject(L, 2, typeof(UnityEngine.Gradient));

                    UnityEngine.ParticleSystem.MinMaxGradient __cl_gen_ret = new UnityEngine.ParticleSystem.MinMaxGradient(gradient);
                    translator.Push(L, __cl_gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <UnityEngine.Color>(L, 2) && translator.Assignable <UnityEngine.Color>(L, 3))
                {
                    UnityEngine.Color min; translator.Get(L, 2, out min);
                    UnityEngine.Color max; translator.Get(L, 3, out max);

                    UnityEngine.ParticleSystem.MinMaxGradient __cl_gen_ret = new UnityEngine.ParticleSystem.MinMaxGradient(min, max);
                    translator.Push(L, __cl_gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <UnityEngine.Gradient>(L, 2) && translator.Assignable <UnityEngine.Gradient>(L, 3))
                {
                    UnityEngine.Gradient min = (UnityEngine.Gradient)translator.GetObject(L, 2, typeof(UnityEngine.Gradient));
                    UnityEngine.Gradient max = (UnityEngine.Gradient)translator.GetObject(L, 3, typeof(UnityEngine.Gradient));

                    UnityEngine.ParticleSystem.MinMaxGradient __cl_gen_ret = new UnityEngine.ParticleSystem.MinMaxGradient(min, max);
                    translator.Push(L, __cl_gen_ret);

                    return(1);
                }

                if (LuaAPI.lua_gettop(L) == 1)
                {
                    translator.Push(L, default(UnityEngine.ParticleSystem.MinMaxGradient));
                    return(1);
                }
            }
            catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
            return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.ParticleSystem.MinMaxGradient constructor!"));
        }
コード例 #5
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.MinMaxGradient minMaxGradient = (UnityEngine.ParticleSystem.MinMaxGradient)value;
     writer.WriteProperty("mode", minMaxGradient.mode);
     writer.WriteProperty("gradientMax", minMaxGradient.gradientMax);
     writer.WriteProperty("gradientMin", minMaxGradient.gradientMin);
     writer.WriteProperty("colorMax", minMaxGradient.colorMax);
     writer.WriteProperty("colorMin", minMaxGradient.colorMin);
     writer.WriteProperty("color", minMaxGradient.color);
     writer.WriteProperty("gradient", minMaxGradient.gradient);
 }
コード例 #6
0
 protected override void GetDependencies(System.Collections.Generic.Dictionary <long, UnityEngine.Object> dependencies, object obj)
 {
     base.GetDependencies(dependencies, obj);
     if (obj == null)
     {
         return;
     }
     UnityEngine.ParticleSystem.MinMaxGradient o = (UnityEngine.ParticleSystem.MinMaxGradient)obj;
     GetDependencies(gradientMax, o.gradientMax, dependencies);
     GetDependencies(gradientMin, o.gradientMin, dependencies);
     GetDependencies(gradient, o.gradient, dependencies);
 }
コード例 #7
0
        static void WriteBackInstance(ILRuntime.Runtime.Enviorment.AppDomain __domain, StackObject *ptr_of_this_method, IList <object> __mStack, ref UnityEngine.ParticleSystem.MinMaxGradient instance_of_this_method)
        {
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            switch (ptr_of_this_method->ObjectType)
            {
            case ObjectTypes.Object:
            {
                __mStack[ptr_of_this_method->Value] = instance_of_this_method;
            }
            break;

            case ObjectTypes.FieldReference:
            {
                var ___obj = __mStack[ptr_of_this_method->Value];
                if (___obj is ILTypeInstance)
                {
                    ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    var t = __domain.GetType(___obj.GetType()) as CLRType;
                    t.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.StaticFieldReference:
            {
                var t = __domain.GetType(ptr_of_this_method->Value);
                if (t is ILType)
                {
                    ((ILType)t).StaticInstance[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    ((CLRType)t).SetStaticFieldValue(ptr_of_this_method->ValueLow, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.ArrayReference:
            {
                var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.ParticleSystem.MinMaxGradient[];
                instance_of_arrayReference[ptr_of_this_method->ValueLow] = instance_of_this_method;
            }
            break;
            }
        }
コード例 #8
0
 public override void ReadFrom(object obj)
 {
     base.ReadFrom(obj);
     if (obj == null)
     {
         return;
     }
     UnityEngine.ParticleSystem.MinMaxGradient o = (UnityEngine.ParticleSystem.MinMaxGradient)obj;
     mode        = (uint)o.mode;
     gradientMax = Read(gradientMax, o.gradientMax);
     gradientMin = Read(gradientMin, o.gradientMin);
     colorMax    = o.colorMax;
     colorMin    = o.colorMin;
     color       = o.color;
     gradient    = Read(gradient, o.gradient);
 }
コード例 #9
0
 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.MinMaxGradient o = (UnityEngine.ParticleSystem.MinMaxGradient)obj;
     o.mode        = (UnityEngine.ParticleSystemGradientMode)mode;
     o.gradientMax = Write(o.gradientMax, gradientMax, objects);
     o.gradientMin = Write(o.gradientMin, gradientMin, objects);
     o.colorMax    = colorMax;
     o.colorMin    = colorMin;
     o.color       = color;
     o.gradient    = Write(o.gradient, gradient, objects);
     return(o);
 }
コード例 #10
0
        public override object Read <T>(ES3Reader reader)
        {
            var    instance = new UnityEngine.ParticleSystem.MinMaxGradient();
            string propertyName;

            while ((propertyName = reader.ReadPropertyName()) != null)
            {
                switch (propertyName)
                {
                case "mode":
                    instance.mode = reader.Read <UnityEngine.ParticleSystemGradientMode>();
                    break;

                case "gradientMax":
                    instance.gradientMax = reader.Read <UnityEngine.Gradient>(ES3Type_Gradient.Instance);
                    break;

                case "gradientMin":
                    instance.gradientMin = reader.Read <UnityEngine.Gradient>(ES3Type_Gradient.Instance);
                    break;

                case "colorMax":
                    instance.colorMax = reader.Read <UnityEngine.Color>(ES3Type_Color.Instance);
                    break;

                case "colorMin":
                    instance.colorMin = reader.Read <UnityEngine.Color>(ES3Type_Color.Instance);
                    break;

                case "color":
                    instance.color = reader.Read <UnityEngine.Color>(ES3Type_Color.Instance);
                    break;

                case "gradient":
                    instance.gradient = reader.Read <UnityEngine.Gradient>(ES3Type_Gradient.Instance);
                    break;

                default:
                    reader.Skip();
                    break;
                }
            }
            return(instance);
        }
コード例 #11
0
        public void DeserializeBeforeRef(UABUnpacker unpacker, UABField field, ref object value, List <ISerializer> serializers)
        {
            var data = new Data();

            unpacker.Deserialize(data, field.fields, serializers);
            value = new UnityEngine.ParticleSystem.MinMaxGradient()
            {
                mode = data.mode,
                                #if UNITY_5_5_OR_NEWER
                color = data.color,
                                #endif
                colorMin = data.colorMin,
                colorMax = data.colorMax,
                                #if UNITY_5_5_OR_NEWER
                gradient = data.gradient,
                                #endif
                gradientMin = data.gradientMin,
                gradientMax = data.gradientMax,
            };
        }
コード例 #12
0
        static StackObject *Ctor_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.Color @color = (UnityEngine.Color) typeof(UnityEngine.Color).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);


            var result_of_this_method = new UnityEngine.ParticleSystem.MinMaxGradient(@color);

            if (!isNewObj)
            {
                __ret--;
                WriteBackInstance(__domain, __ret, __mStack, ref result_of_this_method);
                return(__ret);
            }

            return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
        }
コード例 #13
0
        static StackObject *set_startColor_2(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.ParticleSystem.MinMaxGradient @value = (UnityEngine.ParticleSystem.MinMaxGradient) typeof(UnityEngine.ParticleSystem.MinMaxGradient).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            UnityEngine.ParticleSystem.MainModule instance_of_this_method = (UnityEngine.ParticleSystem.MainModule) typeof(UnityEngine.ParticleSystem.MainModule).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));

            instance_of_this_method.startColor = value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);

            __intp.Free(ptr_of_this_method);
            return(__ret);
        }
コード例 #14
0
        /// <summary>
        /// Read the data using the reader.
        /// </summary>
        /// <param name="reader">Reader.</param>
        public override object Read(ISaveGameReader reader)
        {
            UnityEngine.ParticleSystem.MinMaxGradient minMaxGradient = new UnityEngine.ParticleSystem.MinMaxGradient();
            foreach (string property in reader.Properties)
            {
                switch (property)
                {
                case "mode":
                    minMaxGradient.mode = reader.ReadProperty <UnityEngine.ParticleSystemGradientMode> ();
                    break;

                case "gradientMax":
                    minMaxGradient.gradientMax = reader.ReadProperty <UnityEngine.Gradient> ();
                    break;

                case "gradientMin":
                    minMaxGradient.gradientMin = reader.ReadProperty <UnityEngine.Gradient> ();
                    break;

                case "colorMax":
                    minMaxGradient.colorMax = reader.ReadProperty <UnityEngine.Color> ();
                    break;

                case "colorMin":
                    minMaxGradient.colorMin = reader.ReadProperty <UnityEngine.Color> ();
                    break;

                case "color":
                    minMaxGradient.color = reader.ReadProperty <UnityEngine.Color> ();
                    break;

                case "gradient":
                    minMaxGradient.gradient = reader.ReadProperty <UnityEngine.Gradient> ();
                    break;
                }
            }
            return(minMaxGradient);
        }