Exemple #1
0
        public void Deserialize(IDictionary <string, object> dict)
        {
            try
            {
                root_effect.Deserialize(dict["root_effect"] as IDictionary <string, object>);

                //Generics = worthless at this point. Thanks unity!
                //Should probably redesign a better native format for unity, parsed from the hdf

                try
                {
                    pattern_definitions = parseDefinitionsDict <JsonSequenceAtom>(
                        dict["pattern_definitions"] as IDictionary <string, object>
                        );
                }
                catch (KeyNotFoundException e)
                {
#if UNITY_EDITOR
                    UnityEngine.Debug.LogException("In pats: " + e.Message + "\n");
#else
                    Console.WriteLine("[Error] Exception from pattern parsing: " + e.Message + "\n");
#endif
                }

                try
                {
                    sequence_definitions = parseDefinitionsDict <JsonEffectAtom>(
                        dict["sequence_definitions"] as IDictionary <string, object>
                        );
                }
                catch (KeyNotFoundException e)
                {
#if UNITY_EDITOR
                    UnityEngine.Debug.LogException("[Error] Exception from pattern parsing: " + e.Message + "\n");
#else
                    Console.WriteLine("[Error] Exception from pattern parsing: " + e.Message + "\n");
#endif
                }
                try
                {
                    experience_definitions = parseDefinitionsDict <JsonPatternAtom>(
                        dict["experience_definitions"] as IDictionary <string, object>
                        );
                }
                catch (KeyNotFoundException e)
                {
#if UNITY_EDITOR
                    UnityEngine.Debug.LogException("[Error] Exception from experience parsing: " + e.Message + "\n");
#else
                    Console.WriteLine("[Error] Exception from experience parsing: " + e.Message + "\n");
#endif
                }
            }
            catch (Exception e)
            {
                var exep = new HapticsAssetException("Couldn't parse the haptic asset", e);


#if UNITY_EDITOR
                Debug.LogException(exep);
#else
                Console.WriteLine(exep.Message);
#endif
            }
        }
Exemple #2
0
        public IDictionary <string, object> SerializeToDictionary()
        {
            IDictionary <string, object> dict = new Dictionary <string, object>();

            try
            {
                #region Root Effect
                if (root_effect != null)
                {
                    var result = root_effect.SerializeToDictionary();
                    if (result != null && result.Count > 0)
                    {
                        dict.Add("root_effect", result);
                    }
                }
                #endregion

                #region Sequences
                try
                {
                    IDictionary <string, object> output = encodeDefinitionsDict <JsonEffectAtom>(sequence_definitions);

                    if (output.Count > 0)
                    {
                        dict.Add("sequence_definitions", output);
                    }
                }
                catch (KeyNotFoundException e)
                {
                    Debug.LogError("In seqs: " + e.Message + "\n");
                }
                #endregion

                #region Patterns
                try
                {
                    //Console.WriteLine("Attempting to encode pattern definitions");
                    IDictionary <string, object> output = encodeDefinitionsDict <JsonSequenceAtom>(pattern_definitions);

                    if (output.Count > 0)
                    {
                        dict.Add("pattern_definitions", output);
                    }
                    //Console.WriteLine("pattern definitions: " + dict.Count);
                    foreach (var kvp in output)
                    {
                        Console.WriteLine(kvp.Key.ToString() + "   " + kvp.Value.ToString() + "\n");
                    }

                    //pattern_definitions = encodeDefinitionsDict<JsonSequenceAtom>(
                    //	dict["pattern_definitions"] as IDictionary<string, object>);
                }
                catch (KeyNotFoundException e)
                {
                    Debug.LogError("In pats: " + e.Message + "\n");
                }
                #endregion

                #region Experiences
                try
                {
                    IDictionary <string, object> output = encodeDefinitionsDict <JsonPatternAtom>(experience_definitions);

                    if (output.Count > 0)
                    {
                        dict.Add("experience_definitions", output);
                    }
                    //experience_definitions = parseDefinitionsDict<JsonPatternAtom>(
                    //	dict["experience_definitions"] as IDictionary<string, object>);
                }
                catch (KeyNotFoundException e)
                {
                    Debug.LogError("In exps: " + e.Message + "\n");
                }
                #endregion
            }

            #region Catch Exception
            catch (Exception e)
            {
                var exep = new HapticsAssetException("Couldn't parse the haptic asset", e);

#if UNITY_EDITOR
                Debug.LogException(exep);
#else
                Console.WriteLine("Failed to encode\n\t" + e.Message);
#endif
            }
            #endregion
            return(dict);
        }