void DrawMousedOverPlayerName() { WorldRaycastResult result = World.Raycast(new Ray(Camera.Active.Position, Camera.Active.LookVector), true, 2000f, World.OurPlayer); ClientPlayer mousedOverPlayer = result.HitPlayer ? (ClientPlayer)result.PlayerResult.Player : null; if (mousedOverPlayer != null && mousedOverPlayer.StateInfo != null) { NetworkPlayer netPlayer = null; // Find the networkplayer from their character foreach (NetworkPlayer np in netPlayerComponent.NetPlayers) { if (np.CharacterId.HasValue && np.CharacterId.Value == mousedOverPlayer.StateInfo.Id) { netPlayer = np; break; } } if (netPlayer != null) { Vector2 nameSize = font.MeasureString(netPlayer.Name); font.DrawString(netPlayer.Name, Renderer.ScreenWidth / 2f, Renderer.ScreenHeight / 2f - 125, Renderer.Sprites.SpriteBatch, TextAlign.Center, Color.White, new Color(0, 0, 0, 0.6f)); } } }
public void AddLine(string text) { Vector2 textSize = font.MeasureString(text); int maxXCharacters = (int)Math.Max(CalculatedRectangle.Width / textSize.X * text.Length, 1); foreach (string line in text.SplitByLength(maxXCharacters)) { ChatItem item = new ChatItem(Theme, LINE_HEIGHT, items.Count, line, font) { Parent = this }; items.Add(item); if (items.Count > MAX_LINES) { items[0].Parent = null; items.RemoveAt(0); for (int k = 0; k < items.Count; k++) { items[k].ShiftY(-LINE_HEIGHT); } } } }
public FeedItem(GUITheme theme, float height, int numFeed, string left, Color leftColor, string middle, string right, Color rightColor, BMPFont font) : base(UDim2.Zero, UDim2.Zero, image: null) { float leftLen = font.MeasureString(left).X; float midLen = font.MeasureString(middle).X; float rightLen = font.MeasureString(right).X; float fullLen = leftLen + midLen + rightLen + 20; float midX = ((leftLen + 10) + (fullLen - rightLen - 10)) / 2f; Position = new UDim2(1f, -fullLen - 10, 0, 20 + (height * numFeed)); Size = new UDim2(0, fullLen, 0, 25); leftLabel = new GUILabel(UDim2.Zero, new UDim2(0, 1, 1f, 0), left, TextAlign.Left, leftColor, theme) { Parent = this }; rightLabel = new GUILabel(new UDim2(1, 0, 0, 0), new UDim2(0, 1, 1f, 0), right, TextAlign.Right, rightColor, theme) { Parent = this }; centerLabel = new GUILabel(new UDim2(0, midX, 0, 0), new UDim2(0, 1, 1f, 0), middle, TextAlign.Center, theme) { Parent = this }; leftLabel.Font = font; rightLabel.Font = font; centerLabel.Font = font; TimeLeft = 5f; }