// Token: 0x0600015A RID: 346 RVA: 0x0000C33C File Offset: 0x0000A53C private static NodeData DeserializeNodeData(Dictionary <string, object> dict, Task task) { NodeData nodeData = new NodeData(); object obj; if (dict.TryGetValue("Offset", out obj)) { nodeData.Offset = JSONDeserialization.StringToVector2((string)obj); } if (dict.TryGetValue("FriendlyName", out obj)) { task.FriendlyName = (string)obj; } if (dict.TryGetValue("Comment", out obj)) { nodeData.Comment = (string)obj; } if (dict.TryGetValue("IsBreakpoint", out obj)) { nodeData.IsBreakpoint = Convert.ToBoolean(obj); } if (dict.TryGetValue("Collapsed", out obj)) { nodeData.Collapsed = Convert.ToBoolean(obj); } if (dict.TryGetValue("ColorIndex", out obj)) { nodeData.ColorIndex = Convert.ToInt32(obj); } if (dict.TryGetValue("WatchedFields", out obj)) { nodeData.WatchedFieldNames = new List <string>(); nodeData.WatchedFields = new List <FieldInfo>(); IList list = obj as IList; for (int i = 0; i < list.Count; i++) { FieldInfo field = task.GetType().GetField((string)list[i], BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { nodeData.WatchedFieldNames.Add(field.Name); nodeData.WatchedFields.Add(field); } } } return(nodeData); }
// Token: 0x0600015D RID: 349 RVA: 0x0000CB28 File Offset: 0x0000AD28 private static object ValueToObject(Task task, Type type, object obj, IVariableSource variableSource, List <UnityEngine.Object> unityObjects) { if (typeof(SharedVariable).IsAssignableFrom(type)) { SharedVariable sharedVariable = JSONDeserialization.DeserializeSharedVariable(obj as Dictionary <string, object>, variableSource, false, unityObjects); if (sharedVariable == null) { sharedVariable = (TaskUtility.CreateInstance(type) as SharedVariable); } return(sharedVariable); } if (type.Equals(typeof(UnityEngine.Object)) || type.IsSubclassOf(typeof(UnityEngine.Object))) { return(JSONDeserialization.IndexToUnityObject(Convert.ToInt32(obj), unityObjects)); } if (!type.IsPrimitive) { if (!type.Equals(typeof(string))) { goto IL_B0; } } try { return(Convert.ChangeType(obj, type)); } catch (Exception) { return(null); } IL_B0: if (type.IsSubclassOf(typeof(Enum))) { try { return(Enum.Parse(type, (string)obj)); } catch (Exception) { return(null); } } if (type.Equals(typeof(Vector2))) { return(JSONDeserialization.StringToVector2((string)obj)); } if (type.Equals(typeof(Vector3))) { return(JSONDeserialization.StringToVector3((string)obj)); } if (type.Equals(typeof(Vector4))) { return(JSONDeserialization.StringToVector4((string)obj)); } if (type.Equals(typeof(Quaternion))) { return(JSONDeserialization.StringToQuaternion((string)obj)); } if (type.Equals(typeof(Matrix4x4))) { return(JSONDeserialization.StringToMatrix4x4((string)obj)); } if (type.Equals(typeof(Color))) { return(JSONDeserialization.StringToColor((string)obj)); } if (type.Equals(typeof(Rect))) { return(JSONDeserialization.StringToRect((string)obj)); } if (type.Equals(typeof(LayerMask))) { return(JSONDeserialization.ValueToLayerMask(Convert.ToInt32(obj))); } if (type.Equals(typeof(AnimationCurve))) { return(JSONDeserialization.ValueToAnimationCurve((Dictionary <string, object>)obj)); } object obj2 = TaskUtility.CreateInstance(type); JSONDeserialization.DeserializeObject(task, obj2, obj as Dictionary <string, object>, variableSource, unityObjects); return(obj2); }