Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
            }
        }