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++; }
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); }
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); }
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); }