Beispiel #1
0
        public override void Draw(RenderTexture gui, Vector2i origin, RenderStates guiState)
        {
            //Construct transform
            Transform t   = new Transform(1, 0, 0, 0, 1, 0, 0, 0, 1);
            Vector2f  pos = new Vector2f((position + origin).X, (origin + position).Y);

            t.Translate(pos);
            Transform original = guiState.Transform;

            guiState.Transform = t;
            gui.Draw(fieldBackGround, guiState);
            textField.Draw(gui, origin + position, guiState);
            if (cursorCounter > cursorRefresh)
            {
                if (fieldState == FieldState.Focused)
                {
                    cursor.Position = pos + textField.GetLastPosition() + new Vector2f(1, 4);
                    gui.Draw(cursor);
                }
                if (cursorCounter > 2 * cursorRefresh)
                {
                    cursorCounter = 0;
                }
            }
            base.Draw(gui, origin, guiState);
            guiState.Transform = original;
            cursorCounter++;
        }
Beispiel #2
0
        public override void Draw(RenderTexture gui, Vector2i origin, RenderStates guiState)
        {
            RectangleShape frame = new RectangleShape(new Vector2f(32, 32));

            frame.FillColor = Color.Red;
            Vector2f pos = new Vector2f((position + origin).X, (origin + position).Y);

            for (int i = 0; i < inventory.Count; i++)
            {
                frame.Position = pos + new Vector2f((i * 32) % (int)size.X, ((i * 32) / (int)size.X) * 32);
                gui.Draw(frame);
                if (inventory[i] != null)
                {
                    Sprite itemSprite = inventory[i].item.itemSprite.GetSprite();
                    itemSprite.Position = pos + new Vector2f((i * 32) % (int)size.X, (i * 32) / (int)size.X * 32);
                    itemCount.SetText(inventory[i].count.ToString());
                    itemCount.SetTextPosition("right", "bottom");
                    itemCount.SetRelativePosition(position + new Vector2i((i * 32) % (int)size.X - 16, (i * 32) / (int)size.X * 32));
                    gui.Draw(itemSprite);
                    itemCount.Draw(gui, origin, guiState);
                }
            }
            if (hoveredIndex != -1 && inventory[hoveredIndex] != null)
            {
                itemName.SetText(inventory[hoveredIndex].item.name);
                itemName.SetTextPosition("left", "center");
                RectangleShape backdrop = new RectangleShape(new Vector2f(itemName.size.X, itemName.size.Y));
                backdrop.FillColor = new Color(64, 64, 64, 208);
                backdrop.Position  = hoveredPosition;
                gui.Draw(backdrop);
                itemName.SetRelativePosition(new Vector2i((int)hoveredPosition.X, (int)hoveredPosition.Y));
                itemName.Draw(gui, new Vector2i(0, 0), guiState);
            }
            base.Draw(gui, origin, guiState);
        }
Beispiel #3
0
        public override void Draw(RenderTexture gui, Vector2i origin, RenderStates guiState)
        {
            //Draw the top component field and text header
            Transform t   = new Transform(1, 0, 0, 0, 1, 0, 0, 0, 1);
            Vector2f  pos = new Vector2f((position + origin).X, (origin + position).Y);

            t.Translate(pos);
            Transform original = guiState.Transform;

            guiState.Transform = t;
            gui.Draw(dropdownMainBox, guiState);
            t = new Transform(1, 0, 0, 0, 1, 0, 0, 0, 1);
            t.Translate(pos + new Vector2f(size.X, 0));
            guiState.Transform = t;
            gui.Draw(dropdownArrow, guiState);
            selectedText.Draw(gui, origin + position, guiState);
            RectangleShape otherbox = new RectangleShape(new Vector2f(size.X, size.Y));

            //Draw the dropdown button
            //If is focused:
            if (listboxState == ListBoxState.Focused)
            {
                for (int i = 0; i < listHeaders.Length; i++)
                {
                    otherbox.Position  = new Vector2f(origin.X + position.X, origin.Y + position.Y + size.Y + i * (lineSpacing + 1));
                    otherbox.FillColor = new Color(64, 64, 64, 255);
                    if (i == hoveredValue)
                    {
                        otherbox.FillColor = new Color(32, 96, 32, 255);
                    }
                    gui.Draw(otherbox);
                    texts[i].Draw(gui, origin + position, guiState);
                }
            }
            //Draw the dropdown transparent selector
            //Draw the highlight over currently hovered value
            //Draw the text for the values
            guiState.Transform = original;
            base.Draw(gui, origin + position, guiState);
        }
Beispiel #4
0
        public override void Draw(RenderTexture gui, Vector2i origin, RenderStates guiState)
        {
            RectangleShape frame = new RectangleShape(new Vector2f(32, 32));

            frame.FillColor = Color.Red;
            Vector2f pos = new Vector2f((position + origin).X, (origin + position).Y);

            for (int i = 0; i < allowedRecipes.Length; i++)
            {
                frame.Position = pos + new Vector2f((i * 32) % (int)size.X, ((i * 32) / (int)size.X) * 32);
                gui.Draw(frame);
                Sprite recipeSprite = allowedRecipes[i].recipeSprite.GetSprite();
                recipeSprite.Position = pos + new Vector2f((i * 32) % (int)size.X, (i * 32) / (int)size.X * 32);
                gui.Draw(recipeSprite);
            }
            if (hoveredIndex != -1)
            {
                recipeName.SetText(allowedRecipes[hoveredIndex].name);
                recipeName.SetTextPosition("left", "center");
                recipeName.SetRelativePosition(new Vector2i((int)hoveredPosition.X, (int)hoveredPosition.Y));
                recipeName.Draw(gui, new Vector2i(0, 0), guiState);
            }
            base.Draw(gui, origin, guiState);
        }