//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ private bool SetTriggerBIEdiText(Trigger trigger, int index, StringBuilder SB) { SB.Append("class _trigger_" + index.ToString() + "\r\n"); SB.Append("{\r\n"); SB.Append("\tobjectType=" + '"' + "trigger" + '"' + ";\r\n"); SB.Append("\tclass Arguments\r\n"); SB.Append("\t{\r\n"); SB.Append(string.Format("\t\tPOSITION={0}[{1}, {2}, {3}]{0};\r\n", '"', trigger.Position[0].ToString().Replace(',', '.'), trigger.Position[1].ToString().Replace(',', '.'), trigger.Position[2].ToString().Replace(',', '.'))); SB.Append(string.Format("\t\tTYPE={0}GUER G{0};\r\n", '"')); if (!ReferenceEquals(trigger.A, null)) { SB.Append(string.Format("\t\tA={0}{1}{0};\r\n", '"', trigger.A)); } if (!ReferenceEquals(trigger.B, null)) { SB.Append(string.Format("\t\tB={0}{1}{0};\r\n", '"', trigger.B)); } if (trigger.Rectangular) { SB.Append(string.Format("\t\tRECTANGULAR={0}true{0};\r\n", '"')); } if (!ReferenceEquals(trigger.ActivationBy, null)) { SB.Append(string.Format("\t\tACTIVATION_BY={0}{1}{0};\r\n", '"', trigger.ActivationBy)); } if (!ReferenceEquals(trigger.ActivationType, null)) { SB.Append(string.Format("\t\tACTIVATION_TYPE={0}{1}{0};\r\n", '"', trigger.ActivationType)); } if (trigger.Repeating) { SB.Append(string.Format("\t\tREPEATING={0}true{0};\r\n", '"')); } if (!ReferenceEquals(trigger.TimeoutMin, null)) { SB.Append(string.Format("\t\tTIMEOUT_MIN={0}{1}{0};\r\n", '"', trigger.TimeoutMin)); } if (!ReferenceEquals(trigger.TimeoutMid, null)) { SB.Append(string.Format("\t\tTIMEOUT_MID={0}{1}{0};\r\n", '"', trigger.TimeoutMid)); } if (!ReferenceEquals(trigger.TimeoutMax, null)) { SB.Append(string.Format("\t\tTIMEOUT_MAX={0}{1}{0};\r\n", '"', trigger.TimeoutMax)); } if (trigger.Interruptable) { SB.Append(string.Format("\t\tINTERRUPTABLE={0}true{0};\r\n", '"')); } if (!ReferenceEquals(trigger.Text, null)) { SB.Append(string.Format("\t\tTEXT={0}{1}{0};\r\n", '"', trigger.Text)); } if (!ReferenceEquals(trigger.Name, null)) { SB.Append(string.Format("\t\tNAME={0}{1}{0};\r\n", '"', trigger.Name)); } if (!ReferenceEquals(trigger.ExpCond, null)) { SB.Append(string.Format("\t\tEXP_COND={0}{1}{0};\r\n", '"', trigger.ExpCond)); } if (!ReferenceEquals(trigger.ExpActiv, null)) { SB.Append(string.Format("\t\tEXP_ACTIV={0}{1}{0};\r\n", '"', trigger.ExpActiv)); } if (!ReferenceEquals(trigger.ExpDesactiv, null)) { SB.Append(string.Format("\t\tEXP_DESACTIV={0}{1}{0};\r\n", '"', trigger.ExpDesactiv)); } if (!trigger.AssignedEffect.Dummy) { SetEffectBIEdiText(trigger.AssignedEffect, SB); } SB.Append("\t};\r\n"); SB.Append("};\r\n"); return(true); }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ private Trigger GetTrigger(string[] TriggerClassText) { Trigger CurrentTrigger = new Trigger(); for (int i = 0; i < TriggerClassText.Length; i++) { if (TriggerClassText[i].Split('=')[0].Equals("age", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.Age = TriggerClassText[i].Substring(5, TriggerClassText[i].Length - 7); } if (TriggerClassText[i].Split('=')[0].Equals("position[]", StringComparison.InvariantCultureIgnoreCase)) { var CurrentPosition = new double[3]; TriggerClassText[i] = TriggerClassText[i].Replace(" ", string.Empty); CurrentPosition[0] = Convert.ToDouble(TriggerClassText[i].Split(',')[0].Split('{')[1].Replace(".", ",")); CurrentPosition[2] = Convert.ToDouble(TriggerClassText[i].Split(',')[1].Replace(".", ",")); CurrentPosition[1] = Convert.ToDouble(TriggerClassText[i].Split(',')[2].Split('}')[0].Replace(".", ",")); CurrentTrigger.Position = CurrentPosition; } if (TriggerClassText[i].Split('=')[0].Equals("a", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.A = TriggerClassText[i].Split('=')[1].Split(';')[0]; } if (TriggerClassText[i].Split('=')[0].Equals("b", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.B = TriggerClassText[i].Split('=')[1].Split(';')[0]; } if (TriggerClassText[i].Split('=')[0].Equals("rectangular", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.Rectangular = true; } if (TriggerClassText[i].Split('=')[0].Equals("activationBy", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.ActivationBy = TriggerClassText[i].Substring(14, TriggerClassText[i].Length - 16); } if (TriggerClassText[i].Split('=')[0].Equals("activationType", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.ActivationType = TriggerClassText[i].Substring(16, TriggerClassText[i].Length - 18); } if (TriggerClassText[i].Split('=')[0].Equals("repeating", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.Repeating = true; } if (TriggerClassText[i].Split('=')[0].Equals("timeoutMin", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.TimeoutMin = TriggerClassText[i].Split('=')[1].Split(';')[0]; } if (TriggerClassText[i].Split('=')[0].Equals("timeoutMid", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.TimeoutMid = TriggerClassText[i].Split('=')[1].Split(';')[0]; } if (TriggerClassText[i].Split('=')[0].Equals("timeoutMax", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.TimeoutMax = TriggerClassText[i].Split('=')[1].Split(';')[0]; } if (TriggerClassText[i].Split('=')[0].Equals("text", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.Text = TriggerClassText[i].Substring(6, TriggerClassText[i].Length - 8); } if (TriggerClassText[i].Split('=')[0].Equals("name", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.Name = TriggerClassText[i].Substring(6, TriggerClassText[i].Length - 8); } if (TriggerClassText[i].Split('=')[0].Equals("expCond", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.ExpCond = TriggerClassText[i].Substring(9, TriggerClassText[i].Length - 11); } if (TriggerClassText[i].Split('=')[0].Equals("expActiv", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.ExpActiv = TriggerClassText[i].Substring(10, TriggerClassText[i].Length - 12); } if (TriggerClassText[i].Split('=')[0].Equals("class Effects", StringComparison.InvariantCultureIgnoreCase)) { CurrentTrigger.AssignedEffect = GetEffect(GetClassText(TriggerClassText, i + 1, "{", "}")); } } return(CurrentTrigger); }