예제 #1
0
    public override void OnEvent(ControllerSpawned evnt)
    {
        if (BoltNetwork.IsServer && !ControllerReferences.IndependantMP)
        {
            foreach (TIRuleFilter ruleFilter in ruleFilterTIs.Values)
            {
                if (!ruleFilter.Active)
                {
                    var changeRuleFilter = ChangeRuleFilter.Create(evnt.RaisedBy);
                    changeRuleFilter.GroupKey = ruleFilter.GroupKey;
                    changeRuleFilter.State    = false;
                    changeRuleFilter.Send();
                }
            }

            foreach (TIPartTypeFilter partFilter in partFilterTIs.Values)
            {
                if (!partFilter.Active)
                {
                    var changePartFilter = ChangePartFilter.Create(evnt.RaisedBy);
                    changePartFilter.State = false;
                    changePartFilter.ID    = partFilter.TemplateID;
                    changePartFilter.Send();
                }
            }
        }
    }
예제 #2
0
    public override void ActivateItem()
    {
        active = !active;


        if (!BoltNetwork.IsRunning || ControllerReferences.IndependantMP)
        {
            if (active)
            {
                Highlight();
            }
            else
            {
                Lowlight();
            }

            //for (int i = GlobalReferences.ActiveRulesGrammer.Count - 1; i >= 0; --i)
            foreach (int[] gramm in GlobalReferences.RuleGroups[groupKey])
            {
                GlobalReferences.RuleMatrix[gramm[0], gramm[1]] = active;
            }
        }
        else
        {
            ChangeRuleFilter evnt = ChangeRuleFilter.Create();
            evnt.State    = active;
            evnt.GroupKey = groupKey;
            evnt.Send();
        }
    }
예제 #3
0
    public override void OnEvent(ChangeRuleFilter evnt)
    {
        foreach (int[] gramm in GlobalReferences.RuleGroups[evnt.GroupKey])
        {
            GlobalReferences.RuleMatrix[gramm[0], gramm[1]] = evnt.State;
        }

        if (ruleFilterTIs.ContainsKey(evnt.GroupKey))
        {
            ruleFilterTIs[evnt.GroupKey].ChangeState(evnt.State);
        }
    }