コード例 #1
0
 private void Awake()
 {
     if (LightSwitchPoint._commandRefreshEvent == null)
     {
         LightSwitchPoint._commandRefreshEvent = new Subject <Unit>();
         ObservableExtensions.Subscribe <IList <Unit> >(Observable.Where <IList <Unit> >(Observable.TakeUntilDestroy <IList <Unit> >((IObservable <M0>)Observable.Buffer <Unit, Unit>((IObservable <M0>)LightSwitchPoint._commandRefreshEvent, (IObservable <M1>)Observable.ThrottleFrame <Unit>((IObservable <M0>)LightSwitchPoint._commandRefreshEvent, 1, (FrameCountType)0)), (Component)Singleton <Manager.Map> .Instance), (Func <M0, bool>)(_ => !_.IsNullOrEmpty <Unit>())), (Action <M0>)(_ =>
         {
             CommandArea commandArea = Manager.Map.GetCommandArea();
             if (Object.op_Equality((Object)commandArea, (Object)null))
             {
                 return;
             }
             commandArea.RefreshCommands();
         }));
     }
     if (this._linkMapObject)
     {
         LightSwitchData lightSwitchData = LightSwitchData.Get(this._linkID);
         if (Object.op_Inequality((Object)lightSwitchData, (Object)null))
         {
             this._onModeObjects  = lightSwitchData.OnModeObjects;
             this._offModeObjects = lightSwitchData.OffModeObjects;
         }
     }
     this.ActiveChange(this._firstLightEnable);
 }
コード例 #2
0
        protected override void OnDisable()
        {
            base.OnDisable();
            CommandArea commandArea = (!Singleton <Manager.Map> .IsInstance() ? (PlayerActor)null : Singleton <Manager.Map> .Instance.Player)?.PlayerController?.CommandArea;

            if (Object.op_Equality((Object)commandArea, (Object)null))
            {
                return;
            }
            bool flag = commandArea.ContainsConsiderationObject((ICommandable)this);

            if (!commandArea.ContainsCommandableObject((ICommandable)this))
            {
                return;
            }
            commandArea.RemoveCommandableObject((ICommandable)this);
            if (!flag)
            {
                return;
            }
            commandArea.RefreshCommands();
        }