Beispiel #1
0
        public void Populate(WiresBoundUserInterfaceState state)
        {
            _wiresContainer.RemoveAllChildren();
            foreach (var wire in state.WiresList)
            {
                var container = new HBoxContainer();
                var newLabel  = new Label()
                {
                    Text = $"{_localizationManager.GetString(wire.Color.Name())}: ",
                    FontColorOverride = wire.Color,
                };
                container.AddChild(newLabel);

                var newButton = new Button()
                {
                    Text = _localizationManager.GetString("Pulse"),
                };
                newButton.OnPressed += _ => Owner.PerformAction(wire.Guid, WiresAction.Pulse);
                container.AddChild(newButton);

                newButton = new Button()
                {
                    Text = wire.IsCut ? _localizationManager.GetString("Mend") : _localizationManager.GetString("Cut"),
                };
                newButton.OnPressed += _ => Owner.PerformAction(wire.Guid, wire.IsCut ? WiresAction.Mend : WiresAction.Cut);
                container.AddChild(newButton);
                _wiresContainer.AddChild(container);
            }

            foreach (var status in state.Statuses)
            {
                var container = new HBoxContainer();
                container.AddChild(new Label
                {
                    Text = status
                });
                _wiresContainer.AddChild(container);
            }
        }
Beispiel #2
0
 // Deletes all rows
 public void Clear()
 {
     _vBox.RemoveAllChildren();
 }
        private void RefreshPlayerList(ButtonEventArgs args)
        {
            PlayerList.RemoveAllChildren();
            var playerManager = IoCManager.Resolve <IPlayerManager>();
            var sessions      = playerManager.Sessions;

            PlayerCount.Text = $"Players: {playerManager.PlayerCount}";

            Color altColor     = Color.FromHex("#292B38");
            Color defaultColor = Color.FromHex("#2F2F3B");

            var header = new HBoxContainer
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SeparationOverride  = 4,
                Children            =
                {
                    new Label {
                        Text = "Name",
                        SizeFlagsStretchRatio = 2f,
                        SizeFlagsHorizontal   = SizeFlags.FillExpand
                    },
                    new VSeperator(),
                    new Label {
                        Text = "Player",
                        SizeFlagsStretchRatio = 2f,
                        SizeFlagsHorizontal   = SizeFlags.FillExpand
                    },
                    new VSeperator(),
                    new Label {
                        Text = "Status",
                        SizeFlagsStretchRatio = 1f,
                        SizeFlagsHorizontal   = SizeFlags.FillExpand
                    },
                    new VSeperator(),
                    new Label {
                        Text = "Ping",
                        SizeFlagsStretchRatio = 1f,
                        SizeFlagsHorizontal   = SizeFlags.FillExpand,
                        Align = Label.AlignMode.Right
                    },
                }
            };

            PlayerList.AddChild(new PanelContainer
            {
                PanelOverride = new StyleBoxFlat
                {
                    BackgroundColor = altColor,
                },
                Children =
                {
                    header
                }
            });
            PlayerList.AddChild(new HSeparator());

            var useAltColor = false;

            foreach (var player in sessions)
            {
                var hbox = new HBoxContainer
                {
                    SizeFlagsHorizontal = SizeFlags.FillExpand,
                    SeparationOverride  = 4,
                    Children            =
                    {
                        new Label {
                            Text = player.Name,
                            SizeFlagsStretchRatio = 2f,
                            SizeFlagsHorizontal   = SizeFlags.FillExpand,
                            ClipText = true
                        },
                        new VSeperator(),
                        new Label {
                            Text = player.AttachedEntity?.Name,
                            SizeFlagsStretchRatio = 2f,
                            SizeFlagsHorizontal   = SizeFlags.FillExpand,
                            ClipText = true
                        },
                        new VSeperator(),
                        new Label {
                            Text = player.Status.ToString(),
                            SizeFlagsStretchRatio = 1f,
                            SizeFlagsHorizontal   = SizeFlags.FillExpand
                        },
                        new VSeperator(),
                        new Label {
                            Text = player.Ping.ToString(),
                            SizeFlagsStretchRatio = 1f,
                            SizeFlagsHorizontal   = SizeFlags.FillExpand,
                            Align = Label.AlignMode.Right
                        },
                    }
                };
                PlayerList.AddChild(new PanelContainer
                {
                    PanelOverride = new StyleBoxFlat
                    {
                        BackgroundColor = useAltColor ? altColor : defaultColor,
                    },
                    Children =
                    {
                        hbox
                    }
                });
                useAltColor ^= true;
            }
        }