Ejemplo n.º 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();
                }
            }
        }
    }
Ejemplo n.º 2
0
    public override void ActivateItem()
    {
        active = !active;

        if (!BoltNetwork.IsRunning || ControllerReferences.IndependantMP)
        {
            if (active)
            {
                GlobalReferences.TypeFilter.Add(templateID, GlobalReferences.PartProbs[templateID]);
                Highlight();
            }
            else
            {
                GlobalReferences.TypeFilter.Remove(templateID);
                Lowlight();
            }

            GlobalReferences.ClearAffectedList();
            if (PlacementReferences.PlacementType == PlacementReferences.PlaceChoreo.Choreo)
            {
                GlobalReferences.ChangeAffectedNumber(PlacementReferences.AffectedParts);
            }
        }
        else
        {
            ChangePartFilter evnt = ChangePartFilter.Create();
            evnt.State = active;
            evnt.ID    = templateID;
            evnt.Send();
        }
    }
Ejemplo n.º 3
0
    public override void OnEvent(ChangePartFilter evnt)
    {
        if (evnt.State)
        {
            GlobalReferences.TypeFilter.Add(evnt.ID, GlobalReferences.PartProbs[evnt.ID]);
        }
        else
        {
            GlobalReferences.TypeFilter.Remove(evnt.ID);
        }

        GlobalReferences.ClearAffectedList();
        if (PlacementReferences.PlacementType == PlacementReferences.PlaceChoreo.Choreo)
        {
            GlobalReferences.ChangeAffectedNumber(PlacementReferences.AffectedParts);
        }

        partFilterTIs[evnt.ID].ChangeState(evnt.State);
    }