Ejemplo n.º 1
0
        private void Init()
        {
            var blur = CreateChild <BlurDisplay>("blur", 0);

            {
                blur.Anchor = AnchorType.Fill;
                blur.Offset = Offset.Zero;

                var dark = blur.CreateChild <UguiSprite>("dark", 0);
                {
                    dark.Anchor = AnchorType.Fill;
                    dark.Offset = Offset.Zero;
                    dark.Color  = new Color(0f, 0f, 0f, 0.75f);
                }
            }
            infoDisplayer = CreateChild <InfoDisplayer>("info", 1);
            {
            }
            loadIndicator = CreateChild <LoadIndicator>("load", 2);
            {
                loadIndicator.Position = new Vector3(0f, -260f);
                loadIndicator.Size     = new Vector2(88f, 88f);
            }

            float showDur = Mathf.Max(infoDisplayer.ShowAniDuration, loadIndicator.ShowAniDuration);

            componentShowAni = new Anime();
            componentShowAni.AddEvent(0f, () =>
            {
                infoDisplayer.Show();
                loadIndicator.Show();
            });
            componentShowAni.AddEvent(showDur + model.MinimumLoadTime, OnShowAniEnd);

            float hideDur = Mathf.Max(infoDisplayer.HideAniDuration, loadIndicator.HideAniDuration);

            componentHideAni = new Anime();
            componentHideAni.AddEvent(0f, () =>
            {
                infoDisplayer.Hide();
                loadIndicator.Hide();
            });
            componentHideAni.AnimateFloat(v => model.MusicController.SetFade(v))
            .AddTime(0f, 0.5f, EaseType.QuadEaseOut)
            .AddTime(hideDur, 0f)
            .Build();
            componentHideAni.AddEvent(hideDur, () =>
            {
                model.MusicController.SetFade(1f);
                OnHideAniEnd();
            });

            OnEnableInited();
        }
Ejemplo n.º 2
0
        private void Init()
        {
            canvasGroup = RawObject.AddComponent <CanvasGroup>();

            notificationList = CreateChild <NotificationList>("notification-list");
            {
                notificationList.Anchor = AnchorType.Fill;
                notificationList.Offset = Offset.Zero;
                notificationList.Scope  = NotificationScope.Temporary;

                notificationList.OnDismiss += OnDismissed;
            }

            showAni = new Anime();
            showAni.AddEvent(0f, () => Active           = true);
            showAni.AnimateFloat(a => canvasGroup.alpha = a)
            .AddTime(0f, () => canvasGroup.alpha)
            .AddTime(0.25f, 1f)
            .Build();

            hideAni = new Anime();
            hideAni.AnimateFloat(a => canvasGroup.alpha = a)
            .AddTime(0f, () => canvasGroup.alpha)
            .AddTime(0.25f, 1f)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () => Active = false);

            OnEnableInited();
        }
Ejemplo n.º 3
0
        private void Init()
        {
            startupAnime = new Anime();
            startupAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0f, 0f, 0f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Outer.Color = color)
            .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Inner.Color = color)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0.5f, new Color(), EaseType.QuartEaseIn)
            .AddTime(1f, new Color(0.75f, 0.75f, 0.75f, 1f))
            .Build();
            startupAnime.AddEvent(startupAnime.Duration, () => OnStartup?.Invoke());

            breatheAnime          = new Anime();
            breatheAnime.WrapMode = WrapModeType.Loop;
            breatheAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, Color.black, EaseType.SineEaseOut)
            .AddTime(1.1f, Color.gray, EaseType.SineEaseIn)
            .AddTime(2.2f, Color.black)
            .Build();
            breatheAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0f, new Color(0.75f, 0.75f, 0.75f, 1f), EaseType.SineEaseOut)
            .AddTime(1.1f, Color.white, EaseType.SineEaseIn)
            .AddTime(2.2f, new Color(0.75f, 0.75f, 0.75f, 1f))
            .Build();

            endAnime = new Anime();
            endAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, () => this.Glow.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Outer.Color = color)
            .AddTime(0f, () => this.Outer.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Inner.Color = color)
            .AddTime(0f, () => this.Inner.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0f, () => this.Title.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateVector3((scale) => this.Scale = scale)
            .AddTime(0f, Vector3.one, EaseType.SineEaseOut)
            .AddTime(1.5f, new Vector3(1.1f, 1.1f, 1.1f))
            .Build();
            endAnime.AddEvent(endAnime.Duration, () => OnEnd?.Invoke());
        }
Ejemplo n.º 4
0
        private void Init()
        {
            titleLabel = CreateChild <Label>("title", 0);
            {
                titleLabel.FontSize = 22;
                titleLabel.IsBold   = true;
                titleLabel.Alpha    = 0;
            }
            artistLabel = CreateChild <Label>("artist", 1);
            {
                artistLabel.FontSize = 16;
                artistLabel.Alpha    = 0;
            }
            versionLabel = CreateChild <Label>("version", 2);
            {
                versionLabel.FontSize = 20;
                versionLabel.Alpha    = 0;
            }
            mapperLabel = CreateChild <Label>("mapper", 3);
            {
                mapperLabel.FontSize = 16;
                mapperLabel.Alpha    = 0;
            }
            thumbDisplayer = CreateChild <ThumbDisplayer>("thumb", 4);
            {
                thumbDisplayer.Size  = new Vector2(400f, 72f);
                thumbDisplayer.Alpha = 0;
            }

            showAni = new Anime();
            AddShowAniFrame(titleLabel, 0.3f, new Vector2(0f, 112f));
            AddShowAniFrame(artistLabel, 0.4f, new Vector2(0f, 88f));
            AddShowAniFrame(thumbDisplayer, 0.5f, new Vector2(0f, 16f));
            AddShowAniFrame(versionLabel, 0.6f, new Vector2(0f, -60f));
            AddShowAniFrame(mapperLabel, 0.7f, new Vector2(0f, -86f));

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => showAni.Stop());
            AddHideAniFrame(titleLabel, 0f);
            AddHideAniFrame(artistLabel, 0.1f);
            AddHideAniFrame(thumbDisplayer, 0.2f);
            AddHideAniFrame(versionLabel, 0.3f);
            AddHideAniFrame(mapperLabel, 0.4f);

            OnEnableInited();
        }
        private void Init()
        {
            SpriteName = "glow-in-square-32";
            ImageType  = Image.Type.Sliced;
            RotationZ  = 45f;

            AddEffect(new AdditiveShaderEffect());

            anime = new Anime();
            anime.AnimateFloat((alpha) => this.Alpha = alpha)
            .AddTime(0f, 0f, EaseType.QuadEaseOut)
            .AddTime(0.1f, 1f, EaseType.QuadEaseIn)
            .AddTime(0.25f, 0f)
            .Build();
            anime.AnimateVector2((size) => this.Size = size)
            .AddTime(0f, new Vector2(PulseStartSize, PulseStartSize), EaseType.CubicEaseOut)
            .AddTime(0.25f, new Vector2(PulseFullSize, PulseFullSize))
            .Build();
            anime.AddEvent(anime.Duration, () => Recycler.Return(this));
        }
Ejemplo n.º 6
0
        private void Init()
        {
            tickSprite = CreateChild <UguiSprite>("tick", 0);
            {
                tickSprite.Anchor     = AnchorType.Fill;
                tickSprite.Offset     = Offset.Zero;
                tickSprite.SpriteName = "circle-32";
            }

            hitAni = new Anime();
            hitAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(0f, 1f, EaseType.QuadEaseOut)
            .AddTime(0.5f, 0f)
            .Build();
            hitAni.AnimateVector3(s => this.Scale = s)
            .AddTime(0f, Vector3.one, EaseType.CubicEaseOut)
            .AddTime(0.5f, new Vector3(2.5f, 2.5f, 1f))
            .Build();
            hitAni.AddEvent(hitAni.Duration, () => Active = false);
        }
Ejemplo n.º 7
0
        private void Init(IColorPreset colorPreset)
        {
            showAni = new Anime();
            showAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(1.5f, 0f, EaseType.QuadEaseOut)
            .AddTime(1.75f, 1f)
            .Build();
            showAni.AnimateFloat(scale => Scale = new Vector3(scale, scale, 1f))
            .AddTime(0f, 1f)
            .AddTime(1.5f, 2f, EaseType.QuadEaseOut)
            .AddTime(1.75f, 1f)
            .Build();

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => showAni.Stop());
            hideAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(0f, 1f, EaseType.QuadEaseOut)
            .AddTime(0.5f, 0f)
            .Build();

            Rotate = true;
        }
Ejemplo n.º 8
0
        private void Init()
        {
            // Make the menu fit within the parent's object.
            Anchor = AnchorType.Fill;
            Offset = Offset.Zero;

            var blocker = CreateChild <Blocker>("blocker", 0);

            {
                blocker.OnTriggered += CloseMenu;
            }
            holder = CreateChild("holder", 1);
            {
                holder.Size = new Vector2(ContainerWidth, 0f);

                aniHolder = holder.CreateChild("ani-holder", 0);
                {
                    aniHolder.Anchor = AnchorType.Fill;
                    aniHolder.Offset = Offset.Zero;

                    canvasGroup       = aniHolder.RawObject.AddComponent <CanvasGroup>();
                    canvasGroup.alpha = 0f;

                    shadow = aniHolder.CreateChild <UguiSprite>("shadow", 0);
                    {
                        shadow.Anchor     = AnchorType.Fill;
                        shadow.Offset     = new Offset(-7f);
                        shadow.SpriteName = "glow-circle-16";
                        shadow.ImageType  = Image.Type.Sliced;
                        shadow.Color      = Color.black;
                    }
                    listContainer = aniHolder.CreateChild <UguiListView>("list", 1);
                    {
                        listContainer.Anchor = AnchorType.Fill;
                        listContainer.Offset = Offset.Zero;
                        listContainer.Background.SpriteName = "circle-16";
                        listContainer.Background.ImageType  = Image.Type.Sliced;
                        listContainer.Background.Color      = new Color(0f, 0f, 0f, 0.75f);

                        listContainer.Initialize(OnCreateMenuItem, OnUpdateMenuItem);
                        listContainer.CellSize = ItemSize;
                        listContainer.Corner   = GridLayoutGroup.Corner.UpperLeft;
                        listContainer.Axis     = GridLayoutGroup.Axis.Vertical;
                    }
                }
            }

            showAni = new Anime();
            showAni.AddEvent(0f, () => Active           = true);
            showAni.AnimateFloat(a => canvasGroup.alpha = a)
            .AddTime(0f, () => canvasGroup.alpha)
            .AddTime(0.25f, 1f)
            .Build();
            showAni.AnimateFloat(y => aniHolder.Y = y)
            .AddTime(0f, MoveAniAmount, EaseType.QuadEaseOut)
            .AddTime(0.25f, 0f)
            .Build();

            hideAni = new Anime();
            hideAni.AnimateFloat(a => canvasGroup.alpha = a)
            .AddTime(0f, () => canvasGroup.alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AnimateFloat(y => aniHolder.Y = y)
            .AddTime(0f, 0f, EaseType.QuadEaseOut)
            .AddTime(0.25f, MoveAniAmount)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () =>
            {
                OnHidden?.Invoke(this);
                Active = false;
            });
        }
Ejemplo n.º 9
0
        private void Init()
        {
            container = CreateChild <UguiObject>("container", 0);
            {
                container.Anchor = AnchorType.TopStretch;
                container.Pivot  = PivotType.Top;
                container.Y      = 0f;
                container.SetOffsetHorizontal(0f);
                container.Height = FoldedHeight;

                providerContainer = container.CreateChild <ProviderContainer>("provider", 1);
                {
                    providerContainer.Anchor = AnchorType.TopStretch;
                    providerContainer.Pivot  = PivotType.Top;
                    providerContainer.SetOffsetHorizontal(0f);
                    providerContainer.Y      = 0f;
                    providerContainer.Height = ProviderControllerHeight;
                }
                bannerContainer = container.CreateChild <BannerContainer>("banner", 0);
                {
                    bannerContainer.Anchor         = AnchorType.Fill;
                    bannerContainer.Offset         = new Offset(0f, 54f, 0f, 96f);
                    bannerContainer.IsInteractible = false;
                }
                searchBarContainer = container.CreateChild <SearchBarContainer>("search-bar", 2);
                {
                    searchBarContainer.Anchor = AnchorType.BottomStretch;
                    searchBarContainer.Pivot  = PivotType.Bottom;
                    searchBarContainer.SetOffsetHorizontal(0f);
                    searchBarContainer.Y      = 0f;
                    searchBarContainer.Height = SearchBarHeight;

                    searchBarContainer.AdvancedButton.OnTriggered += OnAdvancedButton;
                }
            }
            shadowButton = CreateChild <ShadowButton>("shadow", 1);
            {
                shadowButton.Anchor = AnchorType.Fill;
                shadowButton.Offset = new Offset(0f, FoldedHeight, 0f, 0f);
                shadowButton.Active = false;
                shadowButton.Alpha  = 0f;

                shadowButton.OnTriggered += OnShadowButton;
            }
            scrollTopButton = CreateChild <ScrollTopButton>("scroll-button", 2);
            {
                scrollTopButton.Anchor = AnchorType.Bottom;
                scrollTopButton.Y      = -28f;
                scrollTopButton.Size   = new Vector2(120f, 24f);
                scrollTopButton.Active = false;

                scrollTopButton.OnTriggered += OnScrollTopButton;
            }

            foldAni = new Anime();
            foldAni.AddEvent(0f, () => bannerContainer.IsInteractible = false);
            foldAni.AnimateFloat(h =>
            {
                container.Height = h;
                shadowButton.SetOffsetTop(h);
                bannerContainer.AdjustBannerTexture();
            })
            .AddTime(0f, () => container.Height)
            .AddTime(0.25f, FoldedHeight)
            .Build();
            foldAni.AnimateFloat(a => shadowButton.Alpha = a)
            .AddTime(0f, () => shadowButton.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            foldAni.AddEvent(0f, () => shadowButton.Active = false);

            unfoldAni = new Anime();
            unfoldAni.AddEvent(0f, () => shadowButton.Active = true);
            unfoldAni.AnimateFloat(h =>
            {
                container.Height = h;
                shadowButton.SetOffsetTop(h);
                bannerContainer.AdjustBannerTexture();
            })
            .AddTime(0f, () => container.Height)
            .AddTime(0.25f, UnfoldedHeight)
            .Build();
            unfoldAni.AnimateFloat(a => shadowButton.Alpha = a)
            .AddTime(0f, () => shadowButton.Alpha)
            .AddTime(0.25f, 0.5f)
            .Build();
            unfoldAni.AddEvent(unfoldAni.Duration, () => bannerContainer.IsInteractible = true);

            scrollButtonShowAni = new Anime();
            scrollButtonShowAni.AddEvent(0f, () => scrollTopButton.Active = true);
            scrollButtonShowAni.AnimateFloat((i) =>
            {
                scrollTopButton.Alpha = Easing.Linear(i, 0f, 1f, 0f);
                scrollTopButton.Y     = Easing.Linear(i, 0f, 28f, 0f);
            }).AddTime(0f, 0f, EaseType.BackEaseOut)
            .AddTime(0.25f, 1f)
            .Build();

            scrollButtonHideAni = new Anime();
            scrollButtonHideAni.AnimateFloat((i) =>
            {
                scrollTopButton.Alpha = Easing.Linear(i, 1f, -1f, 0f);
                scrollTopButton.Y     = Easing.Linear(i, 28f, -28f, 0f);
            }).AddTime(0f, 0f, EaseType.SineEaseOut)
            .AddTime(0.25f, 1f)
            .Build();
            scrollButtonHideAni.AddEvent(scrollButtonHideAni.Duration, () => scrollTopButton.Active = false);

            OnEnableInited();
        }
Ejemplo n.º 10
0
        private void Init()
        {
            background = CreateChild <UguiSprite>("background", 1);
            {
                background.Anchor = AnchorType.Fill;
                background.Offset = Offset.Zero;
                background.Color  = ColorPreset.Background;
            }
            mask = CreateChild <UguiSprite>("mask", 3);
            {
                mask.Anchor     = AnchorType.Fill;
                mask.RawSize    = Vector2.zero;
                mask.Position   = Vector2.zero;
                mask.SpriteName = "box";

                var maskEffect = mask.AddEffect(new MaskEffect());
                maskEffect.Component.showMaskGraphic = false;

                loggedInView = mask.CreateChild <LoggedInView>("logged-in", 0);
                {
                    loggedInView.Anchor = AnchorType.Fill;
                    loggedInView.Offset = Offset.Zero;
                }
                loggedOutView = mask.CreateChild <LoggedOutView>("logged-out", 0);
                {
                    loggedOutView.Anchor = AnchorType.Fill;
                    loggedOutView.Offset = Offset.Zero;

                    loggedOutView.CurLoginView.OnNewValue += OnLoginProviderViewChange;
                }
            }
            blocker = CreateChild <Blocker>("blocker", 4);

            loggedInAni = new Anime();
            loggedInAni.AnimateFloat(alpha => loggedInView.Alpha = alpha)
            .AddTime(0f, () => loggedInView.Alpha)
            .AddTime(0.25f, 1f)
            .Build();
            loggedInAni.AnimateFloat(alpha => loggedOutView.Alpha = alpha)
            .AddTime(0f, () => loggedOutView.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            loggedInAni.AnimateFloat(height => this.Height = height)
            .AddTime(0f, () => this.Height)
            .AddTime(0.25f, LoggedInHeight)
            .Build();
            loggedInAni.AddEvent(0f, () => loggedInView.Active = blocker.Active = true);
            loggedInAni.AddEvent(loggedInAni.Duration, () => loggedOutView.Active = blocker.Active = false);

            loggedOutAni = new Anime();
            loggedOutAni.AnimateFloat(alpha => loggedInView.Alpha = alpha)
            .AddTime(0f, () => loggedInView.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            loggedOutAni.AnimateFloat(alpha => loggedOutView.Alpha = alpha)
            .AddTime(0f, () => loggedOutView.Alpha)
            .AddTime(0.25f, 1f)
            .Build();
            loggedOutAni.AnimateFloat(height => this.Height = height)
            .AddTime(0f, () => this.Height)
            .AddTime(0.25f, () => loggedOutView.DesiredHeight)
            .Build();
            loggedOutAni.AddEvent(0f, () => loggedOutView.Active = blocker.Active = true);
            loggedOutAni.AddEvent(loggedInAni.Duration, () => loggedInView.Active = blocker.Active = false);

            OnEnableInited();
        }
Ejemplo n.º 11
0
        private void Init()
        {
            Width = 0f;

            isTriggered.Bind(OnTriggeredChange);

            buttonTrigger = CreateChild <BasicTrigger>("trigger");
            {
                buttonTrigger.IsClickToTrigger = false;
                buttonTrigger.Anchor           = AnchorType.CenterStretch;
                buttonTrigger.Width            = 36f;
                buttonTrigger.SetOffsetVertical(0f);

                buttonTrigger.OnPointerDown += () => isTriggered.Value = true;
                buttonTrigger.OnPointerUp   += () => isTriggered.Value = false;

                var bg = buttonTrigger.CreateChild <UguiSprite>("bg");
                {
                    bg.Anchor = AnchorType.CenterStretch;
                    bg.SetOffsetVertical(0f);
                    bg.Width      = 8f;
                    bg.Color      = new Color(1f, 1f, 1f, 0.25f);
                    bg.SpriteName = "circle-8";
                    bg.ImageType  = Image.Type.Sliced;
                }
            }
            indicatorContainer = CreateChild <UguiObject>("container");
            {
                indicatorContainer.Anchor = AnchorType.CenterStretch;
                indicatorContainer.Width  = 0;
                indicatorContainer.SetOffsetVertical(0f);

                indicatorCanvas       = indicatorContainer.RawObject.AddComponent <CanvasGroup>();
                indicatorCanvas.alpha = 0f;

                shadowSprite = indicatorContainer.CreateChild <UguiSprite>("shadow");
                {
                    shadowSprite.Anchor     = AnchorType.Fill;
                    shadowSprite.Offset     = new Offset(0f, 9f, 0f, -9f);
                    shadowSprite.Color      = ColorPreset.Passive.Darken(0.5f);
                    shadowSprite.SpriteName = "parallel-64";
                    shadowSprite.ImageType  = Image.Type.Sliced;

                    shadowFlipEffect = shadowSprite.AddEffect(new FlipEffect());
                }
                bgSprite = indicatorContainer.CreateChild <UguiSprite>("bg");
                {
                    bgSprite.Anchor     = AnchorType.Fill;
                    bgSprite.Offset     = Offset.Zero;
                    bgSprite.Color      = ColorPreset.Passive;
                    bgSprite.SpriteName = "parallel-64";
                    bgSprite.ImageType  = Image.Type.Sliced;

                    bgFlipEffect = bgSprite.AddEffect(new FlipEffect());
                }
                iconSprite = indicatorContainer.CreateChild <UguiSprite>("icon");
                {
                    iconSprite.Y          = 0f;
                    iconSprite.Size       = new Vector2(24f, 24f);
                    iconSprite.SpriteName = "icon-pause";
                    iconSprite.Color      = ColorPreset.PrimaryFocus;
                }

                indicatorContainer.Active = false;
            }

            showAni = new Anime();
            showAni.AddEvent(0f, () => indicatorContainer.Active     = true);
            showAni.AnimateFloat((width) => indicatorContainer.Width = width)
            .AddTime(0f, 0, EaseType.BackEaseOut)
            .AddTime(0.25f, 196f)
            .Build();
            showAni.AnimateFloat((alpha) => indicatorCanvas.alpha = alpha)
            .AddTime(0f, () => indicatorCanvas.alpha)
            .AddTime(0.25f, 1f)
            .Build();

            hideAni = new Anime();
            hideAni.AnimateFloat((width) => indicatorContainer.Width = width)
            .AddTime(0f, 196f, EaseType.CubicEaseIn)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AnimateFloat((alpha) => indicatorCanvas.alpha = alpha)
            .AddTime(0f, () => indicatorCanvas.alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () => indicatorContainer.Active = false);
        }