Exemplo n.º 1
0
        public static void UnEquipProp(GameObject player)
        {
            if (player.IsDestroyed())
            {
                return;
            }
            AvatarDataHandle component = player.GetComponent <AvatarDataHandle>();

            if (!(component != null) || !component.IsLocalPlayer)
            {
                return;
            }
            InvitationalItemExperience componentInChildren = player.GetComponentInChildren <InvitationalItemExperience>();

            if (componentInChildren != null)
            {
                UnityEngine.Object.Destroy(componentInChildren.gameObject);
            }
            PropUser component2 = player.GetComponent <PropUser>();

            if (component2 != null && component2.Prop != null)
            {
                PropCancel component3 = component2.Prop.GetComponent <PropCancel>();
                if (component3 != null)
                {
                    component3.UnequipProp(immediate: true);
                }
            }
        }
Exemplo n.º 2
0
    private void sendLocomotionUpdate(Vector3 direction, LocomotionAction type)
    {
        LocomotionActionEvent action = default(LocomotionActionEvent);

        action.Type      = type;
        action.Position  = getCurrentPosition();
        action.Direction = direction;
        LocomotionController currentController = locomotionTracker.GetCurrentController();

        if (currentController is SlideController)
        {
            action.Velocity = currentController.GetFacing();
        }
        if (broadcastingDisabledEvents == 0)
        {
            networkService.PlayerActionService.LocomotionAction(action, droppable: true);
        }
        AvatarDataHandle component = GetComponent <AvatarDataHandle>();

        if (!(component == null) && broadcastingDisabledEvents == 0 && Service.Get <CPDataEntityCollection>().TryGetComponent(component.Handle, out PositionData component2))
        {
            component2.Position = action.Position;
            if (!Service.Get <CPDataEntityCollection>().TryGetComponent(component.Handle, out PausedStateData component3))
            {
                component3 = Service.Get <CPDataEntityCollection>().AddComponent <PausedStateData>(component.Handle);
            }
            component3.Position = component2.Position;
        }
    }
Exemplo n.º 3
0
 private void Start()
 {
     dataEntityCollection = Service.Get <CPDataEntityCollection>();
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle))
     {
         if (dataEntityCollection.TryGetComponent(handle, out ParticipationData component))
         {
             participationData = component;
             ResetParticipation();
             initializePriorityCompetition();
             if (InitializationCompleteAction != null)
             {
                 InitializationCompleteAction();
             }
         }
         else
         {
             dataEntityCollection.EventDispatcher.AddListener <DataEntityEvents.ComponentAddedEvent <ParticipationData> >(onParticipationDataReady);
         }
     }
     else
     {
         Log.LogError(this, "Unable to find handle");
     }
 }
Exemplo n.º 4
0
 private void clearAfkProp()
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle))
     {
         if (presenceData.AFKState.EquippedObject != null)
         {
             DHeldObject dHeldObject = new DHeldObject();
             dHeldObject.ObjectId = presenceData.AFKState.EquippedObject.EquippedObjectId;
             if (presenceData.AFKState.EquippedObject.IsConsumable())
             {
                 dHeldObject.ObjectType = HeldObjectType.CONSUMABLE;
             }
             else if (presenceData.AFKState.EquippedObject.IsDurable())
             {
                 dHeldObject.ObjectType = HeldObjectType.DURABLE;
             }
             else if (presenceData.AFKState.EquippedObject.IsDispensable())
             {
                 dHeldObject.ObjectType = HeldObjectType.DISPENSABLE;
             }
             else if (presenceData.AFKState.EquippedObject.isPartyGame())
             {
                 dHeldObject.ObjectType = HeldObjectType.PARTYGAME;
             }
             dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = dHeldObject;
         }
         else
         {
             dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = null;
         }
     }
     isUsingAFKProp = false;
 }
Exemplo n.º 5
0
 private void OnDestroy()
 {
     CoroutineRunner.StopAllForOwner(this);
     UnityEngine.Object.Destroy(bubble);
     UnityEngine.Object.Destroy(bubbleMaterial);
     bubble = null;
     dispatcher.RemoveListener <InputEvents.ActionEvent>(OnAction);
     dispatcher.RemoveListener <DivingEvents.EnableLocalInfiniteAir>(onEnableLocalInfiniteAir);
     dispatcher.RemoveListener <DivingEvents.DisableLocalInfiniteAir>(onDisableLocalInfiniteAir);
     if (isLocalPlayer)
     {
         Service.Get <INetworkServicesManager>().PlayerStateService.RemoveAirBubble();
     }
     else
     {
         AvatarDataHandle component = GetComponent <AvatarDataHandle>();
         if (component != null && !component.Handle.IsNull)
         {
             AirBubbleData component2 = dataEntityCollection.GetComponent <AirBubbleData>(component.Handle);
             if (component2 != null)
             {
                 component2.AirBubbleChanged -= OnRemotePlayerAirBubbleChanged;
             }
         }
     }
     foreach (DivingGameController overlappingBubble in overlappingBubbles)
     {
         if (overlappingBubble != null)
         {
             overlappingBubble.RemotePlayerRemoved(this);
         }
     }
 }
Exemplo n.º 6
0
 private void initializePriorityCompetition()
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle))
     {
         PriorityCompetition = new Competition <GameObject>(new ParticipationCompetitionRules(handle, dataEntityCollection, participationData));
     }
 }
Exemplo n.º 7
0
    private void setAfkProp(PropDefinition propDefinition)
    {
        if (propDefinition == null)
        {
        }
        DHeldObject dHeldObject = new DHeldObject();

        switch (propDefinition.PropType)
        {
        case PropDefinition.PropTypes.Consumable:
            dHeldObject.ObjectType = HeldObjectType.CONSUMABLE;
            break;

        case PropDefinition.PropTypes.Durable:
            dHeldObject.ObjectType = HeldObjectType.DURABLE;
            break;

        case PropDefinition.PropTypes.InteractiveObject:
            dHeldObject.ObjectType = HeldObjectType.DISPENSABLE;
            break;

        case PropDefinition.PropTypes.PartyGame:
            dHeldObject.ObjectType = HeldObjectType.PARTYGAME;
            break;
        }
        dHeldObject.ObjectId = propDefinition.NameOnServer;
        if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle))
        {
            dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = dHeldObject;
            isUsingAFKProp = true;
        }
    }
Exemplo n.º 8
0
 private string getPlayerName(GameObject playerObj)
 {
     if (AvatarDataHandle.TryGetPlayerHandle(playerObj, out DataEntityHandle handle) && dataEntityCollection.TryGetComponent(handle, out DisplayNameData component))
     {
         return(component.DisplayName);
     }
     return("Error: name not found");
 }
Exemplo n.º 9
0
 private bool checkCanInteractWithFilter(FilterTriggerAction filter)
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var handle) && dataEntityCollection.TryGetComponent <SessionIdData>(handle, out var component) && filter.CanInteract(component.SessionId, base.gameObject) && (string.IsNullOrEmpty(filter.OwnerTag) || CompareTag(filter.OwnerTag)))
     {
         return(true);
     }
     return(false);
 }
Exemplo n.º 10
0
        public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            AvatarDataHandle component = animator.GetComponent <AvatarDataHandle>();

            if (component != null && !component.Handle.IsNull)
            {
                Service.Get <EventDispatcher>().DispatchEvent(new DanceBattleEvents.DanceMoveAnimationComplete(component.Handle));
            }
        }
Exemplo n.º 11
0
        private void determineIfLocalPlayer()
        {
            AvatarDataHandle component = GetComponent <AvatarDataHandle>();

            if (component != null && !component.Handle.IsNull && dataEntityCollection.TryGetComponent <SessionIdData>(component.Handle, out var component2))
            {
                isLocalPlayer = dataEntityCollection.IsLocalPlayer(component2.SessionId);
            }
        }
 private bool onAvatarDetailsAdded(DataEntityEvents.ComponentAddedEvent <AvatarDetailsData> evt)
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && evt.Handle == handle)
     {
         dataEntityCollection.EventDispatcher.RemoveListener <DataEntityEvents.ComponentAddedEvent <AvatarDetailsData> >(onAvatarDetailsAdded);
         avatarDetailsData = evt.Component;
         processAvatarDetails(handle);
     }
     return(false);
 }
Exemplo n.º 13
0
    private void setupLocalPlayer()
    {
        DataEntityHandle localPlayerHandle = dataEntityCollection.LocalPlayerHandle;
        AvatarDataHandle avatarDataHandle  = LocalPlayerGameObject.AddComponent <AvatarDataHandle>();

        avatarDataHandle.SetHandle(localPlayerHandle, isLocalPlayer: true);
        GameObjectReferenceData gameObjectReferenceData = dataEntityCollection.AddComponent <GameObjectReferenceData>(localPlayerHandle);

        gameObjectReferenceData.GameObject = LocalPlayerGameObject;
    }
Exemplo n.º 14
0
 private bool onLocomotionDataAdded(DataEntityEvents.ComponentAddedEvent <LocomotionData> evt)
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && evt.Handle == handle)
     {
         dataEntityCollection.EventDispatcher.RemoveListener <DataEntityEvents.ComponentAddedEvent <LocomotionData> >(onLocomotionDataAdded);
         locomotionData = evt.Component;
         addListeners();
     }
     return(false);
 }
    private void Start()
    {
        AvatarDataHandle componentInParent = GetComponentInParent <AvatarDataHandle>();

        if (componentInParent != null)
        {
            Vector3 eulerAngles = componentInParent.gameObject.GetComponent <Transform>().rotation.eulerAngles;
            eulerAngles.y = PenguinYAxisRotation;
            componentInParent.gameObject.GetComponent <Transform>().rotation = Quaternion.Euler(eulerAngles);
        }
    }
Exemplo n.º 16
0
 public void SetDataHandle(AvatarDataHandle dataHandle, SlideController slideController)
 {
     this.slideController = slideController;
     this.dataHandle      = dataHandle;
     getTubeDefinitions();
     if (dataHandle != null && Service.Get <CPDataEntityCollection>().TryGetComponent(dataHandle.Handle, out tubeData))
     {
         tubeData.OnTubeSelected += onTubeSelected;
         onTubeSelected(tubeData.SelectedTubeId);
     }
 }
Exemplo n.º 17
0
 private bool onParticipationDataReady(DataEntityEvents.ComponentAddedEvent <ParticipationData> evt)
 {
     ResetParticipation();
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && evt.Handle == handle)
     {
         participationData = evt.Component;
         dataEntityCollection.EventDispatcher.RemoveListener <DataEntityEvents.ComponentAddedEvent <ParticipationData> >(onParticipationDataReady);
         initializePriorityCompetition();
     }
     return(false);
 }
Exemplo n.º 18
0
    private void onLODGameObjectGenerated(GameObject remotePlayer, DataEntityHandle remotePlayerHandle, LODRequestData requestData)
    {
        requestData.OnGameObjectGeneratedEvent -= onLODGameObjectGenerated;
        remotePlayer.name = "rp_" + dataEntityCollection.GetComponent <DisplayNameData>(remotePlayerHandle).DisplayName;
        enableRenderers(remotePlayer, enable: false);
        remotePlayer.transform.SetParent(RemotePlayerContainer.transform);
        AvatarDataHandle component = remotePlayer.GetComponent <AvatarDataHandle>();

        component.SetHandle(remotePlayerHandle);
        remotePlayer.GetComponent <LocomotionReceiver>().Init();
    }
Exemplo n.º 19
0
 public void Click()
 {
     if (!isLoading)
     {
         isLoading = true;
         AvatarDataHandle component = base.gameObject.GetComponent <AvatarDataHandle>();
         if (component != null)
         {
             openPlayerCard(component.Handle);
         }
     }
 }
Exemplo n.º 20
0
 private bool isThisPlayer(long sessionId)
 {
     if (playerSessionId > 0)
     {
         return(playerSessionId == sessionId);
     }
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var handle) && dataEntityCollection.TryGetComponent <SessionIdData>(handle, out var component))
     {
         playerSessionId = component.SessionId;
         return(playerSessionId == sessionId);
     }
     return(false);
 }
 public static bool TryGetPlayerHandle(GameObject owner, out DataEntityHandle handle)
 {
     if (!owner.IsDestroyed())
     {
         AvatarDataHandle component = owner.GetComponent <AvatarDataHandle>();
         if (component != null)
         {
             handle = component.Handle;
             return(!handle.IsNull);
         }
     }
     handle = DataEntityHandle.NullHandle;
     return(false);
 }
Exemplo n.º 22
0
        protected IEnumerator preStartInteraction(GameObject go)
        {
            if (!base.gameObject.IsDestroyed() && AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var _) && locoEventBroadcaster != null && !go.IsDestroyed())
            {
                GameObject actionGraphObject = ActionSequencer.FindActionGraphObject(go);
                if (!actionGraphObject.IsDestroyed())
                {
                    locoEventBroadcaster.BroadcastOnInteractionPreStarted(actionGraphObject);
                    yield return(CoroutineRunner.Start(waitForValidLocomotionModeToInteract(), this, "waitForValidLocomotionModeToInteract"));

                    startInteraction();
                }
            }
        }
Exemplo n.º 23
0
 public void OnRemoteTriggerExit(Collider other)
 {
     if (other.gameObject.CompareTag("Player"))
     {
         updateTeamworkLevel(0f - teamworkDelta);
     }
     else if (other.gameObject.CompareTag("RemotePlayer"))
     {
         AvatarDataHandle component = other.gameObject.GetComponent <AvatarDataHandle>();
         if (deleteRemotePlayer(component.Handle))
         {
             updateTeamworkLevel(0f - teamworkDelta);
         }
     }
 }
Exemplo n.º 24
0
 private void Start()
 {
     dataEntityCollection = Service.Get <CPDataEntityCollection>();
     playerDataHandle     = GetComponent <AvatarDataHandle>();
     eventDispatcher      = Service.Get <EventDispatcher>();
     if (!playerDataHandle.Handle.IsNull && dataEntityCollection.HasComponent <LocalPlayerInZoneData>(playerDataHandle.Handle))
     {
         spawnLocalPlayerInZone();
     }
     else
     {
         eventDispatcher.AddListener <PlayerSpawnedEvents.LocalPlayerReadyToSpawn>(onLocalPlayerReadyToSpawn, EventDispatcher.Priority.FIRST);
     }
     eventDispatcher.AddListener <SceneTransitionEvents.TransitionComplete>(onSceneTransitionComplete);
 }
Exemplo n.º 25
0
 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);
 }
Exemplo n.º 26
0
 private void Awake()
 {
     dataEntityCollection   = Service.Get <CPDataEntityCollection>();
     locomotionTracker      = GetComponent <LocomotionTracker>();
     locomotionStateSetter  = GetComponent <AvatarLocomotionStateSetter>();
     playerDataHandle       = GetComponent <AvatarDataHandle>();
     positionTimeline       = new PositionTimeline(MaxQueueTimeMS, WarningQueueTimeMS);
     remoteSnowballLauncher = GetComponent <RemotePenguinSnowballThrower>();
     timer        = new Stopwatch();
     eventChannel = new EventChannel(Service.Get <EventDispatcher>());
     eventChannel.AddListener <PlayerActionServiceEvents.LocomotionActionReceived>(onLocomotionAction);
     locomotionEventBroadcaster = GetComponent <LocomotionEventBroadcaster>();
     locomotionEventBroadcaster.OnControlsLocked   += onControlsLocked;
     locomotionEventBroadcaster.OnControlsUnLocked += onControlsUnLocked;
 }
Exemplo n.º 27
0
 private void Start()
 {
     dataEntityCollection = Service.Get <CPDataEntityCollection>();
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && dataEntityCollection.TryGetComponent(handle, out presenceData))
     {
         presenceData.PresenceDataUpdated += onPresenceDataUpdated;
         if (presenceData.AFKState.Type != 0)
         {
             onPresenceDataUpdated(presenceData);
         }
         presenceData.TemporaryHeadStatusUpdated += onTemporaryHeadStatusUpdated;
         if (presenceData.TemporaryHeadStatusType != 0)
         {
             onTemporaryHeadStatusUpdated(presenceData);
         }
     }
 }
Exemplo n.º 28
0
        public void OnTriggerEnter(Collider collider)
        {
            if (interactRequest.Active)
            {
                return;
            }
            GameObject gameObject = ActionSequencer.FindActionGraphObject(collider.gameObject);

            if (gameObject != null && AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var _) && canInteractWithActionGraph(gameObject))
            {
                ForceInteractionAction component = gameObject.GetComponent <ForceInteractionAction>();
                if (component != null)
                {
                    currentActionGraphGameObject = gameObject;
                    interactRequest.Set();
                }
            }
        }
Exemplo n.º 29
0
        private void increasePlayers(GameObject playerObj)
        {
            string playerName = getPlayerName(playerObj);

            players.Add(playerName);
            if (playerObj.CompareTag("RemotePlayer"))
            {
                AvatarDataHandle component = playerObj.GetComponent <AvatarDataHandle>();
                if (component != null)
                {
                    addRemotePlayer(component.Handle);
                }
            }
            objects.Add(playerObj);
            if (dispatcher != null && !string.IsNullOrEmpty(VolumeId))
            {
                dispatcher.DispatchEvent(new TiltATubesEvents.AddPlayer(VolumeId, playerObj, isTubing(playerObj)));
            }
        }
    public void Start()
    {
        ConditionalConfiguration conditionalConfiguration = Service.Get <ConditionalConfiguration>();

        Model.LodLevel = conditionalConfiguration.Get("AvatarSystem.LODLevel.property", 0);
        ZoneLocalPlayerManager zoneLocalPlayerManager = ClubPenguin.SceneRefs.ZoneLocalPlayerManager;

        isLocal = (zoneLocalPlayerManager.LocalPlayerGameObject == base.gameObject);
        if (isLocal ? CombineLocal : CombineRemote)
        {
            base.gameObject.SetActive(value: false);
            AvatarViewCombined avatarViewCombined = base.gameObject.AddComponent <AvatarViewCombined>();
            avatarViewCombined.UseGpuSkinning    = UseGpuSkinning;
            avatarViewCombined.MaxAtlasDimension = conditionalConfiguration.Get("AvatarSystem.MaxAtlasDimension.property", 512);
            base.gameObject.SetActive(value: true);
            avatarView = avatarViewCombined;
        }
        else
        {
            avatarView = base.gameObject.AddComponent <AvatarViewDistinct>();
        }
        if (isLocal)
        {
            zoneLocalPlayerManager.AssignAvatarView(avatarView);
        }
        base.gameObject.AddComponent <PlayerMediator>();
        avatarView.OnBusy  += avatarView_OnBusy;
        avatarView.OnReady += avatarView_OnReady;
        bool flag = true;

        if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && dataEntityCollection.TryGetComponent(handle, out avatarDetailsData))
        {
            processAvatarDetails(handle);
            flag = false;
        }
        if (flag)
        {
            dataEntityCollection.EventDispatcher.AddListener <DataEntityEvents.ComponentAddedEvent <AvatarDetailsData> >(onAvatarDetailsAdded);
            Model.ClearAllEquipment();
        }
    }