protected void startInteraction() { GameObject gameObject = ActionSequencer.FindActionGraphObject(currentActionGraphGameObject); if (gameObject != null && ClubPenguin.SceneRefs.ActionSequencer.StartSequence(base.gameObject, gameObject)) { if (locoEventBroadcaster != null) { locoEventBroadcaster.BroadcastOnInteractionStarted(gameObject); } if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && dataEntityCollection.TryGetComponent(handle, out SessionIdData component)) { dispatcher.DispatchEvent(new PenguinInteraction.InteractionStartedEvent(component.SessionId, gameObject)); } LocomotionController currentController = locomotionTracker.GetCurrentController(); if (currentController != null && (gameObject.GetComponent <ToggleCoreGameplayAction>() != null || gameObject.GetComponent <WarpTunnelAction>() != null)) { currentController.OnBlockingInteractionStarted(); } interactRequest.Reset(); RetainParticipationWithActionGraphGO(); ClubPenguin.SceneRefs.ActionSequencer.SequenceCompleted += OnActionSequencerSequenceCompleted; } }