public override void load(string save) { string[] saveStrings = save.Split(DataSimulator.DS_SAVELOAD_SEPERATOR); actionType = (DSIntCalType)int.Parse(saveStrings [4]); targetAString = saveStrings [5]; if (!string.IsNullOrEmpty(targetAString)) { string[] splitTargetAStrings = targetAString.Split('/'); targetA = (DSInt)ds.datas.Find(x => x.name.Equals(splitTargetAStrings [0])).fields.Find(x => x.name.Equals(splitTargetAStrings [1])); } withValue = bool.Parse(saveStrings [6]); if (withValue) { input = int.Parse(saveStrings [7]); } else { targetBString = saveStrings [7]; if (!string.IsNullOrEmpty(targetBString)) { string[] splitTargetBStrings = targetBString.Split('/'); targetB = (DSInt)ds.datas.Find(x => x.name.Equals(splitTargetBStrings [0])).fields.Find(x => x.name.Equals(splitTargetBStrings [1])); } } resultString = saveStrings [8]; if (!string.IsNullOrEmpty(resultString)) { string[] splitResultStrings = resultString.Split('/'); result = (DSInt)ds.datas.Find(x => x.name.Equals(splitResultStrings [0])).fields.Find(x => x.name.Equals(splitResultStrings [1])); } }
public override void draw() { drawInOutPoint(); titleRect = rect; titleRect.height = 20f; extendedRect = rect; extendedRect.y = rect.y + titleRect.height - 1f; extendedRect.height = rect.height - titleRect.height; GUILayout.BeginArea(titleRect, title, GUI.skin.box); GUILayout.EndArea(); GUILayout.BeginArea(extendedRect, GUI.skin.box); GUILayout.BeginVertical(); GUILayout.Space(5f); GUILayout.BeginHorizontal(); GUILayout.Label("Type:", GUILayout.Width(60f)); actionType = (DSIntCalType)EditorGUILayout.EnumPopup(actionType); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Target A:", GUILayout.Width(60f)); if (GUILayout.Button(targetAString)) { chooseTargetAWithDropDown(); } GUILayout.EndHorizontal(); switch (actionType) { case DSIntCalType.Add: case DSIntCalType.Subtract: case DSIntCalType.Multiply: case DSIntCalType.Divide: case DSIntCalType.Mod: case DSIntCalType.Power: case DSIntCalType.Max: case DSIntCalType.Min: GUILayout.BeginHorizontal(); GUILayout.Label("Cal. With Value", GUILayout.Width(120f)); withValue = EditorGUILayout.Toggle(withValue); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (withValue) { GUILayout.Label("Value:", GUILayout.Width(60f)); input = EditorGUILayout.IntField(input); } else { GUILayout.Label("Target B:", GUILayout.Width(60f)); if (GUILayout.Button(targetBString)) { chooseTargetBWithDropDown(); } } GUILayout.EndHorizontal(); break; } switch (actionType) { case DSIntCalType.Add: case DSIntCalType.Subtract: case DSIntCalType.Multiply: case DSIntCalType.Divide: case DSIntCalType.Mod: case DSIntCalType.Power: case DSIntCalType.Max: case DSIntCalType.Min: case DSIntCalType.Absolute: GUILayout.BeginHorizontal(); GUILayout.Label("Result:", GUILayout.Width(60f)); if (GUILayout.Button(resultString)) { chooseResultWithDropDown(); } GUILayout.EndHorizontal(); break; } GUILayout.EndVertical(); GUILayout.EndArea(); }