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; }
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()); }
public void PlayAnimation(AvatarAnimationFrame animationFrame) { if (avatarInstance != null) { Animator component = avatarInstance.GetComponent <Animator>(); component.Play(animationFrame.StateName, animationFrame.Layer, animationFrame.Time); } }
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); }
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); }
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"); } }
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"); } } }
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); } } }
public void RenderAvatar(DCustomEquipment[] outfit, AvatarAnimationFrame avatarFrame = null) { hideAvatar(); CoroutineRunner.Start(loadRenderGameObjects(outfit, avatarFrame), this, "RenderAvatar_loadRenderGameObjects"); }
public void RenderAvatar(DCustomEquipment[] outfit, Color bodyColor, AvatarAnimationFrame avatarFrame = null) { this.bodyColor = bodyColor; useBodyColor = true; RenderAvatar(outfit, avatarFrame); }
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); } }