Example #1
0
        public object Clone()
        {
            var result = new RuntimeEffect();

            result.Effect     = this.Effect;
            result.EffectData = (IEffectData)EffectData.Clone();
            return(result);
        }
        private IEffectData DeSerializeEffect(RuntimeEffect effect, string str)
        {
            if (effect == null)
            {
                return(null);
            }
            if (string.IsNullOrEmpty(str))
            {
                return(null);
            }

            byte[] bytes = Convert.FromBase64String(str);
            using (var stream = new MemoryStream(bytes)) {
                return((IEffectData)serializer.Deserialize(stream));
            }
        }
        private string SerializeEffect(RuntimeEffect effect)
        {
            if (effect == null)
            {
                return("");
            }
            if (effect.EffectData == null)
            {
                return("");
            }

            using (var stream = new MemoryStream()) {
                serializer.Serialize(stream, effect.EffectData);
                stream.Flush();
                return(Convert.ToBase64String(stream.ToArray()));
            }
        }
 public void Apply(RuntimeEffect r)
 {
     Effects.Add((RuntimeEffect)r.Clone());
 }