2using System.Collections.Generic;
3using System.Globalization;
5using System.Runtime.Serialization;
17 private List<GameObject> inputs;
18 private Dictionary<string, bool> inputStatus;
19 internal int savedInputCount;
28 if (savedInputCount != 0)
35 inputs =
new List<GameObject>();
36 inputStatus =
new Dictionary<string, bool>();
48 inputStatus[id] =
true;
50 if (inputStatus.Where(i => i.Value ==
false).Count() == 0)
52 List<float> timeSpents =
new List<float>();
53 List<float> timeRecognition =
new List<float>();
54 List<float> timePenalty =
new List<float>();
56 foreach (var o
in inputs)
62 foreach (var connection
in connections)
67 var go = posAction.GetInputGO();
70 go.transform.localPosition = posAction.targetPosition;
71 go.transform.localEulerAngles = posAction.targetRotation;
74 timeSpents.Add(
action.spentTimeOnAction);
75 timeRecognition.Add(
action.recognitionTimeOnAction);
76 timePenalty.Add(
action.penaltyTime);
84 if (
sumAllAction()) spentTimeOnAction = timeSpents.Sum();
85 else spentTimeOnAction = timeSpents.Max();
87 recognitionTimeOnAction = timeSpents.Sum();
88 penaltyTime = timeSpents.Sum();
99 inputs =
new List<GameObject>();
100 inputStatus =
new Dictionary<string, bool>();
102 if (inputs.Count !=
int.Parse(
inputCount.text))
104 for (var i = inputs.Count - 1; i >
int.Parse(
inputCount.text) - 1; i--)
106 inputStatus.Remove(inputs[i].name);
110 for (var i = inputs.Count; i <
int.Parse(
inputCount.text); i++)
114 var chelperIn = GameObject.Find(
"CHelper_in").GetComponent<
Image>();
115 var img = go.GetComponent<
Image>();
116 img.sprite = chelperIn.sprite;
119 var chelperIn = GameObject.Find(
"CHelper_in").GetComponent<
Image>();
120 Sprite InSprite = Resources.Load(
"InPut.png") as Sprite;
121 Sprite InSpriteBlue = Resources.Load(
"InPut_blue.png") as Sprite;
122 var img = go.GetComponent<
Image>();
123 img.sprite = InSprite;
124 go.GetComponent<RectTransform>().sizeDelta =
new Vector2(30f,50f);
129 inputStatus.Add(go.name,
false);
132 var xPos =
inputParent.GetComponent<RectTransform>().localPosition.x;
133 var yPos =
inputParent.GetComponent<RectTransform>().localPosition.y;
134 var zPos =
inputParent.GetComponent<RectTransform>().localPosition.z;
135 xPos =
inputParent.GetComponent<RectTransform>().localPosition.x - 15.0f;
136 inputParent.GetComponent<RectTransform>().localPosition =
new Vector3(-115f,yPos, zPos);
137 GetComponent<RectTransform>().sizeDelta =
new Vector2(200, Mathf.Max(200, 100 + inputs.Count * 55));
145 foreach (var inPut
in inPuts)
148 foreach (var connection
in connections)
152 if (outConnections.Count() > 1)
168 var ci = CultureInfo.CurrentCulture;
169 var nfi = ci.NumberFormat;
175 taktTime =
float.Parse(value, ci);
179 Debug.LogWarning(
"not parsable number(?) in holdTime inputfield!");
189 foreach (var key
in inputStatus.Keys.ToList())
190 inputStatus[key] =
false;
193 public WaiterAction(SerializationInfo info, StreamingContext context) : base(info, context)
195 savedInputCount = info.GetInt32(
"inputCount");
196 foreach (var s
in info)
198 if (s.Name ==
"taktTime")
199 taktTime = (float)info.GetValue(
"taktTime", typeof(
float));
204 public new void GetObjectData(SerializationInfo info, StreamingContext context)
206 base.GetObjectData(info, context);
207 info.AddValue(
"inputCount", inputs.Count, typeof(
int));
208 info.AddValue(
"taktTime", taktTime, typeof(
float));
System.Drawing.Image Image
void RemoveInput(string id)
void TriggerOutput(string id)
List< GameObject > inPuts
List< GameObject > outPuts
void AddInput(GameObject go)
Connection[] GetConnectionsByEndPointId(string id)
ActionObject GetActionByInOut(string id)
static Controller Instance
override void Triggered(string id)
void onTaktTimeChanged(string value)
new void GetObjectData(SerializationInfo info, StreamingContext context)
new void RefreshTargetDisplay()
WaiterAction(SerializationInfo info, StreamingContext context)