private void onPlayerMoved(PositionData positionData, Vector3 newPosition) { if (positionData == null) { return; } positionData.PlayerMoved -= onPlayerMoved; if (base.gameObject.IsDestroyed()) { return; } DataEntityHandle entityByComponent = dataEntityCollection.GetEntityByComponent(positionData); if (DataEntityHandle.IsNullValue(entityByComponent)) { return; } GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(entityByComponent); if (component != null) { GameObject gameObject = component.GameObject; if (!gameObject.IsDestroyed()) { placeRemotePlayer(gameObject, entityByComponent, newPosition); } } }
private IEnumerator applyReceivedQuestStates(QuestServiceEvents.QuestStatesRecieved evt) { while (!QuestPlayerIsReady) { yield return(null); } CPDataEntityCollection dataEntityCollection = Service.Get <CPDataEntityCollection>(); foreach (QuestState questState in evt.QuestStates) { if (!questToMascotMap.TryGetValue(questState.questId, out var value)) { continue; } QuestDefinition questDefinition = knownQuests[questState.questId]; if (questDefinition.Prototyped) { continue; } Quest quest = GetQuest(questDefinition, value); if (quest == null) { continue; } if (questState.status == QuestStatus.ACTIVE && (ActiveQuest == null || ActiveQuest != quest) && !quest.IsActivating && pendingQuest != quest && quest.Definition.IsPausable) { trace(Time.time + ": applyReceivedQuestStates() setting " + quest.Id + " to SUSPENDED"); Service.Get <INetworkServicesManager>().QuestService.SetStatus(questState.questId, QuestStatus.SUSPENDED); continue; } trace(Time.time + ": applyReceivedQuestStates() quest.UpdateState()"); quest.UpdateState(questState); if (quest.State == Quest.QuestState.Suspended) { if (!value.ResumableQuests.Contains(quest)) { value.ResumableQuests.Add(quest); } } else if (quest == ActiveQuest && !quest.IsActivating) { trace(Time.time + ": applyReceivedQuestStates() calling RestoreAsync()"); GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(dataEntityCollection.LocalPlayerHandle); if (component != null) { quest.RestoreAsync(component.GameObject); } } if (quest.TimesCompleted == 0 && (quest.State == Quest.QuestState.Available || quest.State == Quest.QuestState.Suspended)) { AdventureReminderTutorial.SetAvailableAdventureTimestamp(value.Name); } } dispatcher.DispatchEvent(default(QuestEvents.QuestSyncCompleted)); IsQuestDataRecieved = true; }
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 Animator getPenguinAnimator(DataEntityHandle dataHadle) { Animator result = null; GameObjectReferenceData component = Service.Get <CPDataEntityCollection>().GetComponent <GameObjectReferenceData>(dataHadle); if (component != null && component.GameObject != null) { result = component.GameObject.GetComponent <Animator>(); } return(result); }
private void Start() { CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>(); participationData = cPDataEntityCollection.GetComponent <ParticipationData>(cPDataEntityCollection.LocalPlayerHandle); membershipData = cPDataEntityCollection.GetComponent <MembershipData>(cPDataEntityCollection.LocalPlayerHandle); gameObjectReferenceData = cPDataEntityCollection.GetComponent <GameObjectReferenceData>(cPDataEntityCollection.LocalPlayerHandle); type = InteractInWorldIconType.UICanvas; type = ((tweakableType != 0) ? tweakableType : type); setState(type); propService = Service.Get <PropService>(); indicatorRequest = Content.LoadAsync(onInteractIndicatorLoaded, InteractIndicatorContentKey); }
protected Transform getTransform(long sessionId) { DataEntityHandle dataEntityHandle = dataEntityCollection.FindEntity <SessionIdData, long>(sessionId); if (!dataEntityHandle.IsNull) { GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(dataEntityHandle); if (component != null && component.GameObject != null) { return(component.GameObject.transform); } } return(null); }
private void Start() { Camera = base.gameObject.AddComponent <Camera>(); localPlayerMask = LayerMask.NameToLayer("LocalPlayer"); mainCamera = Camera.main; Camera.cullingMask = mainCamera.cullingMask; mainCamera.enabled = false; base.gameObject.tag = "MainCamera"; GameObject gameObject = GameObject.FindGameObjectWithTag(UIConstants.Tags.UI_Tray_Root); if (gameObject != null) { context = gameObject.GetComponent <StateMachineContext>(); context.SendEvent(new ExternalEvent("Root", "noUI")); } Service.Get <EventDispatcher>().DispatchEvent(default(PlayerNameEvents.HidePlayerNames)); DataEntityHandle localPlayerHandle = Service.Get <CPDataEntityCollection>().LocalPlayerHandle; GameObjectReferenceData component = default(GameObjectReferenceData); if (!localPlayerHandle.IsNull && Service.Get <CPDataEntityCollection>().TryGetComponent(localPlayerHandle, out component)) { blobShadowCaster = component.GameObject.GetComponent <BlobShadowCaster>(); } groupCulling = UnityEngine.Object.FindObjectOfType <GroupCulling>(); if (groupCulling != null) { groupCulling.enabled = false; } GameObject gameObject2 = GameObject.Find("WorldChatCanvas"); if (gameObject2 != null) { worldChatCanvas = gameObject2.GetComponent <Canvas>(); if (worldChatCanvas != null) { worldChatCanvas.worldCamera = Camera; } } setLocalPlayerActive(isActive: false); }
public void AssignAvatarView(AvatarView avatarView, DataEntityHandle remotePlayerHandle, GameObject remotePlayerGO) { GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(remotePlayerHandle); component.GameObject = remotePlayerGO; if (avatarView.IsReady) { onAvatarIsReady(avatarView); } else { avatarView.OnReady += onAvatarIsReady; } PositionData component2 = dataEntityCollection.GetComponent <PositionData>(remotePlayerHandle); if (component2.Position != Vector3.zero) { placeRemotePlayer(remotePlayerGO, remotePlayerHandle, component2.Position); } else { component2.PlayerMoved += onPlayerMoved; } }