예제 #1
0
        private void OnDoorStateChanged(Object p_sender, EventArgs p_args)
        {
            DoorEntityEventArgs doorEntityEventArgs = (DoorEntityEventArgs)p_args;

            if (doorEntityEventArgs.Animate && doorEntityEventArgs.Object == MyController)
            {
                m_interaction = (BaseInteraction)p_sender;
                ObjectState(doorEntityEventArgs.TargetState == EInteractiveObjectState.DOOR_OPEN, false);
            }
        }
예제 #2
0
        private void OnDoorStateChanged(Object p_sender, EventArgs p_args)
        {
            DoorEntityEventArgs doorEntityEventArgs = (DoorEntityEventArgs)p_args;

            if (doorEntityEventArgs.Animate && doorEntityEventArgs.Object == MyController)
            {
                m_interaction = (BaseInteraction)p_sender;
                if (doorEntityEventArgs.TargetState == EInteractiveObjectState.DOOR_OPEN || doorEntityEventArgs.TargetState == EInteractiveObjectState.DOOR_CLOSED)
                {
                    ObjectState(doorEntityEventArgs.TargetState, true);
                }
                else
                {
                    Debug.LogError("Secret Door State Change - Wrong TargetState: " + doorEntityEventArgs.TargetState);
                }
            }
        }
예제 #3
0
        private void OnDoorStateChanged(Object p_sender, EventArgs p_args)
        {
            DoorEntityEventArgs doorEntityEventArgs = (DoorEntityEventArgs)p_args;

            if (!doorEntityEventArgs.Animate && doorEntityEventArgs.Object == MyController)
            {
                Door door = (Door)MyController;
                if (door.State == EInteractiveObjectState.DOOR_OPEN)
                {
                    TweenAlpha.Begin(MyUIWidget.gameObject, m_AnimationTime, 1f);
                    TweenAlpha.Begin(m_DoorClosed.gameObject, m_AnimationTime, 0f);
                }
                else if (door.State == EInteractiveObjectState.DOOR_CLOSED)
                {
                    TweenAlpha.Begin(MyUIWidget.gameObject, m_AnimationTime, 0f);
                    TweenAlpha.Begin(m_DoorClosed.gameObject, m_AnimationTime, 1f);
                }
            }
        }
예제 #4
0
 protected override void DoExecute()
 {
     LegacyLogic.Instance.WorldManager.QuickSaveAllowed = false;
     SetStates();
     if (!String.IsNullOrEmpty(m_targetDoor.Prefab))
     {
         if (!m_targetDoor.InteractLock)
         {
             m_targetDoor.InteractLock = true;
             EInteractiveObjectState p_targetState = TargetDoorState();
             m_targetDoor.UpdateNextState(p_targetState);
             DoorEntityEventArgs p_eventArgs = new DoorEntityEventArgs(m_targetDoor, true, p_targetState);
             LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.DOOR_STATE_CHANGED, p_eventArgs);
         }
     }
     else
     {
         TriggerStateChange();
     }
     FinishExecution();
 }