public bool RequestInteraction()
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var _) && participationData.CurrentParticipationState == ParticipationState.Pending)
     {
         ParticipationRequest.Type type = ParticipationRequest.Type.Start;
         if (participationController.StartParticipation(new ParticipationRequest(type, participationData.ParticipatingGO.Value, "PenguinInteraction")))
         {
             participantReference         = participationData.ParticipatingGO;
             currentActionGraphGameObject = participationData.ParticipatingGO.Value;
             interactRequest.Set();
             return(true);
         }
     }
     return(false);
 }
        public void OnTriggerEnter(Collider collider)
        {
            GameObject gameObject = ActionSequencer.FindActionGraphObject(collider.gameObject);

            if (!AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var _) || !(gameObject != null) || !canInteractWithActionGraph(gameObject))
            {
                return;
            }
            ForceInteractionAction component = gameObject.GetComponent <ForceInteractionAction>();

            if (component != null)
            {
                ParticipationRequest.Type type    = ParticipationRequest.Type.ForcedInteraction;
                ParticipationRequest      request = new ParticipationRequest(type, gameObject, "PenguinInteraction");
                participationController.PrepareParticipation(request);
                if (participationData != null && participationData.ParticipatingGO != null && participationData.ParticipatingGO.Value == gameObject)
                {
                    participantReference         = participationData.ParticipatingGO;
                    currentActionGraphGameObject = gameObject;
                    interactRequest.Set();
                }
            }
            else
            {
                ParticipationRequest.Type type     = ParticipationRequest.Type.Prepare;
                ParticipationRequest      request2 = new ParticipationRequest(type, gameObject, "PenguinInteraction");
                if (!isReadyForParticipation)
                {
                    pendingParticipationRequest = request2;
                }
                else
                {
                    participationController.PrepareParticipation(request2);
                }
            }
        }
示例#3
0
 public void LogRequest(ParticipationRequest.Type requestType, GameObject requestor, string description, bool accepted)
 {
 }