Esempio n. 1
0
    private IEnumerator loadRenderGameObjects(DCustomEquipment[] outfit, AvatarAnimationFrame avatarFrame)
    {
        if (avatarInstance != null)
        {
            continueAvatarRender = false;
            cleanupRenderObjects();
            yield return(null);
        }
        while (lightingRig != null && !lightingRig.IsReady)
        {
            yield return(null);
        }
        AssetRequest <GameObject> assetRequest = null;

        try
        {
            assetRequest = Content.LoadAsync(uiAvatarPrefabContentKey);
        }
        catch (Exception ex)
        {
            Log.LogError(this, $"Could not load UI Avatar penguin asset {uiAvatarPrefabContentKey.Key}. Message: {ex.Message}");
        }
        if (assetRequest != null)
        {
            yield return(assetRequest);

            avatarInstance = UnityEngine.Object.Instantiate(assetRequest.Asset);
            DCustomOutfit avatarOutfit = default(DCustomOutfit);
            avatarOutfit.Equipment = outfit;
            avatarImageSet         = false;
            continueAvatarRender   = true;
            AvatarModel avatarModel = avatarInstance.GetComponent <AvatarModel>();
            yield return(AvatarRenderer.RenderOutfit(beakColor: avatarModel.BeakColor, bellyColor: avatarModel.BellyColor, bodyColor: useBodyColor ? bodyColor : avatarModel.BodyColor, outfit: avatarOutfit, cameraData: imageBuilderCameraData, avatarGO: avatarInstance, onProcessModel: onProcessAnimationFrame, animationFrame: avatarFrame));
        }
    }
 public RenderRequest(DataEntityHandle handle)
 {
     Handle               = handle;
     AvatarDetailsData    = null;
     Context              = null;
     AvatarAnimationFrame = null;
 }
Esempio n. 3
0
    private void Start()
    {
        Service.Get <ICPSwrveService>().Funnel(Service.Get <MembershipService>().AccountFunnelName, "06", "welcome");
        PenguinName.text = Service.Get <SessionManager>().LocalUser.RegistrationProfile.DisplayName;
        CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();

        if (!(SceneManager.GetActiveScene().name == "Boot"))
        {
            avatarRenderer = GetComponentInChildren <AvatarRenderTextureComponent>();
            DataEntityHandle     localPlayerHandle = cPDataEntityCollection.LocalPlayerHandle;
            AvatarAnimationFrame avatarFrame       = new AvatarAnimationFrame("Base Layer.Interactions.PassPortPoses_CelebrateAnimation", 0f);
            if (cPDataEntityCollection.TryGetComponent(localPlayerHandle, out AvatarDetailsData component))
            {
                avatarRenderer.RenderAvatar(component, avatarFrame);
            }
            else
            {
                avatarRenderer.RenderAvatar(new DCustomEquipment[0], avatarFrame);
            }
        }
        AccountFlowData accountFlowData = Service.Get <MembershipService>().GetAccountFlowData();

        accountFlowData.SkipWelcome = true;
        StartCoroutine(AutoTransition());
    }
Esempio n. 4
0
 public void PlayAnimation(AvatarAnimationFrame animationFrame)
 {
     if (avatarInstance != null)
     {
         Animator component = avatarInstance.GetComponent <Animator>();
         component.Play(animationFrame.StateName, animationFrame.Layer, animationFrame.Time);
     }
 }
Esempio n. 5
0
    private void Start()
    {
        avatarRenderer = GetComponent <AvatarImageComponent>();
        AvatarImageComponent avatarImageComponent = avatarRenderer;

        avatarImageComponent.OnImageReady = (Action <DataEntityHandle, Texture2D>)Delegate.Combine(avatarImageComponent.OnImageReady, new Action <DataEntityHandle, Texture2D>(onImageReady));
        DataEntityHandle     localPlayerHandle    = Service.Get <CPDataEntityCollection>().LocalPlayerHandle;
        AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(AnimationState, 0.5f);

        avatarRenderer.RequestImage(localPlayerHandle, avatarAnimationFrame);
    }
 public void UpdateProgressBar(string progressBarTrigger, string avatarAnimation)
 {
     if (shardProgressBarAnimators[shard] != null && !string.IsNullOrEmpty(progressBarTrigger))
     {
         shardProgressBarAnimators[shard].SetTrigger(progressBarTrigger);
     }
     if (shardAvatarRenderers[shard] != null && !string.IsNullOrEmpty(avatarAnimation))
     {
         AvatarAnimationFrame animationFrame = new AvatarAnimationFrame(avatarAnimation, 0f);
         shardAvatarRenderers[shard].PlayAnimation(animationFrame);
     }
 }
    private void populateRequestPrefab(FriendRequestItem friendRequestItem, DataEntityHandle handle)
    {
        string displayName = dataEntityCollection.GetComponent <DisplayNameData>(handle).DisplayName;

        friendRequestItem.SetPlayer(handle);
        friendRequestItem.SetName(displayName);
        friendRequestItem.SetPreloaderActive(isActive: true);
        friendRequestItem.SetAvatarIconActive(isActive: false);
        friendRequestItem.SetMembershipType(getMembershipType(handle));
        AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(IdlePenguinState, 0.5f);

        friendAvatarRenderer.RequestImage(handle, avatarAnimationFrame);
    }
Esempio n. 8
0
    protected void UpdateRender()
    {
        if (material == null)
        {
            return;
        }

        AvatarAnimationFrame frame = CurrClip.Frames[CurrFrame];
        int   frameIndex           = frame.xIndex;
        int   clipIndex            = frame.yIndex;
        float xoffset = 0;
        float yoffset = 0;

        switch (_aflip)
        {
        case Flip.Both:
        {
            clipIndex  = -(maxClipIndex - clipIndex);
            frameIndex = -(maxFrameIndex - frameIndex);

            xoffset = -m_rightBlank;
            yoffset = -m_bottomBlank;
        }
        break;

        case Flip.Vertically:
        {
            clipIndex = -(maxClipIndex - clipIndex);

            yoffset = -m_bottomBlank;
        }
        break;

        case Flip.Horizontally:
        {
            frameIndex = -(maxFrameIndex - frameIndex);
            xoffset    = -m_rightBlank;
        }
        break;
        }
        ;

        xoffset += textureScale.x * frameIndex;
        yoffset += textureScale.y * clipIndex;

        //if (xoffset < 0) xoffset = 1 + xoffset;
        //if (yoffset < 0) yoffset = 1 + yoffset;

        material.mainTextureOffset = new Vector2(xoffset, yoffset);
    }
Esempio n. 9
0
    private void Start()
    {
        membershipController = GetComponentInParent <MembershipController>();
        membershipController.OnPurchaseRetried += onPurchaseRetried;
        backgroundButtons  = GetComponentInParent <BackgroundButtonsController>();
        showCarrierBilling = membershipController.IsCarrierBillingAvailable();
        string message = showCarrierBilling ? "with_carrier_billing_info" : "regular";

        Service.Get <ICPSwrveService>().Funnel(Service.Get <MembershipService>().MembershipFunnelName, "03", "membership_terms", message);
        PenguinName.text = Service.Get <SessionManager>().LocalUser.RegistrationProfile.DisplayName;
        CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();
        DataEntityHandle       localPlayerHandle      = cPDataEntityCollection.LocalPlayerHandle;

        if (!(SceneManager.GetActiveScene().name == "Boot"))
        {
            avatarRenderer = GetComponentInChildren <AvatarRenderTextureComponent>();
            AvatarAnimationFrame avatarFrame = new AvatarAnimationFrame("Base Layer.Interactions.PassPortPoses_CelebrateAnimation", 0f);
            if (cPDataEntityCollection.TryGetComponent(localPlayerHandle, out AvatarDetailsData component))
            {
                avatarRenderer.RenderAvatar(component, avatarFrame);
            }
            else
            {
                avatarRenderer.RenderAvatar(new DCustomEquipment[0], avatarFrame);
            }
        }
        bool           hasTrialAvailable = true;
        MembershipData component3        = default(MembershipData);

        if (cPDataEntityCollection.TryGetComponent(localPlayerHandle, out ProfileData component2) && cPDataEntityCollection.TryGetComponent(localPlayerHandle, out component3))
        {
            if (component2.IsFirstTimePlayer || SceneManager.GetActiveScene().name != Service.Get <GameStateController>().SceneConfig.HomeSceneName)
            {
                ChangePenguinContainer.SetActive(value: false);
            }
            else
            {
                ChangePenguinContainer.SetActive(value: true);
            }
            hasTrialAvailable = component3.MembershipTrialAvailable;
        }
        membershipController.OnProductsReady += onProductsReady;
        membershipController.GetProduct(hasTrialAvailable);
        if (MonoSingleton <NativeAccessibilityManager> .Instance.AccessibilityLevel == NativeAccessibilityLevel.VOICE)
        {
            string tokenTranslation = Service.Get <Localizer>().GetTokenTranslation("Accessibility.Popup.Title.MembershipTerms");
            MonoSingleton <NativeAccessibilityManager> .Instance.Native.Speak(tokenTranslation);
        }
    }
    private void Start()
    {
        avatarImageComponent = GetComponent <AvatarImageComponent>();
        AvatarImageComponent obj = avatarImageComponent;

        obj.OnImageReady = (Action <DataEntityHandle, Texture2D>)Delegate.Combine(obj.OnImageReady, new Action <DataEntityHandle, Texture2D>(onImageReady));
        CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();
        DataEntityHandle       localPlayerHandle      = cPDataEntityCollection.LocalPlayerHandle;

        if (!localPlayerHandle.IsNull)
        {
            AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(AnimationStateName, AnimationNormalizedTime);
            avatarImageComponent.RequestImage(localPlayerHandle, avatarAnimationFrame, Context);
        }
        else
        {
            Log.LogError(this, "Local player handle was null");
        }
    }
Esempio n. 11
0
 protected void renderPlayer(AbstractPlayerListItem playerListItem, DataEntityHandle handle, string displayName, bool isOnline)
 {
     if (!playerListItem.IsRendered)
     {
         playerListItem.IsRendered = true;
         playerListItem.SetPreloaderActive(isActive: true);
         playerListItem.SetAvatarIconActive(isActive: false);
         if (playerAvatarRenderer.IsRenderInProgress(displayName))
         {
             playerAvatarRenderer.CancelRender(displayName);
         }
         if (isOnline)
         {
             AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(IdlePenguinState, 0.5f);
             playerAvatarRenderer.RequestImage(handle, avatarAnimationFrame, "FriendsListIdle");
         }
         else
         {
             AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(SleepingPenguinState, 0.75f);
             playerAvatarRenderer.RequestImage(handle, avatarAnimationFrame, "FriendsListSleeping");
         }
     }
 }
Esempio n. 12
0
 private void renderOwner(FriendListItem friendListItem, DataEntityHandle handle, string displayName, bool isOnline)
 {
     if (!friendListItem.IsRendered || (friendListItem.IsOnlineSet && isOnline != friendListItem.IsOnline))
     {
         friendListItem.IsRendered = true;
         friendListItem.SetPreloaderActive(isActive: true);
         friendListItem.SetAvatarIconActive(isActive: false);
         if (friendAvatarRenderer.IsRenderInProgress(displayName))
         {
             friendAvatarRenderer.CancelRender(displayName);
         }
         if (isOnline)
         {
             AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(IdlePenguinState, 0.5f);
             friendAvatarRenderer.RequestImage(handle, avatarAnimationFrame, "FriendsListIdle");
         }
         else
         {
             AvatarAnimationFrame avatarAnimationFrame = new AvatarAnimationFrame(SleepingPenguinState, 0.75f);
             friendAvatarRenderer.RequestImage(handle, avatarAnimationFrame, "FriendsListSleeping");
         }
     }
 }
        public void RequestImage(DataEntityHandle handle, AvatarAnimationFrame avatarAnimationFrame = null, string context = null)
        {
            if (UseCache && string.IsNullOrEmpty(context))
            {
                throw new ArgumentException("If using the cache, the context string must not be null");
            }
            string displayName = dataEntityCollection.GetComponent <DisplayNameData>(handle).DisplayName;

            if (!pendingRenderRequests.ContainsKey(displayName))
            {
                RenderRequest renderRequest = new RenderRequest(handle);
                renderRequest.AvatarAnimationFrame = avatarAnimationFrame;
                renderRequest.Context = context;
                pendingRenderRequests.Add(displayName, renderRequest);
                if (!dataEntityCollection.TryGetComponent <AvatarDetailsData>(handle, out var component))
                {
                    otherPlayerDetailsRequestBatcher.RequestOtherPlayerDetails(handle);
                    return;
                }
                renderRequest.AvatarDetailsData = component;
                getImage(displayName, renderRequest);
            }
        }
    private void Start()
    {
        Service.Get <ICPSwrveService>().Funnel(Service.Get <MembershipService>().AccountFunnelName, "16", "restore_membership_success");
        ModalBackground component = GetComponent <ModalBackground>();

        component.enabled = true;
        PenguinName.text  = string.Format(PenguinName.text, Service.Get <SessionManager>().LocalUser.RegistrationProfile.DisplayName);
        if (!(SceneManager.GetActiveScene().name == "Boot"))
        {
            avatarRenderer = GetComponentInChildren <AvatarRenderTextureComponent>();
            CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();
            DataEntityHandle       localPlayerHandle      = cPDataEntityCollection.LocalPlayerHandle;
            AvatarAnimationFrame   avatarFrame            = new AvatarAnimationFrame("Base Layer.Interactions.PassPortPoses_CelebrateAnimation", 0f);
            if (cPDataEntityCollection.TryGetComponent(localPlayerHandle, out AvatarDetailsData component2))
            {
                avatarRenderer.RenderAvatar(component2, avatarFrame);
            }
            else
            {
                avatarRenderer.RenderAvatar(new DCustomEquipment[0], avatarFrame);
            }
        }
    }
Esempio n. 15
0
 public void RenderAvatar(DCustomEquipment[] outfit, AvatarAnimationFrame avatarFrame = null)
 {
     hideAvatar();
     CoroutineRunner.Start(loadRenderGameObjects(outfit, avatarFrame), this, "RenderAvatar_loadRenderGameObjects");
 }
Esempio n. 16
0
 public void RenderAvatar(DCustomEquipment[] outfit, Color bodyColor, AvatarAnimationFrame avatarFrame = null)
 {
     this.bodyColor = bodyColor;
     useBodyColor   = true;
     RenderAvatar(outfit, avatarFrame);
 }
Esempio n. 17
0
 public void RenderAvatar(AvatarDetailsData avatarDetails, AvatarAnimationFrame avatarFrame = null)
 {
     RenderAvatar(avatarDetails.Outfit, avatarDetails.BodyColor, avatarFrame);
 }
    public static IEnumerator RenderOutfit(DCustomOutfit outfit, Color beakColor, Color bodyColor, Color bellyColor, ImageBuilderCameraData cameraData, GameObject avatarGO, Func <ModelRenderer, bool> onProcessModel, AvatarAnimationFrame animationFrame = null)
    {
        AvatarModel avatarModel = avatarGO.GetComponent <AvatarModel>();

        avatarModel.BeakColor  = beakColor;
        avatarModel.BodyColor  = bodyColor;
        avatarModel.BellyColor = bellyColor;
        avatarModel.ClearAllEquipment();
        avatarModel.ApplyOutfit(outfit);
        AvatarView avatarView = avatarGO.GetComponent <AvatarView>();

        yield return(new WaitUntil(() => avatarView.IsReady));

        ModelRendererConfig renderConfig = new ModelRendererConfig(avatarGO.transform, cameraData.ModelOffset, new Vector2(cameraData.IconSize, cameraData.IconSize));

        avatarGO.transform.Rotate(cameraData.ModelRotation);
        renderConfig.FieldOfView = cameraData.FieldOfView;
        ModelRenderer modelRenderer = new ModelRenderer(renderConfig);

        modelRenderer.RotateCamera(cameraData.CameraRotation);
        if (animationFrame != null)
        {
            Animator component = avatarGO.GetComponent <Animator>();
            component.Play(animationFrame.StateName, animationFrame.Layer, animationFrame.Time);
        }
        do
        {
            yield return(null);
        }while (onProcessModel(modelRenderer));
    }
        private IEnumerator loadRenderGameObjects(DCustomEquipment[] outfit, Color bodyColor, AvatarAnimationFrame avatarFrame, RenderRequest renderRequest)
        {
            if (avatarPrefab == null && isLoadingAvatarPrefab)
            {
                yield return(null);
            }
            if (avatarPrefab == null)
            {
                isLoadingAvatarPrefab = true;
                AssetRequest <GameObject> assetRequest = null;
                try
                {
                    assetRequest = Content.LoadAsync(uiAvatarPrefabContentKey);
                }
                catch (Exception ex)
                {
                    Log.LogError(this, $"Could not load UI Avatar penguin asset {uiAvatarPrefabContentKey.Key}. Message: {ex.Message}");
                }
                if (assetRequest != null)
                {
                    yield return(assetRequest);

                    avatarPrefab          = assetRequest.Asset;
                    isLoadingAvatarPrefab = false;
                }
            }
            if (avatarPrefab != null)
            {
                GameObject            avatarInstance = UnityEngine.Object.Instantiate(avatarPrefab);
                IconRenderLightingRig lightingRig    = IconRenderLightingRig.Acquire();
                while (!lightingRig.IsReady)
                {
                    yield return(null);
                }
                DCustomOutfit avatarOutfit = default(DCustomOutfit);
                avatarOutfit.Equipment = outfit;
                AvatarModel avatarModel = avatarInstance.GetComponent <AvatarModel>();
                yield return(AvatarRenderer.RenderOutfit(avatarOutfit, avatarModel.BeakColor, bodyColor, avatarModel.BellyColor, imageBuilderCameraData, avatarInstance, (ModelRenderer modelRenderer) => onProcessAnimationFrame(modelRenderer, renderRequest.Handle, avatarInstance), avatarFrame));

                IconRenderLightingRig.Release();
            }
            else
            {
                Log.LogErrorFormatted(this, "Unabe to load the UI Avatar Prefab at path {0}", uiAvatarPrefabContentKey.Key);
            }
        }