Exemple #1
0
            public List <GuiElement> addPlainButton(string name, Rectangle rectangle, GuiElement parent, Layer layer, GuiColor panelColor = null, float FadeIn = 0, float FadeOut = 0, GuiText text = null, Action <BasePlayer, string[]> callback = null, string close = null, bool CursorEnabled = true, Blur blur = Blur.none)
            {
                if (string.IsNullOrEmpty(name))
                {
                    name = "plainButton";
                }

                purgeDuplicates(name);

                List <GuiElement> elements = GuiPlainButton.GetNewGuiPlainButton(plugin, this, name, rectangle, parent, layer, panelColor, FadeIn, FadeOut, text, callback, close, CursorEnabled, blur);

                if (callback != null)
                {
                    this.registerCallback(name, callback);
                }

                AddRange(elements);

                return(elements);
            }
Exemple #2
0
            public static List <GuiElement> GetNewGuiPlainButton(
                Plugin plugin,
                GuiContainer container,
                string name,
                Rectangle rectangle,
                GuiElement parent   = null,
                Layer layer         = Layer.hud,
                GuiColor panelColor = null,
                float fadeIn        = 0,
                float fadeOut       = 0,
                GuiText text        = null,
                Action <BasePlayer, string[]> callback = null,
                string close       = null,
                bool CursorEnabled = true,
                Blur blur          = Blur.none)
            {
                List <GuiElement> elements = new List <GuiElement>();

                Layer higherLayer = layer;

                if (parent != null)
                {
                    higherLayer = (Layer)Math.Min((int)layer, (int)parent.Layer);
                }

                StringBuilder closeString = new StringBuilder("");

                if (close != null)
                {
                    closeString.Append(" --close ");
                    closeString.Append(close);
                }

                string materialString = "Assets/Icons/IconMaterial.mat";

                if (blur != Blur.none)
                {
                    materialString = blurs[(int)blur];
                }

                if (text != null)
                {
                    text.FadeIn = fadeIn;
                }

                GuiPlainButton button = new GuiPlainButton
                {
                    Name          = name,
                    Rectangle     = rectangle.WithParent(parent?.Rectangle),
                    Layer         = higherLayer,
                    Parent        = layers[(int)higherLayer],
                    ParentElement = parent,
                    FadeOut       = fadeOut,
                    Components    =
                    {
                        new CuiButtonComponent {
                            Command  = $"gui.input {plugin.Name} {container.name} {removeWhiteSpaces(name)}{closeString}",
                            FadeIn   = fadeIn,
                            Color    = panelColor?.getColorString() ?? "0 0 0 0",
                            Material = materialString
                        },
                        rectangle.WithParent(parent?.Rectangle)
                    },
                    Label = new GuiLabel
                    {
                        Name       = name + "_txt",
                        Rectangle  = new Rectangle(),
                        Layer      = higherLayer,
                        Parent     = name,
                        Text       = text,
                        FadeOut    = fadeOut,
                        Components =
                        {
                            text,
                            new Rectangle()
                        }
                    }
                };

                elements.Add(button);

                if (text != null)
                {
                    elements.Add(button.Label);
                }

                if (CursorEnabled)
                {
                    elements.Add(new GuiElement()
                    {
                        Name       = name + "_cursor",
                        Parent     = name,
                        Components =
                        {
                            new CuiNeedsCursorComponent()
                        }
                    });
                }

                return(elements);
            }