Example #1
0
    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);
            }
        }
    }
Example #2
0
        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;
        }
Example #3
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;
    }
Example #4
0
        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);
        }
Example #5
0
        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);
    }
Example #7
0
    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);
    }
Example #8
0
    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;
        }
    }