Esempio n. 1
0
        public void Trigger()
        {
            if (onLinkClicked == null)
            {
                if (Href.StartsWith("hotkey://"))
                {
                    api.Input.GetHotKeyByCode(Href.Substring("hotkey://".Length))?.Handler?.Invoke(null);
                }
                else
                {
                    string[] parts = Href.Split(new string[] { "://" }, StringSplitOptions.RemoveEmptyEntries);
                    if (parts.Length > 0 && api.LinkProtocols != null && api.LinkProtocols.ContainsKey(parts[0]))
                    {
                        api.LinkProtocols[parts[0]].Invoke(this);
                        return;
                    }

                    if (parts.Length > 0)
                    {
                        if (parts[0].StartsWith("http") || parts[0].StartsWith("https"))
                        {
                            api.Gui.OpenLink(Href);
                        }
                    }
                }
            }
            else
            {
                onLinkClicked.Invoke(this);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Handles the mouse button press while the mouse is on this button.
        /// </summary>
        /// <param name="api">The client API</param>
        /// <param name="args">The mouse event arguments.</param>
        public override void OnMouseDownOnElement(ICoreClientAPI api, MouseEvent args)
        {
            base.OnMouseDownOnElement(api, args);

            On = !On;
            handler?.Invoke(On);
            api.Gui.PlaySound("toggleswitch");
        }
Esempio n. 3
0
 public override void OnMouseDown(MouseEvent args)
 {
     foreach (var val in BoundsPerLine)
     {
         if (val.PointInside(args.X, args.Y))
         {
             onStackClicked?.Invoke(slot.Itemstack);
         }
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Fades out the current track.
        /// </summary>
        /// <param name="seconds">The duration of the fade out in seconds.</param>
        /// <param name="onFadedOut">What to have happen after the track has faded out.</param>
        public virtual void FadeOut(float seconds, Common.Action onFadedOut = null)
        {
            loading = false;

            if (Sound != null && IsActive)
            {
                Sound.FadeOut(seconds, (sound) => {
                    sound.Dispose();
                    Sound = null;
                    onFadedOut?.Invoke();
                });

                return;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Fades out the current track.
        /// </summary>
        /// <param name="seconds">The duration of the fade out in seconds.</param>
        /// <param name="onFadedOut">What to have happen after the track has faded out.</param>
        public void FadeOut(float seconds, Common.Action onFadedOut = null)
        {
            loading = false;

            if (Sound != null && IsActive)
            {
                Sound.FadeOut(seconds, (sound) => {
                    sound.Dispose();
                    Sound = null;
                    onFadedOut?.Invoke();
                });

                // Half cool down when interupted
                SetCooldown(0.5f);
                return;
            }

            // Full cooldown when stopped normally
            SetCooldown(1f);
        }
        public override void OnMouseDown(MouseEvent args)
        {
            GridRecipe recipe = GridRecipes[curItemIndex];

            foreach (var val in BoundsPerLine)
            {
                if (val.PointInside(args.X, args.Y))
                {
                    int x = (int)((args.X - val.X) / (size + 3));
                    int y = (int)((args.Y - val.Y) / (size + 3));

                    CraftingRecipeIngredient ingred = recipe.GetElementInGrid(y, x, recipe.resolvedIngredients, recipe.Width);
                    if (ingred == null)
                    {
                        return;
                    }

                    onStackClicked?.Invoke(ingred.ResolvedItemstack);
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Fade out the track to end.
        /// </summary>
        /// <param name="seconds">Seconds to fade out across.</param>
        /// <param name="onFadedOut">Delegate to have happen once the fade-out is done.</param>
        public void FadeOut(float seconds, Common.Action onFadedOut = null)
        {
            bool wasInterupted = false;

            foreach (MusicTrackPart part in Parts)
            {
                if (part.IsPlaying)
                {
                    part.Sound.FadeOut(seconds, (sound) => {
                        sound.Dispose();
                        part.Sound = null;
                        onFadedOut?.Invoke();
                    });

                    wasInterupted = true;
                }
            }

            // When naturally stopped, give the player a break from the cave sounds (3-10 minutes)
            if (!wasInterupted)
            {
                cooldownUntilMs = capi.World.ElapsedMilliseconds + (long)(1000 * (3 * 60 + rand.NextDouble() * 7 * 60));
            }
        }
Esempio n. 8
0
        public override void OnMouseDownOnElement(ICoreClientAPI api, MouseEvent args)
        {
            base.OnMouseDownOnElement(api, args);

            OnClick?.Invoke();
        }