public NetworkDebugHud(NetworkProvider networkProvider) { NetworkProvider = networkProvider; Anchor = Alignment.Fill; WarningElement = new GuiTextElement { IsVisible = false, TextColor = TextColor.Red, Text = "", Anchor = Alignment.TopCenter, Scale = 1f, FontStyle = FontStyle.DropShadow, BackgroundOverlay = Color.Black * 0.5f }; AddChild(WarningElement); NetworkInfoElement = new GuiAutoUpdatingTextElement(GetNetworkInfo, true); NetworkInfoElement.Interval = TimeSpan.FromMilliseconds(500); NetworkInfoElement.BackgroundOverlay = Color.Black * 0.5f; NetworkInfoElement.Anchor = Alignment.BottomRight; NetworkInfoElement.TextOpacity = 0.75f; NetworkInfoElement.TextColor = TextColor.Red; NetworkInfoElement.Scale = 1f; AddChild(NetworkInfoElement); }
public NetworkDebugHud(NetworkProvider networkProvider) { NetworkProvider = networkProvider; Anchor = Alignment.Fill; NetworkInfoElement = new GuiAutoUpdatingTextElement(GetNetworkInfo, true); NetworkInfoElement.BackgroundOverlay = Color.Black * 0.5f; NetworkInfoElement.Anchor = Alignment.BottomRight; NetworkInfoElement.TextOpacity = 0.75f; NetworkInfoElement.TextColor = TextColor.Red; NetworkInfoElement.Scale = 1f; AddChild(NetworkInfoElement); }
public GuiPlayerInventoryDialog(Player player, Inventory inventory) { Player = player; Inventory = inventory; // Subscribe to events _guiHotBarInventoryItems = new InventoryContainerItem[inventory?.SlotCount ?? 0]; if (_guiHotBarInventoryItems.Length != 46) { throw new ArgumentOutOfRangeException(nameof(inventory), inventory?.SlotCount ?? 0, "Expected player inventory containing 46 slots."); } ContentContainer.Background = GuiTextures.InventoryPlayerBackground; ContentContainer.Width = ContentContainer.MinWidth = ContentContainer.MaxWidth = 176; ContentContainer.Height = ContentContainer.MinHeight = ContentContainer.MaxHeight = 166; SetFixedSize(176, 166); ContentContainer.AutoSizeMode = AutoSizeMode.None; AddChild(_debug = new GuiAutoUpdatingTextElement(() => { if (base.GuiRenderer == null) { return(""); } var position = Mouse.GetState().Position; return($"Cursor: {position}"); }, true) { Background = new Color(Color.Black, 0.35f), Anchor = Alignment.TopCenter, Margin = new Thickness(0, 0, 0, 200) }); var texture = player.ModelRenderer.Texture; if (texture == null) { } var modelRenderer = player.ModelRenderer; var mob = new PlayerMob(player.Name, player.Level, player.Network, player.ModelRenderer.Texture, true) { ModelRenderer = modelRenderer, }; ContentContainer.AddChild(_playerEntityModelView = new GuiEntityModelView(mob) { Margin = new Thickness(7, 25), Width = 49, Height = 70, Anchor = Alignment.TopLeft, AutoSizeMode = AutoSizeMode.None, Background = null, BackgroundOverlay = null }); int lx = 7, ly = 83; int idx = 9; Color color = Color.Blue; for (int y = 0; y < 4; y++) { for (int x = 0; x < 9; x++) { var item = new InventoryContainerItem() { Item = Inventory[idx], HighlightedBackground = new Microsoft.Xna.Framework.Color(color, 0.5f), Anchor = Alignment.TopLeft, AutoSizeMode = AutoSizeMode.None, // Name = idx.ToString(), Margin = new Thickness(lx, ly, 0, 0) }; _guiHotBarInventoryItems[idx] = item; ContentContainer.AddChild(item); idx++; lx += item.Width; } lx = 7; if (idx == 36) { idx = 0; ly = 141; color = Color.GreenYellow; } else { ly += _guiHotBarInventoryItems[idx - 1].Height; } } lx = 7; ly = 7; for (int i = 0; i < 4; i++) { var element = new InventoryContainerItem() { HighlightedBackground = new Microsoft.Xna.Framework.Color(Color.Red, 0.5f), Anchor = Alignment.TopLeft, Margin = new Thickness(ly, lx), AutoSizeMode = AutoSizeMode.None, //Item = Inventory[] }; ContentContainer.AddChild(element); ly += element.Height; } var shieldSlot = new InventoryContainerItem() { HighlightedBackground = new Microsoft.Xna.Framework.Color(Color.Orange, 0.5f), Anchor = Alignment.TopLeft, Margin = new Thickness(61, 76), AutoSizeMode = AutoSizeMode.None }; ContentContainer.AddChild(shieldSlot); AddChild(TextOverlay = new GuiTextElement(true) { HasShadow = true, Background = new Color(Color.Black, 0.35f), Enabled = false, FontStyle = FontStyle.DropShadow, TextColor = TextColor.Yellow, ClipToBounds = false, //BackgroundOverlay = new Color(Color.Black, 0.35f), }); foreach (var child in ContentContainer.ChildElements.Where(x => x is InventoryContainerItem).Cast <InventoryContainerItem>()) { child.CursorPressed += InventoryItemPressed; child.CursorEnter += ChildOnCursorEnter; child.CursorLeave += ChildOnCursorLeave; } }