public void LoadExistingConnections() { List <TriggerEffect> effectList = mThisTrigger.TriggerEffects.Effects; List <TriggerEffect> hitlist = new List <TriggerEffect>(); foreach (TriggerEffect e in effectList) { if (e.Type == TriggerSystemMain.mTriggerDefinitions.GetActivateEffectName()) { //Hide it... and load it as a line //mTriggerOutControlPoint. int targetTrigger = System.Convert.ToInt32(ParentTriggerNamespace.GetValues()[e.Parameter[0].ID].Value); TriggerControl targetC = mTriggerHost.GetTriggerControl(targetTrigger); //mEffectTrueControlPoint.GetTargets().Add(targetC.GetActivationPoint()); if (targetC == null) { CoreGlobals.getErrorManager().OnSimpleWarning("Error Remapping link to trigger " + targetTrigger.ToString()); hitlist.Add(e); } else { mEffectTrueControlPoint.GetTargets().Add(targetC.GetActivationPoint()); } continue; } if (e.Type == TriggerSystemMain.mTriggerDefinitions.GetDeactivateEffectName()) { int targetTrigger = System.Convert.ToInt32(ParentTriggerNamespace.GetValues()[e.Parameter[0].ID].Value); TriggerControl targetC = mTriggerHost.GetTriggerControl(targetTrigger); //mEffectTrueControlPoint.GetTargets().Add(targetC.GetDeactivationPoint()); if (targetC == null) { CoreGlobals.getErrorManager().OnSimpleWarning("Error Remapping link to trigger " + targetTrigger.ToString()); hitlist.Add(e); } else { mEffectTrueControlPoint.GetTargets().Add(targetC.GetDeactivationPoint()); } continue; } } foreach (TriggerEffect e in hitlist) { effectList.Remove(e); } hitlist.Clear(); List <TriggerEffect> effectsOnFalse = mThisTrigger.TriggerEffectsFalse.Effects; foreach (TriggerEffect e in effectsOnFalse) { if (e.Type == TriggerSystemMain.mTriggerDefinitions.GetActivateEffectName()) { //Hide it... and load it as a line //mTriggerOutControlPoint. int targetTrigger = System.Convert.ToInt32(ParentTriggerNamespace.GetValues()[e.Parameter[0].ID].Value); TriggerControl targetC = mTriggerHost.GetTriggerControl(targetTrigger); if (targetC == null) { CoreGlobals.getErrorManager().OnSimpleWarning("Error Remapping link to trigger " + targetTrigger.ToString()); hitlist.Add(e); } else { mEffectFalseControlPoint.GetTargets().Add(targetC.GetActivationPoint()); } continue; } if (e.Type == TriggerSystemMain.mTriggerDefinitions.GetDeactivateEffectName()) { int targetTrigger = System.Convert.ToInt32(ParentTriggerNamespace.GetValues()[e.Parameter[0].ID].Value); TriggerControl targetC = mTriggerHost.GetTriggerControl(targetTrigger); //mEffectFalseControlPoint.GetTargets().Add(targetC.GetDeactivationPoint()); if (targetC == null) { CoreGlobals.getErrorManager().OnSimpleWarning("Error Remapping link to trigger " + targetTrigger.ToString()); hitlist.Add(e); } else { mEffectFalseControlPoint.GetTargets().Add(targetC.GetDeactivationPoint()); } continue; } } foreach (TriggerEffect e in hitlist) { effectsOnFalse.Remove(e); } }
/// <summary> /// This connects the ui elements based off of the data that was loaded. /// Templates hold the connection data when a connection to a template is made in the ActionBinder classes /// Templates always load the connections to the right(output), and load connections to the left if trigger control is left of them /// </summary> public void LoadExistingConnections() { Dictionary <BasicControlPoint, TriggersTemplateInputActionBinder> .Enumerator it = mInputActionCPs.GetEnumerator(); while (it.MoveNext()) { TriggersTemplateInputActionBinder binder = it.Current.Value; BasicControlPoint thisCp = it.Current.Key; foreach (TriggerBindInfo targetinfo in binder.TargetIDs) { if (targetinfo.HasTarget()) { if (targetinfo.LinkName == "Effect.False" || targetinfo.LinkName == "Effect.True") { TriggerControl targetC = mTriggerHost.GetTriggerControl(targetinfo.ID); if (targetC != null) { if (targetinfo.LinkName == "Effect.True") { targetC.GetEffectTruePoint().GetTargets().Add(thisCp); } else { targetC.GetEffectFalsePoint().GetTargets().Add(thisCp); } } } } } } Dictionary <BasicControlPoint, TriggersTemplateOutputActionBinder> .Enumerator it2 = mOutputActionCPs.GetEnumerator(); while (it2.MoveNext()) { TriggersTemplateOutputActionBinder binder = it2.Current.Value; BasicControlPoint thisCp = it2.Current.Key; List <TriggerBindInfo> toRemove = new List <TriggerBindInfo>(); foreach (TriggerBindInfo targetinfo in binder.TargetIDs) { if (targetinfo.HasTarget()) { //bound to trigger if (targetinfo.LinkName == "Activate" || targetinfo.LinkName == "Deactivate") { TriggerControl triggerTarget = mTriggerHost.GetTriggerControl(targetinfo.ID); if (triggerTarget != null) { if (targetinfo.LinkName == "Activate") { thisCp.GetTargets().Add(triggerTarget.GetActivationPoint()); } else if (targetinfo.LinkName == "Deactivate") { thisCp.GetTargets().Add(triggerTarget.GetDeactivationPoint()); } } } else //it is a template { TemplateControl c = mTriggerHost.GetTemplatetControl(targetinfo.ID); if (c != null) { BasicControlPoint cpTarget = c.GetInputControlPoint(targetinfo.LinkName); thisCp.GetTargets().Add(cpTarget); } else { string groupName = this.ParentTriggerNamespace.GetGroupName(TriggerTemplateMapping.GroupID); string errormsg = "Error connecting template " + this.TriggerTemplateMapping.Name + "(" + this.TriggerTemplateMapping.ID + ")" + "." + thisCp.Name + " to missing template input: " + targetinfo.LinkName + ", " + targetinfo.ID + " in group: " + groupName + " Bad Link removed (most likely harmless residue from an old deleted template that this was connected to)"; toRemove.Add(targetinfo); this.BackColor = Color.Red; this.TriggerNameText.Text = Path.GetFileNameWithoutExtension(TriggerTemplateMapping.Name) + "(" + this.TriggerTemplateMapping.ID + ")"; CoreGlobals.getErrorManager().OnSimpleWarning(errormsg); CoreGlobals.ShowMessage(errormsg); CoreGlobals.getErrorManager().LogErrorToNetwork(errormsg); } } } } foreach (TriggerBindInfo badBind in toRemove) { binder.TargetIDs.Remove(badBind); } } }