示例#1
0
        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);
            }
        }
示例#2
0
        /// <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);
                }
            }
        }