예제 #1
0
        public ToolbarButton(
            Transform parent, string name,
            Anchor anchor, Vec2 pos, Vec2 size,
            float margin, Font font)
        {
            pane = Gui.CreatePane(
                parent, name, offColor,
                size, anchor, pos);

            img = Gui.CreateImage(pane.rectTransform, "<image>", null);
            img.rectTransform.SetFillWithMargin(margin);
            Gui.AddButton(img.gameObject, () => OnClick());

            TextCfg cfg = new TextCfg
            {
                font        = font,
                fontSizeMin = 5,
                fontSizeMax = 14,
                autoResize  = true,
                style       = FontStyle.Bold,
                anchor      = TextAnchor.LowerCenter,
                horiWrap    = HorizontalWrapMode.Wrap,
                vertWrap    = VerticalWrapMode.Truncate
            };

            text = Gui.CreateText(img.transform, "<text>", cfg);
            text.rectTransform.SetFillPartial(
                new Vec2(0, .08f), new Vec2(1, .48f));
        }
예제 #2
0
        private Btn MakeButton(RectTransform parent, int order)
        {
            Image pane   = Gui.CreateColor(parent, "<button>", ToolbarButton.offColor);
            var   xfPane = pane.rectTransform;

            xfPane.SetFixed(Anchor.TopLeft, new Vec2(8, 8 + 58 * order), new Vec2(parent.sizeDelta.x - 16, 50));
            var btn = Gui.AddButton(pane.gameObject);

            TextCfg cfg = TextCfg.Default(font);

            cfg.fontSize = 20;
            cfg.style    = FontStyle.Bold;
            cfg.anchor   = TextAnchor.UpperCenter;

            Text topText = Gui.CreateText(pane.rectTransform, "<name>", cfg);

            topText.rectTransform.SetFixed(Anchor.TopLeft, new Vec2(6, 4), new Vec2(xfPane.sizeDelta.x, 30));

            cfg.fontSize = 16;
            cfg.style    = FontStyle.Normal;
            Text botText = Gui.CreateText(pane.rectTransform, "<materials>", cfg);

            botText.rectTransform.SetFixed(Anchor.TopLeft, new Vec2(6, 26), new Vec2(xfPane.sizeDelta.x, 30));

            return(new Btn()
            {
                button = btn,
                textMain = topText,
                textSub = botText
            });
        }
예제 #3
0
        private Btn CreateButton()
        {
            var img = Gui.CreateColor(pane, "<button>", ToolbarButton.offColor);

            img.rectTransform.pivot = new Vec2(0, 1);
            var btn    = Gui.AddButton(img.gameObject);
            var layout = img.gameObject.AddComponent <HorizontalLayoutGroup>();

            layout.childAlignment         = TextAnchor.UpperLeft;
            layout.childControlWidth      = true;
            layout.childControlHeight     = true;
            layout.childForceExpandWidth  = true;
            layout.childForceExpandHeight = true;
            layout.childScaleHeight       = true;
            layout.childScaleWidth        = true;
            layout.padding = new RectOffset(8, 8, 8, 8);

            TextCfg cfg = new TextCfg
            {
                font       = font,
                fontSize   = 20,
                autoResize = false,
                style      = FontStyle.Normal,// Bold,
                anchor     = TextAnchor.UpperLeft,
                horiWrap   = HorizontalWrapMode.Wrap,
                vertWrap   = VerticalWrapMode.Overflow
            };

            var text = Gui.CreateText(img.transform, "<text>", cfg);

            text.rectTransform.pivot = new Vec2(0, 1);
            text.text = "Foobar manchu monskder sdf";

            return(new Btn(img.gameObject, btn, text));
        }
예제 #4
0
        public WorkbenchPane(RectTransform canvas, Font font)
        {
            this.font = font;

            Vec2 size = new Vec2(510, 600);

            pane = Gui.CreatePane(
                canvas, "Workbench Panel", ToolbarButton.offColor,
                size, Anchor.BottomLeft, new Vec2(0, 202));

            float colWidth = (size.x - 60) / 2;
            float xColB    = colWidth + 40;

            TextCfg cfg = new TextCfg()
            {
                font       = font,
                fontSize   = 24,
                autoResize = false,
                style      = FontStyle.Bold,
                anchor     = TextAnchor.UpperLeft,
                horiWrap   = HorizontalWrapMode.Overflow,
                vertWrap   = VerticalWrapMode.Truncate
            };

            var headerA = Gui.CreateText(pane.rectTransform, "<header>", cfg);

            headerA.text = "Recipes:";
            headerA.rectTransform.anchorMin = headerA.rectTransform.anchorMax = new Vec2(0, 1);
            headerA.rectTransform.pivot     = new Vec2(0, 1);
            headerA.rectTransform.offsetMin = new Vec2(20, 0);
            headerA.rectTransform.offsetMax = new Vec2(0, -14);
            headerA.rectTransform.sizeDelta = new Vec2(colWidth, 27);

            var headerB = Gui.CreateText(pane.rectTransform, "<header>", cfg);

            headerB.text = "Orders:";
            headerB.rectTransform.anchorMin = headerB.rectTransform.anchorMax = new Vec2(0, 1);
            headerB.rectTransform.pivot     = new Vec2(0, 1);
            headerB.rectTransform.offsetMin = new Vec2(xColB, 0);
            headerB.rectTransform.offsetMax = new Vec2(0, -14);
            headerB.rectTransform.sizeDelta = new Vec2(colWidth, 27);

            Color colColor  = ToolbarButton.offColor.Scale(.8f);
            float colOfs    = 29 + headerA.rectTransform.sizeDelta.y;
            float colHeight = size.y - (20 + colOfs);
            var   colA      = Gui.CreateColor(pane.rectTransform, "<col>", colColor);

            colA.rectTransform.SetFixed(Anchor.TopLeft, new Vec2(20, colOfs), new Vec2(colWidth, colHeight));

            var colB = Gui.CreateColor(pane.rectTransform, "<col>", colColor);

            colB.rectTransform.SetFixed(Anchor.TopLeft, new Vec2(xColB, colOfs), new Vec2(colWidth, colHeight));

            btnsA = new UIPool <Btn>(i => MakeButton(colA.rectTransform, i));
            btnsB = new UIPool <Btn>(i => MakeButton(colB.rectTransform, i));

            SetActive(false);
        }
예제 #5
0
        public InfoPane(Transform parent, Font font)
        {
            Vec2 size = new Vec2(400, 200);

            pane = Gui.CreatePane(
                parent, "Info Panel", ToolbarButton.offColor,
                size, Anchor.BottomLeft, Vec2.zero);

            TextCfg cfg = new TextCfg()
            {
                font       = font,
                fontSize   = 24,
                autoResize = false,
                style      = FontStyle.Bold,
                anchor     = TextAnchor.UpperLeft,
                horiWrap   = HorizontalWrapMode.Overflow,
                vertWrap   = VerticalWrapMode.Truncate
            };

            header = Gui.CreateText(pane.rectTransform, "<header>", cfg);
            header.rectTransform.SetSizePivotAnchor(
                new Vec2(360, 27), new Vec2(0, 1), new Vec2(0, 1));
            header.rectTransform.offsetMin = new Vec2(20, 0);
            header.rectTransform.offsetMax = new Vec2(0, -14);
            header.rectTransform.sizeDelta = new Vec2(360, 27);

            cfg.fontSize = 18;
            cfg.style    = FontStyle.Normal;
            cfg.horiWrap = HorizontalWrapMode.Wrap;
            info         = Gui.CreateText(pane.rectTransform, "<info>", cfg);
            info.rectTransform.SetSizePivotAnchor(
                new Vec2(360, 144), new Vec2(0, 1), new Vec2(0, 1));
            info.rectTransform.offsetMin = new Vec2(20, 0);
            info.rectTransform.offsetMax = new Vec2(0, -46);
            info.rectTransform.sizeDelta = new Vec2(360, 144);
        }