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); } } }
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; } }
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"); } }
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; }
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); } } }
private void initializePriorityCompetition() { if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle)) { PriorityCompetition = new Competition <GameObject>(new ParticipationCompetitionRules(handle, dataEntityCollection, participationData)); } }
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; } }
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"); }
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); }
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)); } }
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); }
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; }
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); } }
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); } }
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); }
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(); }
public void Click() { if (!isLoading) { isLoading = true; AvatarDataHandle component = base.gameObject.GetComponent <AvatarDataHandle>(); if (component != null) { openPlayerCard(component.Handle); } } }
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); }
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(); } } }
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); } } }
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); }
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); }
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; }
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); } } }
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(); } } }
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(); } }