public RoundEndSummaryWindow(string gm, string roundEnd, TimeSpan roundTimeSpan, RoundEndMessageEvent.RoundEndPlayerInfo[] info)
        {
            MinSize = SetSize = (520, 580);

            Title = Loc.GetString("round-end-summary-window-title");

            // The round end window is split into two tabs, one about the round stats
            // and the other is a list of RoundEndPlayerInfo for each player.
            // This tab would be a good place for things like: "x many people died.",
            // "clown slipped the crew x times.", "x shots were fired this round.", etc.
            // Also good for serious info.

            var roundEndTabs = new TabContainer();

            roundEndTabs.AddChild(MakeRoundEndSummaryTab(gm, roundEnd, roundTimeSpan));
            roundEndTabs.AddChild(MakePlayerManifestoTab(info));

            Contents.AddChild(roundEndTabs);

            OpenCentered();
            MoveToFront();
        }
            public StorageWindow()
            {
                Title           = "Storage Item";
                RectClipContent = true;

                VSplitContainer = new VBoxContainer();
                Information     = new Label
                {
                    Text = "Items: 0 Volume: 0/0 Stuff",
                    SizeFlagsVertical = SizeFlags.ShrinkCenter
                };
                VSplitContainer.AddChild(Information);

                var listScrollContainer = new ScrollContainer
                {
                    SizeFlagsVertical   = SizeFlags.FillExpand,
                    SizeFlagsHorizontal = SizeFlags.FillExpand,
                    HScrollEnabled      = true,
                    VScrollEnabled      = true
                };

                EntityList = new VBoxContainer
                {
                    SizeFlagsHorizontal = SizeFlags.FillExpand
                };
                listScrollContainer.AddChild(EntityList);
                VSplitContainer.AddChild(listScrollContainer);

                AddItemButton = new Button
                {
                    Text                = "Add Item",
                    ToggleMode          = false,
                    SizeFlagsHorizontal = SizeFlags.FillExpand
                };
                AddItemButton.OnPressed += OnAddItemButtonPressed;
                VSplitContainer.AddChild(AddItemButton);

                Contents.AddChild(VSplitContainer);
            }
Exemplo n.º 3
0
        public TileSpawnWindow(ITileDefinitionManager tileDefinitionManager, IPlacementManager placementManager,
                               IResourceCache resourceCache)
        {
            __tileDefinitionManager = tileDefinitionManager;
            _placementManager       = placementManager;
            _resourceCache          = resourceCache;

            var vBox = new VBoxContainer();

            Contents.AddChild(vBox);
            var hBox = new HBoxContainer();

            vBox.AddChild(hBox);
            SearchBar = new LineEdit {
                PlaceHolder = "Search", SizeFlagsHorizontal = SizeFlags.FillExpand
            };
            SearchBar.OnTextChanged += OnSearchBarTextChanged;
            hBox.AddChild(SearchBar);

            ClearButton = new Button {
                Text = "Clear"
            };
            ClearButton.OnPressed += OnClearButtonPressed;
            hBox.AddChild(ClearButton);

            TileList = new ItemList {
                SizeFlagsVertical = SizeFlags.FillExpand
            };
            TileList.OnItemSelected   += TileListOnOnItemSelected;
            TileList.OnItemDeselected += TileListOnOnItemDeselected;
            vBox.AddChild(TileList);

            BuildTileList();

            _placementManager.PlacementChanged += OnPlacementCanceled;

            Title = "Place Tiles";
        }
Exemplo n.º 4
0
        public BlockGameMenu(BlockGameBoundUserInterface owner)
        {
            Title  = "Nanotrasen Block Game";
            _owner = owner;

            var resourceCache     = IoCManager.Resolve <IResourceCache>();
            var backgroundTexture = resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png");

            _mainPanel = new PanelContainer();

            SetupGameMenu(backgroundTexture);
            _mainPanel.AddChild(_gameRootContainer);

            SetupPauseMenu(backgroundTexture);

            SetupGameoverScreen(backgroundTexture);

            SetupHighScoreScreen(backgroundTexture);

            Contents.AddChild(_mainPanel);

            CanKeyboardFocus = true;
        }
Exemplo n.º 5
0
        public TutorialWindow()
        {
            Title = "The Tutorial!";

            //Get section header font
            var  cache      = IoCManager.Resolve <IResourceCache>();
            Font headerFont = new VectorFont(cache.GetResource <FontResource>("/Nano/NotoSans/NotoSans-Regular.ttf"), _headerFontSize);

            var scrollContainer = new ScrollContainer();

            scrollContainer.AddChild(VBox = new VBoxContainer());
            Contents.AddChild(scrollContainer);

            //Intro
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "Intro"
            });
            AddFormattedText(IntroContents);

            //Controls
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "Controls"
            });
            AddFormattedText(QuickControlsContents);

            //Gameplay
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "Gameplay"
            });
            AddFormattedText(GameplayContents);

            //Feedback
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "Feedback"
            });
            AddFormattedText(FeedbackContents);
        }
Exemplo n.º 6
0
        private void PerformLayout()
        {
            var vBox = new VBoxContainer();

            Contents.AddChild(vBox);
            vBox.SetAnchorAndMarginPreset(LayoutPreset.Wide);

            VSyncCheckBox = new CheckBox {
                Text = "VSync"
            };
            vBox.AddChild(VSyncCheckBox);
            VSyncCheckBox.OnToggled += OnCheckBoxToggled;

            FullscreenCheckBox = new CheckBox {
                Text = "Fullscreen"
            };
            vBox.AddChild(FullscreenCheckBox);
            FullscreenCheckBox.OnToggled += OnCheckBoxToggled;

            HighResLightsCheckBox = new CheckBox {
                Text = "High-Res Lights"
            };
            vBox.AddChild(HighResLightsCheckBox);
            HighResLightsCheckBox.OnToggled += OnCheckBoxToggled;

            ApplyButton = new Button
            {
                Text = "Apply", TextAlign = Button.AlignMode.Center,
                SizeFlagsVertical = SizeFlags.ShrinkCenter
            };
            vBox.AddChild(ApplyButton);
            ApplyButton.OnPressed += OnApplyButtonPressed;

            VSyncCheckBox.Pressed         = configManager.GetCVar <bool>("display.vsync");
            HighResLightsCheckBox.Pressed = configManager.GetCVar <bool>("display.highreslights");
            FullscreenCheckBox.Pressed    = ConfigIsFullscreen;
        }
        public BadOpenGLVersionWindow(IClydeDebugInfo debugInfo)
        {
            Title = "Unsupported OpenGL version!";

            var message = $@"You are using an old ({debugInfo.OpenGLVersion}) version of OpenGL.
The minimum version we support is {debugInfo.MinimumVersion}.

Make sure your graphics drivers are up to date.
If this does not help, your graphics card is probably too old.
You will most likely experience graphics glitches, if you can even read this in the first place.

Extra debugging info:
Renderer: {debugInfo.Renderer}
Vendor: {debugInfo.Vendor}
Version: {debugInfo.VersionString}";

            var label = new Label {
                Text = message
            };

            Contents.AddChild(label);

            Size = CombinedMinimumSize;
        }
            public CharacterWindow(List <ICharacterUI> windowComponents)
            {
                Title = "Character";

                var contentsVBox = new BoxContainer
                {
                    Orientation = LayoutOrientation.Vertical
                };

                var mainScrollContainer = new ScrollContainer {
                };

                mainScrollContainer.AddChild(contentsVBox);

                Contents.AddChild(mainScrollContainer);

                windowComponents.Sort((a, b) => ((int)a.Priority).CompareTo((int)b.Priority));
                foreach (var element in windowComponents)
                {
                    contentsVBox.AddChild(element.Scene);
                }

                _windowComponents = windowComponents;
            }
        public MagicMirrorWindow(MagicMirrorBoundUserInterface owner, IResourceCache resourceCache, ILocalizationManager localization)
        {
            Title = "Magic Mirror";

            _hairPickerWindow = new HairPickerWindow(resourceCache, localization);
            _hairPickerWindow.Populate();
            _hairPickerWindow.OnHairStylePicked += newStyle => owner.HairSelected(newStyle, false);
            _hairPickerWindow.OnHairColorPicked += newColor => owner.HairColorSelected(newColor, false);

            _facialHairPickerWindow = new FacialHairPickerWindow(resourceCache, localization);
            _facialHairPickerWindow.Populate();
            _facialHairPickerWindow.OnHairStylePicked += newStyle => owner.HairSelected(newStyle, true);
            _facialHairPickerWindow.OnHairColorPicked += newColor => owner.HairColorSelected(newColor, true);

            var vBox = new VBoxContainer();

            Contents.AddChild(vBox);

            var hairButton = new Button
            {
                Text = localization.GetString("Customize hair")
            };

            hairButton.OnPressed += args => _hairPickerWindow.Open();
            vBox.AddChild(hairButton);

            var facialHairButton = new Button
            {
                Text = localization.GetString("Customize facial hair")
            };

            facialHairButton.OnPressed += args => _facialHairPickerWindow.Open();
            vBox.AddChild(facialHairButton);

            Size = CombinedMinimumSize;
        }
Exemplo n.º 10
0
        public GhostTargetWindow(GhostComponent owner)
        {
            MinSize = SetSize = (300, 450);
            Title   = "Ghost Warp";
            _owner  = owner;
            _owner.GhostRequestWarpPoint();
            _owner.GhostRequestPlayerNames();

            _buttonContainer = new VBoxContainer()
            {
                VerticalExpand     = true,
                SeparationOverride = 5,
            };

            var scrollBarContainer = new ScrollContainer()
            {
                VerticalExpand   = true,
                HorizontalExpand = true
            };

            scrollBarContainer.AddChild(_buttonContainer);

            Contents.AddChild(scrollBarContainer);
        }
        public ResearchConsoleMenu(ResearchConsoleBoundUserInterface owner = null)
        {
            IoCManager.InjectDependencies(this);

            Title = _localizationManager.GetString("R&D Console");

            Owner = owner;

            _unlockedTechnologies = new ItemList()
            {
                SelectMode          = ItemList.ItemListSelectMode.Button,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SizeFlagsVertical   = SizeFlags.FillExpand,
            };

            _unlockedTechnologies.OnItemSelected += UnlockedTechnologySelected;

            _unlockableTechnologies = new ItemList()
            {
                SelectMode          = ItemList.ItemListSelectMode.Button,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SizeFlagsVertical   = SizeFlags.FillExpand,
            };

            _unlockableTechnologies.OnItemSelected += UnlockableTechnologySelected;

            _futureTechnologies = new ItemList()
            {
                SelectMode          = ItemList.ItemListSelectMode.Button,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SizeFlagsVertical   = SizeFlags.FillExpand,
            };

            _futureTechnologies.OnItemSelected += FutureTechnologySelected;

            var vbox = new VBoxContainer()
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SizeFlagsVertical   = SizeFlags.FillExpand,
            };

            var hboxTechnologies = new HBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 2,
                SeparationOverride    = 10,
            };

            var hboxSelected = new HBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1
            };

            var vboxPoints = new VBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
            };

            var vboxTechInfo = new VBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 3,
            };

            _pointLabel = new Label()
            {
                Text = _localizationManager.GetString("Research Points") + ": 0"
            };
            _pointsPerSecondLabel = new Label()
            {
                Text = _localizationManager.GetString("Points per Second") + ": 0"
            };

            var vboxPointsButtons = new VBoxContainer()
            {
                Align = BoxContainer.AlignMode.End,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SizeFlagsVertical   = SizeFlags.FillExpand,
            };

            ServerSelectionButton = new Button()
            {
                Text = _localizationManager.GetString("Server list")
            };
            ServerSyncButton = new Button()
            {
                Text = _localizationManager.GetString("Sync")
            };
            UnlockButton = new Button()
            {
                Text = _localizationManager.GetString("Unlock"), Disabled = true
            };


            vboxPointsButtons.AddChild(ServerSelectionButton);
            vboxPointsButtons.AddChild(ServerSyncButton);
            vboxPointsButtons.AddChild(UnlockButton);

            vboxPoints.AddChild(_pointLabel);
            vboxPoints.AddChild(_pointsPerSecondLabel);
            vboxPoints.AddChild(vboxPointsButtons);

            _technologyIcon = new TextureRect()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
                Stretch = TextureRect.StretchMode.KeepAspectCentered,
            };
            _technologyName         = new Label();
            _technologyDescription  = new Label();
            _technologyRequirements = new Label();

            vboxTechInfo.AddChild(_technologyName);
            vboxTechInfo.AddChild(_technologyDescription);
            vboxTechInfo.AddChild(_technologyRequirements);

            hboxSelected.AddChild(_technologyIcon);
            hboxSelected.AddChild(vboxTechInfo);
            hboxSelected.AddChild(vboxPoints);

            hboxTechnologies.AddChild(_unlockedTechnologies);
            hboxTechnologies.AddChild(_unlockableTechnologies);
            hboxTechnologies.AddChild(_futureTechnologies);

            vbox.AddChild(hboxTechnologies);
            vbox.AddChild(hboxSelected);

            Contents.AddChild(vbox);

            UnlockButton.OnPressed += (args) =>
            {
                CleanSelectedTechnology();
            };

            Populate();
        }
Exemplo n.º 12
0
            public Menu(AdminAddReagentEui eui)
            {
                _eui = eui;

                Title = Loc.GetString("admin-add-reagent-eui-title");

                Contents.AddChild(new BoxContainer
                {
                    Orientation = LayoutOrientation.Vertical,
                    Children    =
                    {
                        new GridContainer
                        {
                            Columns  = 2,
                            Children =
                            {
                                new Label {
                                    Text = Loc.GetString("admin-add-reagent-eui-current-volume-label") + " "
                                },
                                (_volumeLabel = new Label()),
                                new Label {
                                    Text = Loc.GetString("admin-add-reagent-eui-reagent-label") + " "
                                },
                                (_reagentIdEdit = new LineEdit{
                                    PlaceHolder = Loc.GetString("admin-add-reagent-eui-reagent-id-edit")
                                }),
                                new Label {
                                    Text = Loc.GetString("admin-add-reagent-eui-amount-label") + " "
                                },
                                (_amountEdit = new LineEdit
                                {
                                    PlaceHolder = Loc.GetString("admin-add-reagent-eui-amount-edit"),
                                    HorizontalExpand = true
                                }),
                            },
                            HorizontalExpand = true,
                            VerticalExpand   = true
                        },
                        new BoxContainer
                        {
                            Orientation = LayoutOrientation.Horizontal,
                            Children    =
                            {
                                (_errorLabel         = new Label
                                {
                                    HorizontalExpand = true,
                                    ClipText         = true
                                }),

                                (_addButton          = new Button {
                                    Text             = Loc.GetString("admin-add-reagent-eui-add-button")
                                }),
                                (_addCloseButton     = new Button {
                                    Text             = Loc.GetString("admin-add-reagent-eui-add-close-button")
                                })
                            }
                        }
                    }
                });

                _reagentIdEdit.OnTextChanged += _ => CheckErrors();
                _amountEdit.OnTextChanged    += _ => CheckErrors();
                _addButton.OnPressed         += _ => DoAdd(false);
                _addCloseButton.OnPressed    += _ => DoAdd(true);

                CheckErrors();
            }
Exemplo n.º 13
0
        protected override void Initialize()
        {
            base.Initialize();

            Title = "Entity Spawn Panel";

            HSplitContainer = new HSplitContainer
            {
                Name        = "HSplitContainer",
                MouseFilter = MouseFilterMode.Pass
            };

            // Left side
            var prototypeListScroll = new ScrollContainer("PrototypeListScrollContainer")
            {
                CustomMinimumSize   = new Vector2(200.0f, 0.0f),
                RectClipContent     = true,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                HScrollEnabled      = true,
                VScrollEnabled      = true
            };

            PrototypeList = new VBoxContainer("PrototypeList")
            {
                MouseFilter         = MouseFilterMode.Ignore,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SeparationOverride  = new int?(2),
                Align = BoxContainer.AlignMode.Begin
            };
            prototypeListScroll.AddChild(PrototypeList);
            HSplitContainer.AddChild(prototypeListScroll);

            // Right side
            var options = new VBoxContainer("Options")
            {
                CustomMinimumSize = new Vector2(200.0f, 0.0f), MouseFilter = MouseFilterMode.Ignore
            };

            SearchBar = new LineEdit("SearchBar")
            {
                MouseFilter = MouseFilterMode.Stop, PlaceHolder = "Search Entities"
            };
            SearchBar.OnTextChanged += OnSearchBarTextChanged;
            options.AddChild(SearchBar);

            var buttons = new HBoxContainer("Buttons!")
            {
                MouseFilter = MouseFilterMode.Ignore
            };

            ClearButton = new Button("ClearButton")
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                Disabled            = true,
                ToggleMode          = false,
                Text = "Clear Search",
            };
            ClearButton.OnPressed += OnClearButtonPressed;
            EraseButton            = new Button("EraseButton")
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                ToggleMode          = true,
                Text = "Erase Mode"
            };
            EraseButton.OnToggled += OnEraseButtonToggled;
            buttons.AddChild(ClearButton);
            buttons.AddChild(EraseButton);
            options.AddChild(buttons);

            var overridePlacementText = new Label("OverridePlacementText")
            {
                MouseFilter       = MouseFilterMode.Ignore,
                SizeFlagsVertical = SizeFlags.ShrinkCenter,
                Text = "Override Placement:"
            };

            OverrideMenu = new OptionButton("OverrideMenu")
            {
                ToggleMode = false
            };                                                                   //, TextAlign = Button.AlignMode.Left};
            OverrideMenu.OnItemSelected += OnOverrideMenuItemSelected;
            for (var i = 0; i < initOpts.Length; i++)
            {
                OverrideMenu.AddItem(initOpts[i], i);
            }

            options.AddChild(overridePlacementText);
            options.AddChild(OverrideMenu);
            HSplitContainer.AddChild(options);
            Contents.AddChild(HSplitContainer);

            Size = new Vector2(400.0f, 300.0f);
        }
Exemplo n.º 14
0
            public ApcWindow()
            {
                Title = "APC";
                var rows = new VBoxContainer("Rows");

                var statusHeader = new Label("StatusHeader")
                {
                    Text = "Power Status: "
                };

                rows.AddChild(statusHeader);

                var breaker      = new HBoxContainer("Breaker");
                var breakerLabel = new Label("Label")
                {
                    Text = "Main Breaker: "
                };

                BreakerButton = new CheckButton {
                    Name = "Breaker", Text = "Toggle"
                };
                breaker.AddChild(breakerLabel);
                breaker.AddChild(BreakerButton);
                rows.AddChild(breaker);

                var externalStatus      = new HBoxContainer("ExternalStatus");
                var externalStatusLabel = new Label("Label")
                {
                    Text = "External Power: "
                };

                ExternalPowerStateLabel = new Label("Status")
                {
                    Text = "Good"
                };
                ExternalPowerStateLabel.SetOnlyStyleClass(NanoStyle.StyleClassPowerStateGood);
                externalStatus.AddChild(externalStatusLabel);
                externalStatus.AddChild(ExternalPowerStateLabel);
                rows.AddChild(externalStatus);

                var charge      = new HBoxContainer("Charge");
                var chargeLabel = new Label("Label")
                {
                    Text = "Charge:"
                };

                ChargeBar = new ProgressBar("Charge")
                {
                    SizeFlagsHorizontal = Control.SizeFlags.FillExpand,
                    MinValue            = 0.0f,
                    MaxValue            = 1.0f,
                    Page  = 0.0f,
                    Value = 0.5f
                };
                ChargePercentage = new Label("ChargePercentage");
                charge.AddChild(chargeLabel);
                charge.AddChild(ChargeBar);
                charge.AddChild(ChargePercentage);
                rows.AddChild(charge);

                Contents.AddChild(rows);
            }
Exemplo n.º 15
0
        public InstrumentMenu(InstrumentBoundUserInterface owner)
        {
            IoCManager.InjectDependencies(this);

            _owner = owner;

            _owner.Instrument.OnMidiPlaybackEnded += InstrumentOnMidiPlaybackEnded;

            Title = _owner.Instrument.Owner.Name;

            var margin = new MarginContainer()
            {
                SizeFlagsVertical   = SizeFlags.FillExpand,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
            };

            var vBox = new VBoxContainer()
            {
                SizeFlagsVertical  = SizeFlags.FillExpand,
                SeparationOverride = 5,
            };

            var hBoxTopButtons = new HBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
                Align = BoxContainer.AlignMode.Center
            };

            _midiInputButton = new Button()
            {
                Text                  = Loc.GetString("MIDI Input"),
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
                ToggleMode            = true,
                Pressed               = _owner.Instrument.IsInputOpen,
            };

            _midiInputButton.OnToggled += MidiInputButtonOnOnToggled;

            var topSpacer = new Control()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 2,
            };

            var midiFileButton = new Button()
            {
                Text                  = Loc.GetString("Play MIDI File"),
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
            };

            midiFileButton.OnPressed += MidiFileButtonOnOnPressed;

            var hBoxBottomButtons = new HBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
                Align = BoxContainer.AlignMode.Center
            };

            _midiLoopButton = new Button()
            {
                Text                  = Loc.GetString("Loop"),
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
                ToggleMode            = true,
                Disabled              = !_owner.Instrument.IsMidiOpen,
                Pressed               = _owner.Instrument.LoopMidi,
            };

            _midiLoopButton.OnToggled += MidiLoopButtonOnOnToggled;

            var bottomSpacer = new Control()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 2,
            };

            _midiStopButton = new Button()
            {
                Text                  = Loc.GetString("Stop"),
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
                Disabled              = !_owner.Instrument.IsMidiOpen,
            };

            _midiStopButton.OnPressed += MidiStopButtonOnPressed;

            hBoxBottomButtons.AddChild(_midiLoopButton);
            hBoxBottomButtons.AddChild(bottomSpacer);
            hBoxBottomButtons.AddChild(_midiStopButton);

            hBoxTopButtons.AddChild(_midiInputButton);
            hBoxTopButtons.AddChild(topSpacer);
            hBoxTopButtons.AddChild(midiFileButton);

            vBox.AddChild(hBoxTopButtons);
            vBox.AddChild(hBoxBottomButtons);

            margin.AddChild(vBox);

            if (!_midiManager.IsAvailable)
            {
                margin.AddChild(new PanelContainer
                {
                    MouseFilter   = MouseFilterMode.Stop,
                    PanelOverride = new StyleBoxFlat {
                        BackgroundColor = Color.Black.WithAlpha(0.90f)
                    },
                    Children =
                    {
                        new Label
                        {
                            Align               = Label.AlignMode.Center,
                            SizeFlagsVertical   = SizeFlags.ShrinkCenter,
                            SizeFlagsHorizontal = SizeFlags.ShrinkCenter,
                            StyleClasses        = { StyleNano.StyleClassLabelBig },
                            Text = Loc.GetString("MIDI support is currently\nnot available on your platform.")
                        }
                    }
                });
            }

            Contents.AddChild(margin);
        }
        public LateJoinGui()
        {
            IoCManager.InjectDependencies(this);

            Title = Loc.GetString("Late Join");

            var jobList = new VBoxContainer();
            var vBox    = new VBoxContainer
            {
                Children =
                {
                    new ScrollContainer
                    {
                        SizeFlagsVertical = SizeFlags.FillExpand,
                        Children          =
                        {
                            jobList
                        }
                    }
                }
            };

            Contents.AddChild(vBox);

            foreach (var job in _prototypeManager.EnumeratePrototypes <JobPrototype>().OrderBy(j => j.Name))
            {
                var jobButton = new JobButton
                {
                    JobId = job.ID
                };

                var jobSelector = new HBoxContainer
                {
                    SizeFlagsHorizontal = SizeFlags.FillExpand
                };

                var icon = new TextureRect
                {
                    TextureScale = (2, 2),
                    Stretch      = TextureRect.StretchMode.KeepCentered
                };

                if (job.Icon != null)
                {
                    var specifier = new SpriteSpecifier.Rsi(new ResourcePath("/Textures/Interface/Misc/job_icons.rsi"), job.Icon);
                    icon.Texture = specifier.Frame0();
                }
                jobSelector.AddChild(icon);

                var jobLabel = new Label
                {
                    Text = job.Name
                };

                jobSelector.AddChild(jobLabel);

                jobButton.AddChild(jobSelector);
                jobList.AddChild(jobButton);
                jobButton.OnPressed += args =>
                {
                    SelectedId?.Invoke(jobButton.JobId);
                };
            }

            SelectedId += jobId =>
            {
                Logger.InfoS("latejoin", $"Late joining as ID: {jobId}");
                _console.ProcessCommand($"joingame {CommandParsing.Escape(jobId)}");
                Close();
            };
        }
Exemplo n.º 17
0
        public AMEWindow()
        {
            IoCManager.InjectDependencies(this);

            Title = "Antimatter Control Unit";
            Contents.AddChild(new VBoxContainer
            {
                Children =
                {
                    new HBoxContainer
                    {
                        Children =
                        {
                            new Label {
                                Text = Loc.GetString("Engine Status") + ": "
                            },
                            (InjectionStatus = new Label{
                                Text = "Not Injecting"
                            })
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            (ToggleInjection = new Button{
                                Text         = "Toggle Injection", StyleClasses ={ StyleBase.ButtonOpenBoth                                     }, Disabled = true
                            }),
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            new Label {
                                Text = Loc.GetString("Fuel Status") + ": "
                            },
                            (FuelAmount = new Label{
                                Text = "No fuel inserted"
                            })
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            (EjectButton = new Button{
                                Text     = "Eject", StyleClasses ={ StyleBase.ButtonOpenBoth                                     }, Disabled = true
                            }),
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            new Label {
                                Text = Loc.GetString("Injection amount") + ": "
                            },
                            (InjectionAmount = new Label{
                                Text = "0"
                            })
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            (IncreaseFuelButton = new Button{
                                Text            = "Increase", StyleClasses ={ StyleBase.ButtonOpenRight                                    }
                            }),
                            (DecreaseFuelButton = new Button{
                                Text            = "Decrease", StyleClasses ={ StyleBase.ButtonOpenLeft                                     }
                            }),
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            (RefreshPartsButton = new Button{
                                Text            = "Refresh Parts", StyleClasses ={ StyleBase.ButtonOpenBoth                                     }, Disabled = true
                            }),
                            new Label {
                                Text            = Loc.GetString("Core count") + ": "
                            },
                            (CoreCount          = new Label{
                                Text            = "0"
                            }),
                        }
                    }
                }
            });
        }
        public SpaceVillainArcadeMenu(SpaceVillainArcadeBoundUserInterface owner)
        {
            Title = "Space Villain";
            Owner = owner;

            GridContainer grid = new GridContainer();

            grid.Columns = 1;

            GridContainer infoGrid = new GridContainer();

            infoGrid.Columns = 3;
            infoGrid.AddChild(new Label {
                Text = "Player", Align = Label.AlignMode.Center
            });
            infoGrid.AddChild(new Label {
                Text = "|", Align = Label.AlignMode.Center
            });
            _enemyNameLabel = new Label {
                Align = Label.AlignMode.Center
            };
            infoGrid.AddChild(_enemyNameLabel);

            _playerInfoLabel = new Label {
                Align = Label.AlignMode.Center
            };
            infoGrid.AddChild(_playerInfoLabel);
            infoGrid.AddChild(new Label {
                Text = "|", Align = Label.AlignMode.Center
            });
            _enemyInfoLabel = new Label {
                Align = Label.AlignMode.Center
            };
            infoGrid.AddChild(_enemyInfoLabel);
            CenterContainer centerContainer = new CenterContainer();

            centerContainer.AddChild(infoGrid);
            grid.AddChild(centerContainer);

            _playerActionLabel       = new Label();
            _playerActionLabel.Align = Label.AlignMode.Center;
            grid.AddChild(_playerActionLabel);

            _enemyActionLabel       = new Label();
            _enemyActionLabel.Align = Label.AlignMode.Center;
            grid.AddChild(_enemyActionLabel);

            GridContainer buttonGrid = new GridContainer();

            buttonGrid.Columns = 3;
            Button attack = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Attack);

            attack.Text = "ATTACK";
            buttonGrid.AddChild(attack);

            Button heal = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Heal);

            heal.Text = "HEAL";
            buttonGrid.AddChild(heal);

            Button recharge = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Recharge);

            recharge.Text = "RECHARGE";
            buttonGrid.AddChild(recharge);

            centerContainer = new CenterContainer();
            centerContainer.AddChild(buttonGrid);
            grid.AddChild(centerContainer);

            Button newGame = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.NewGame);

            newGame.Text = "New Game";
            grid.AddChild(newGame);

            centerContainer = new CenterContainer();
            centerContainer.AddChild(grid);
            Contents.AddChild(centerContainer);
        }
Exemplo n.º 19
0
        public readonly Button MachineLinkingButton; // Enables/disables machine linking mode.

        public SandboxWindow()
        {
            Resizable = false;

            Title = "Sandbox Panel";

            var vBox = new VBoxContainer {
                SeparationOverride = 4
            };

            Contents.AddChild(vBox);

            RespawnButton = new Button {
                Text = Loc.GetString("Respawn")
            };
            vBox.AddChild(RespawnButton);

            SpawnEntitiesButton = new Button {
                Text = Loc.GetString("Spawn Entities")
            };
            vBox.AddChild(SpawnEntitiesButton);

            SpawnTilesButton = new Button {
                Text = Loc.GetString("Spawn Tiles")
            };
            vBox.AddChild(SpawnTilesButton);

            GiveFullAccessButton = new Button {
                Text = Loc.GetString("Grant Full Access")
            };
            vBox.AddChild(GiveFullAccessButton);

            GiveAghostButton = new Button {
                Text = Loc.GetString("Ghost")
            };
            vBox.AddChild(GiveAghostButton);

            ToggleLightButton = new Button {
                Text = Loc.GetString("Toggle Lights"), ToggleMode = true
            };
            vBox.AddChild(ToggleLightButton);

            ToggleFovButton = new Button {
                Text = Loc.GetString("Toggle FOV"), ToggleMode = true
            };
            vBox.AddChild(ToggleFovButton);

            ToggleShadowsButton = new Button {
                Text = Loc.GetString("Toggle Shadows"), ToggleMode = true
            };
            vBox.AddChild(ToggleShadowsButton);

            ToggleSubfloorButton = new Button {
                Text = Loc.GetString("Toggle Subfloor"), ToggleMode = true
            };
            vBox.AddChild(ToggleSubfloorButton);

            SuicideButton = new Button {
                Text = Loc.GetString("Suicide")
            };
            vBox.AddChild(SuicideButton);

            ShowMarkersButton = new Button {
                Text = Loc.GetString("Show Spawns"), ToggleMode = true
            };
            vBox.AddChild(ShowMarkersButton);

            ShowBbButton = new Button {
                Text = Loc.GetString("Show Bb"), ToggleMode = true
            };
            vBox.AddChild(ShowBbButton);

            MachineLinkingButton = new Button {
                Text = Loc.GetString("Link machines"), ToggleMode = true
            };
            vBox.AddChild(MachineLinkingButton);
        }
Exemplo n.º 20
0
        public BodyScannerDisplay(BodyScannerBoundUserInterface owner)
        {
            IoCManager.InjectDependencies(this);
            Owner = owner;
            Title = Loc.GetString("Body Scanner");

            var hSplit = new HBoxContainer
            {
                Children =
                {
                    // Left half
                    new ScrollContainer
                    {
                        SizeFlagsHorizontal = SizeFlags.FillExpand,
                        Children            =
                        {
                            (BodyPartList = new ItemList())
                        }
                    },
                    // Right half
                    new VBoxContainer
                    {
                        SizeFlagsHorizontal = SizeFlags.FillExpand,
                        Children            =
                        {
                            // Top half of the right half
                            new VBoxContainer
                            {
                                SizeFlagsVertical = SizeFlags.FillExpand,
                                Children          =
                                {
                                    (BodyPartLabel          = new Label()),
                                    new HBoxContainer
                                    {
                                        Children            =
                                        {
                                            new Label
                                            {
                                                Text        = "Health: "
                                            },
                                            (BodyPartHealth = new Label())
                                        }
                                    },
                                    new ScrollContainer
                                    {
                                        SizeFlagsVertical = SizeFlags.FillExpand,
                                        Children          =
                                        {
                                            (MechanismList  = new ItemList())
                                        }
                                    }
                                }
                            },
                            // Bottom half of the right half
                            (MechanismInfoLabel = new RichTextLabel
                            {
                                SizeFlagsVertical = SizeFlags.FillExpand
                            })
                        }
                    }
                }
            };

            Contents.AddChild(hSplit);

            BodyPartList.OnItemSelected  += BodyPartOnItemSelected;
            MechanismList.OnItemSelected += MechanismOnItemSelected;
        }
Exemplo n.º 21
0
        public ActionMenu(ClientActionsComponent actionsComponent, ActionsUI actionsUI)
        {
            _actionsComponent = actionsComponent;
            _actionsUI        = actionsUI;
            _actionManager    = IoCManager.Resolve <ActionManager>();
            _gameHud          = IoCManager.Resolve <IGameHud>();

            Title             = Loc.GetString("Actions");
            CustomMinimumSize = (300, 300);

            Contents.AddChild(new VBoxContainer
            {
                Children =
                {
                    new HBoxContainer
                    {
                        Children =
                        {
                            (_searchBar             = new LineEdit
                            {
                                StyleClasses        ={ StyleNano.StyleClassActionSearchBox                    },
                                SizeFlagsHorizontal = SizeFlags.FillExpand,
                                PlaceHolder         = Loc.GetString("Search")
                            }),
                            (_filterButton          = new MultiselectOptionButton <string>()
                            {
                                Label               = Loc.GetString("Filter")
                            }),
                        }
                    },
                    (_clearButton = new Button
                    {
                        Text = Loc.GetString("Clear"),
                    }),
                    (_filterLabel = new Label()),
                    new ScrollContainer
                    {
                        //TODO: needed? CustomMinimumSize = new Vector2(200.0f, 0.0f),
                        SizeFlagsVertical   = SizeFlags.FillExpand,
                        SizeFlagsHorizontal = SizeFlags.FillExpand,
                        Children            =
                        {
                            (_resultsGrid = new GridContainer
                            {
                                MaxWidth  = 300
                            })
                        }
                    }
                }
            });

            // populate filters from search tags
            var filterTags = new List <string>();

            foreach (var action in _actionManager.EnumerateActions())
            {
                filterTags.AddRange(action.Filters);
            }

            // special one to filter to only include item actions
            filterTags.Add(ItemTag);
            filterTags.Add(NotItemTag);
            filterTags.Add(InstantActionTag);
            filterTags.Add(ToggleActionTag);
            filterTags.Add(TargetActionTag);
            filterTags.Add(AllActionsTag);
            filterTags.Add(GrantedActionsTag);

            foreach (var tag in filterTags.Distinct().OrderBy(tag => tag))
            {
                _filterButton.AddItem(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(tag), tag);
            }

            UpdateFilterLabel();

            _dragShadow = new TextureRect
            {
                CustomMinimumSize = (64, 64),
                Stretch           = TextureRect.StretchMode.Scale,
                Visible           = false
            };
            UserInterfaceManager.PopupRoot.AddChild(_dragShadow);
            LayoutContainer.SetSize(_dragShadow, (64, 64));

            _dragDropHelper = new DragDropHelper <ActionMenuItem>(OnBeginActionDrag, OnContinueActionDrag, OnEndActionDrag);
        }
Exemplo n.º 22
0
        private readonly Button[] _gameButtons = new Button[3]; //used to disable/enable all game buttons
        public SpaceVillainArcadeMenu(SpaceVillainArcadeBoundUserInterface owner)
        {
            MinSize = SetSize = (400, 200);
            Title   = Loc.GetString("Space Villain");
            Owner   = owner;

            var grid = new GridContainer {
                Columns = 1
            };

            var infoGrid = new GridContainer {
                Columns = 3
            };

            infoGrid.AddChild(new Label {
                Text = Loc.GetString("Player"), Align = Label.AlignMode.Center
            });
            infoGrid.AddChild(new Label {
                Text = "|", Align = Label.AlignMode.Center
            });
            _enemyNameLabel = new Label {
                Align = Label.AlignMode.Center
            };
            infoGrid.AddChild(_enemyNameLabel);

            _playerInfoLabel = new Label {
                Align = Label.AlignMode.Center
            };
            infoGrid.AddChild(_playerInfoLabel);
            infoGrid.AddChild(new Label {
                Text = "|", Align = Label.AlignMode.Center
            });
            _enemyInfoLabel = new Label {
                Align = Label.AlignMode.Center
            };
            infoGrid.AddChild(_enemyInfoLabel);
            var centerContainer = new CenterContainer();

            centerContainer.AddChild(infoGrid);
            grid.AddChild(centerContainer);

            _playerActionLabel = new Label {
                Align = Label.AlignMode.Center
            };
            grid.AddChild(_playerActionLabel);

            _enemyActionLabel = new Label {
                Align = Label.AlignMode.Center
            };
            grid.AddChild(_enemyActionLabel);

            var buttonGrid = new GridContainer {
                Columns = 3
            };

            _gameButtons[0] = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Attack)
            {
                Text = Loc.GetString("ATTACK")
            };
            buttonGrid.AddChild(_gameButtons[0]);

            _gameButtons[1] = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Heal)
            {
                Text = Loc.GetString("HEAL")
            };
            buttonGrid.AddChild(_gameButtons[1]);

            _gameButtons[2] = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Recharge)
            {
                Text = Loc.GetString("RECHARGE")
            };
            buttonGrid.AddChild(_gameButtons[2]);

            centerContainer = new CenterContainer();
            centerContainer.AddChild(buttonGrid);
            grid.AddChild(centerContainer);

            var newGame = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.NewGame)
            {
                Text = Loc.GetString("New Game")
            };

            grid.AddChild(newGame);

            centerContainer = new CenterContainer();
            centerContainer.AddChild(grid);
            Contents.AddChild(centerContainer);
        }
Exemplo n.º 23
0
        public CargoConsoleMenu(CargoConsoleBoundUserInterface owner)
        {
            IoCManager.InjectDependencies(this);
            Owner = owner;

            if (Owner.RequestOnly)
            {
                Title = _loc.GetString("Cargo Request Console");
            }
            else
            {
                Title = _loc.GetString("Cargo Shuttle Console");
            }

            var rows = new VBoxContainer();

            var accountName      = new HBoxContainer();
            var accountNameLabel = new Label {
                Text         = _loc.GetString("Account Name: "),
                StyleClasses = { NanoStyle.StyleClassLabelKeyText }
            };

            _accountNameLabel = new Label {
                Text = "None" //Owner.Bank.Account.Name
            };
            accountName.AddChild(accountNameLabel);
            accountName.AddChild(_accountNameLabel);
            rows.AddChild(accountName);

            var points      = new HBoxContainer();
            var pointsLabel = new Label
            {
                Text         = _loc.GetString("Points: "),
                StyleClasses = { NanoStyle.StyleClassLabelKeyText }
            };

            _pointsLabel = new Label
            {
                Text = "0" //Owner.Bank.Account.Balance.ToString()
            };
            points.AddChild(pointsLabel);
            points.AddChild(_pointsLabel);
            rows.AddChild(points);

            var shuttleStatus      = new HBoxContainer();
            var shuttleStatusLabel = new Label
            {
                Text         = _loc.GetString("Shuttle Status: "),
                StyleClasses = { NanoStyle.StyleClassLabelKeyText }
            };

            _shuttleStatusLabel = new Label
            {
                Text = _loc.GetString("Away") // Shuttle.Status
            };
            shuttleStatus.AddChild(shuttleStatusLabel);
            shuttleStatus.AddChild(_shuttleStatusLabel);
            rows.AddChild(shuttleStatus);

            var buttons = new HBoxContainer();

            CallShuttleButton = new Button()
            {
                Text                = _loc.GetString("Call Shuttle"),
                TextAlign           = Button.AlignMode.Center,
                SizeFlagsHorizontal = SizeFlags.FillExpand
            };
            PermissionsButton = new Button()
            {
                Text      = _loc.GetString("Permissions"),
                TextAlign = Button.AlignMode.Center
            };
            buttons.AddChild(CallShuttleButton);
            buttons.AddChild(PermissionsButton);
            rows.AddChild(buttons);

            var category = new HBoxContainer();

            _categories = new OptionButton
            {
                Prefix = _loc.GetString("Categories: "),
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1
            };
            _searchBar = new LineEdit
            {
                PlaceHolder           = _loc.GetString("Search"),
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1
            };
            category.AddChild(_categories);
            category.AddChild(_searchBar);
            rows.AddChild(category);

            var products = new ScrollContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 6
            };

            Products = new VBoxContainer()
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                SizeFlagsVertical   = SizeFlags.FillExpand
            };
            products.AddChild(Products);
            rows.AddChild(products);

            var requestsAndOrders = new PanelContainer
            {
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 6,
                PanelOverride         = new StyleBoxFlat {
                    BackgroundColor = Color.Black
                }
            };
            var orderScrollBox = new ScrollContainer
            {
                SizeFlagsVertical = SizeFlags.FillExpand
            };
            var rAndOVBox     = new VBoxContainer();
            var requestsLabel = new Label {
                Text = _loc.GetString("Requests")
            };

            _requests = new VBoxContainer // replace with scroll box so that approval buttons can be added
            {
                StyleClasses          = { "transparentItemList" },
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
            };
            var ordersLabel = new Label {
                Text = _loc.GetString("Orders")
            };

            _orders = new VBoxContainer
            {
                StyleClasses          = { "transparentItemList" },
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
            };
            rAndOVBox.AddChild(requestsLabel);
            rAndOVBox.AddChild(_requests);
            rAndOVBox.AddChild(ordersLabel);
            rAndOVBox.AddChild(_orders);
            orderScrollBox.AddChild(rAndOVBox);
            requestsAndOrders.AddChild(orderScrollBox);
            rows.AddChild(requestsAndOrders);

            rows.AddChild(new TextureButton
            {
                SizeFlagsVertical = SizeFlags.FillExpand,
            });
            Contents.AddChild(rows);

            CallShuttleButton.OnPressed += OnCallShuttleButtonPressed;
            _searchBar.OnTextChanged    += OnSearchBarTextChanged;
            _categories.OnItemSelected  += OnCategoryItemSelected;
        }
Exemplo n.º 24
0
        public TutorialWindow()
        {
            Title = "The Tutorial!";

            //Get section header font
            var  cache        = IoCManager.Resolve <IResourceCache>();
            var  inputManager = IoCManager.Resolve <IInputManager>();
            Font headerFont   = new VectorFont(cache.GetResource <FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), _headerFontSize);

            var scrollContainer = new ScrollContainer();

            scrollContainer.AddChild(VBox = new VBoxContainer());
            Contents.AddChild(scrollContainer);

            //Intro
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "Intro"
            });
            AddFormattedText(IntroContents);

            string Key(BoundKeyFunction func)
            {
                return(FormattedMessage.EscapeText(inputManager.GetKeyFunctionButtonString(func)));
            }

            //Controls
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "\nControls"
            });

            // Moved this down here so that Rider shows which args correspond to which format spot.
            AddFormattedText(Loc.GetString(@"Movement: [color=#a4885c]{0} {1} {2} {3}[/color]
Switch hands: [color=#a4885c]{4}[/color]
Use held item: [color=#a4885c]{5}[/color]
Drop held item: [color=#a4885c]{6}[/color]
Smart equip from backpack: [color=#a4885c]{24}[/color]
Smart equip from belt: [color=#a4885c]{25}[/color]
Open inventory: [color=#a4885c]{7}[/color]
Open character window: [color=#a4885c]{8}[/color]
Open crafting window: [color=#a4885c]{9}[/color]
Open action menu: [color=#a4885c]{33}[/color]
Focus chat: [color=#a4885c]{10}[/color]
Focus OOC: [color=#a4885c]{26}[/color]
Focus Admin Chat: [color=#a4885c]{27}[/color]
Use hand/object in hand: [color=#a4885c]{22}[/color]
Do wide attack: [color=#a4885c]{23}[/color]
Use targeted entity: [color=#a4885c]{11}[/color]
Throw held item: [color=#a4885c]{12}[/color]
Pull entity: [color=#a4885c]{30}[/color]
Move pulled entity: [color=#a4885c]{29}[/color]
Stop pulling: [color=#a4885c]{32}[/color]
Examine entity: [color=#a4885c]{13}[/color]
Point somewhere: [color=#a4885c]{28}[/color]
Open entity context menu: [color=#a4885c]{14}[/color]
Toggle combat mode: [color=#a4885c]{15}[/color]
Toggle console: [color=#a4885c]{16}[/color]
Toggle UI: [color=#a4885c]{17}[/color]
Toggle debug overlay: [color=#a4885c]{18}[/color]
Toggle entity spawner: [color=#a4885c]{19}[/color]
Toggle tile spawner: [color=#a4885c]{20}[/color]
Toggle sandbox window: [color=#a4885c]{21}[/color]
Toggle admin menu [color=#a4885c]{31}[/color]
Hotbar slot 1: [color=#a4885c]{34}[/color]
Hotbar slot 2: [color=#a4885c]{35}[/color]
Hotbar slot 3: [color=#a4885c]{36}[/color]
Hotbar slot 4: [color=#a4885c]{37}[/color]
Hotbar slot 5: [color=#a4885c]{38}[/color]
Hotbar slot 6: [color=#a4885c]{39}[/color]
Hotbar slot 7: [color=#a4885c]{40}[/color]
Hotbar slot 8: [color=#a4885c]{41}[/color]
Hotbar slot 9: [color=#a4885c]{42}[/color]
Hotbar slot 0: [color=#a4885c]{43}[/color]
                ",
                                           Key(MoveUp), Key(MoveLeft), Key(MoveDown), Key(MoveRight),
                                           Key(SwapHands),
                                           Key(ActivateItemInHand),
                                           Key(Drop),
                                           Key(OpenInventoryMenu),
                                           Key(OpenCharacterMenu),
                                           Key(OpenCraftingMenu),
                                           Key(FocusChat),
                                           Key(ActivateItemInWorld),
                                           Key(ThrowItemInHand),
                                           Key(ExamineEntity),
                                           Key(OpenContextMenu),
                                           Key(ToggleCombatMode),
                                           Key(ShowDebugConsole),
                                           Key(HideUI),
                                           Key(ShowDebugMonitors),
                                           Key(OpenEntitySpawnWindow),
                                           Key(OpenTileSpawnWindow),
                                           Key(OpenSandboxWindow),
                                           Key(Use),
                                           Key(WideAttack),
                                           Key(SmartEquipBackpack),
                                           Key(SmartEquipBelt),
                                           Key(FocusOOC),
                                           Key(FocusAdminChat),
                                           Key(Point),
                                           Key(TryPullObject),
                                           Key(MovePulledObject),
                                           Key(OpenAdminMenu),
                                           Key(ReleasePulledObject),
                                           Key(OpenActionsMenu),
                                           Key(Hotbar1),
                                           Key(Hotbar2),
                                           Key(Hotbar3),
                                           Key(Hotbar4),
                                           Key(Hotbar5),
                                           Key(Hotbar6),
                                           Key(Hotbar7),
                                           Key(Hotbar8),
                                           Key(Hotbar9),
                                           Key(Hotbar0)));

            //Gameplay
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "\nGameplay"
            });
            AddFormattedText(GameplayContents);

            //Gameplay
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = Loc.GetString("\nSandbox spawner", Key(OpenSandboxWindow))
            });
            AddFormattedText(SandboxSpawnerContents);

            //Feedback
            VBox.AddChild(new Label {
                FontOverride = headerFont, Text = "\nFeedback"
            });
            AddFormattedText(FeedbackContents);
        }
Exemplo n.º 25
0
        public LatheMenu(LatheBoundUserInterface owner = null)
        {
            IoCManager.InjectDependencies(this);

            Owner = owner;

            Title = "Lathe Menu";

            var margin = new MarginContainer()
            {
                SizeFlagsVertical   = SizeFlags.FillExpand,
                SizeFlagsHorizontal = SizeFlags.FillExpand,
            };

            var vBox = new VBoxContainer()
            {
                SizeFlagsVertical  = SizeFlags.FillExpand,
                SeparationOverride = 5,
            };

            var hBoxButtons = new HBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1,
            };

            QueueButton = new Button()
            {
                Text                  = "Queue",
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.Fill,
                SizeFlagsStretchRatio = 1,
            };

            ServerConnectButton = new Button()
            {
                Text                  = "Server list",
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.Fill,
                SizeFlagsStretchRatio = 1,
            };

            ServerSyncButton = new Button()
            {
                Text                  = "Sync",
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.Fill,
                SizeFlagsStretchRatio = 1,
            };

            var spacer = new Control()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 3,
            };

            var hBoxFilter = new HBoxContainer()
            {
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 1
            };

            _searchBar = new LineEdit()
            {
                PlaceHolder           = "Search Designs",
                SizeFlagsHorizontal   = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 3
            };

            _searchBar.OnTextChanged += Populate;

            var filterButton = new Button()
            {
                Text                  = "Filter",
                TextAlign             = Label.AlignMode.Center,
                SizeFlagsHorizontal   = SizeFlags.Fill,
                SizeFlagsStretchRatio = 1,
                Disabled              = true,
            };

            _items = new ItemList()
            {
                SizeFlagsStretchRatio = 8,
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SelectMode            = ItemList.ItemListSelectMode.Button,
            };

            _items.OnItemSelected += ItemSelected;

            _amountLineEdit = new LineEdit()
            {
                PlaceHolder         = "Amount",
                Text                = "1",
                SizeFlagsHorizontal = SizeFlags.FillExpand,
            };

            _amountLineEdit.OnTextChanged += PopulateDisabled;

            _materials = new ItemList()
            {
                SizeFlagsVertical     = SizeFlags.FillExpand,
                SizeFlagsStretchRatio = 3
            };

            hBoxButtons.AddChild(spacer);
            if (Owner?.Database is ProtolatheDatabaseComponent database)
            {
                hBoxButtons.AddChild(ServerConnectButton);
                hBoxButtons.AddChild(ServerSyncButton);
                database.OnDatabaseUpdated += Populate;
            }
            hBoxButtons.AddChild(QueueButton);

            hBoxFilter.AddChild(_searchBar);
            hBoxFilter.AddChild(filterButton);

            vBox.AddChild(hBoxButtons);
            vBox.AddChild(hBoxFilter);
            vBox.AddChild(_items);
            vBox.AddChild(_amountLineEdit);
            vBox.AddChild(_materials);

            margin.AddChild(vBox);

            Contents.AddChild(margin);
        }
        public ConstructionMenu()
        {
            IoCManager.InjectDependencies(this);
            Placement = (PlacementManager)IoCManager.Resolve <IPlacementManager>();
            Placement.PlacementCanceled += OnPlacementCanceled;

            Title = "Construction";

            var hSplitContainer = new HSplitContainer();

            // Left side
            var recipes = new VBoxContainer {
                CustomMinimumSize = new Vector2(150.0f, 0.0f)
            };

            SearchBar = new LineEdit {
                PlaceHolder = "Search"
            };
            RecipeList = new Tree {
                SizeFlagsVertical = SizeFlags.FillExpand, HideRoot = true
            };
            recipes.AddChild(SearchBar);
            recipes.AddChild(RecipeList);
            hSplitContainer.AddChild(recipes);

            // Right side
            var guide = new VBoxContainer();
            var info  = new HBoxContainer();

            InfoIcon  = new TextureRect();
            InfoLabel = new Label
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.ShrinkCenter
            };
            info.AddChild(InfoIcon);
            info.AddChild(InfoLabel);
            guide.AddChild(info);

            var stepsLabel = new Label
            {
                SizeFlagsHorizontal = SizeFlags.ShrinkCenter,
                SizeFlagsVertical   = SizeFlags.ShrinkCenter,
                Text = "Steps"
            };

            guide.AddChild(stepsLabel);

            StepList = new ItemList
            {
                SizeFlagsVertical = SizeFlags.FillExpand, SelectMode = ItemList.ItemListSelectMode.None
            };
            guide.AddChild(StepList);

            var buttonsContainer = new HBoxContainer();

            BuildButton = new Button
            {
                SizeFlagsHorizontal = SizeFlags.FillExpand,
                TextAlign           = Label.AlignMode.Center,
                Text       = "Build!",
                Disabled   = true,
                ToggleMode = false
            };
            EraseButton = new Button
            {
                TextAlign = Label.AlignMode.Center, Text = "Clear Ghosts", ToggleMode = true
            };
            buttonsContainer.AddChild(BuildButton);
            buttonsContainer.AddChild(EraseButton);
            guide.AddChild(buttonsContainer);

            hSplitContainer.AddChild(guide);
            Contents.AddChild(hSplitContainer);

            BuildButton.OnPressed     += OnBuildPressed;
            EraseButton.OnToggled     += OnEraseToggled;
            SearchBar.OnTextChanged   += OnTextEntered;
            RecipeList.OnItemSelected += OnItemSelected;

            PopulatePrototypeList();
            PopulateTree();
        }
Exemplo n.º 27
0
        public BodyScannerDisplay(BodyScannerBoundUserInterface owner)
        {
            IoCManager.InjectDependencies(this);
            Owner = owner;
            Title = Loc.GetString("body-scanner-display-title");

            var hSplit = new BoxContainer
            {
                Orientation = LayoutOrientation.Horizontal,
                Children    =
                {
                    // Left half
                    new ScrollContainer
                    {
                        HorizontalExpand = true,
                        Children         =
                        {
                            (BodyPartList = new ItemList())
                        }
                    },
                    // Right half
                    new BoxContainer
                    {
                        Orientation      = LayoutOrientation.Vertical,
                        HorizontalExpand = true,
                        Children         =
                        {
                            // Top half of the right half
                            new BoxContainer
                            {
                                Orientation    = LayoutOrientation.Vertical,
                                VerticalExpand = true,
                                Children       =
                                {
                                    (BodyPartLabel          = new Label()),
                                    new BoxContainer
                                    {
                                        Orientation = LayoutOrientation.Horizontal,
                                        Children    =
                                        {
                                            new Label
                                            {
                                                Text        = $"{Loc.GetString("body-scanner-display-health-label")} "
                                            },
                                            (BodyPartHealth = new Label())
                                        }
                                    },
                                    new ScrollContainer
                                    {
                                        VerticalExpand = true,
                                        Children       =
                                        {
                                            (MechanismList  = new ItemList())
                                        }
                                    }
                                }
                            },
                            // Bottom half of the right half
                            (MechanismInfoLabel = new RichTextLabel
                            {
                                VerticalExpand = true
                            })
                        }
                    }
                }
            };

            Contents.AddChild(hSplit);

            BodyPartList.OnItemSelected  += BodyPartOnItemSelected;
            MechanismList.OnItemSelected += MechanismOnItemSelected;
            MinSize = SetSize = (800, 600);
        }
Exemplo n.º 28
0
        public SandboxWindow()
        {
            Resizable = false;
            _gameHud  = IoCManager.Resolve <IGameHud>();

            Title = "Sandbox Panel";

            var vBox = new VBoxContainer {
                SeparationOverride = 4
            };

            Contents.AddChild(vBox);

            RespawnButton = new Button {
                Text = Loc.GetString("Respawn")
            };
            vBox.AddChild(RespawnButton);

            SpawnEntitiesButton = new Button {
                Text = Loc.GetString("Spawn Entities")
            };
            vBox.AddChild(SpawnEntitiesButton);

            SpawnTilesButton = new Button {
                Text = Loc.GetString("Spawn Tiles")
            };
            vBox.AddChild(SpawnTilesButton);

            GiveFullAccessButton = new Button {
                Text = Loc.GetString("Grant Full Access")
            };
            vBox.AddChild(GiveFullAccessButton);

            GiveAghostButton = new Button {
                Text = Loc.GetString("Ghost")
            };
            vBox.AddChild(GiveAghostButton);

            ToggleLightButton = new Button {
                Text = Loc.GetString("Toggle Lights"), ToggleMode = true, Pressed = !IoCManager.Resolve <ILightManager>().Enabled
            };
            vBox.AddChild(ToggleLightButton);

            ToggleFovButton = new Button {
                Text = Loc.GetString("Toggle FOV"), ToggleMode = true, Pressed = !IoCManager.Resolve <IEyeManager>().CurrentEye.DrawFov
            };
            vBox.AddChild(ToggleFovButton);

            ToggleShadowsButton = new Button {
                Text = Loc.GetString("Toggle Shadows"), ToggleMode = true, Pressed = !IoCManager.Resolve <ILightManager>().DrawShadows
            };
            vBox.AddChild(ToggleShadowsButton);

            ToggleSubfloorButton = new Button {
                Text = Loc.GetString("Toggle Subfloor"), ToggleMode = true, Pressed = EntitySystem.Get <SubFloorHideSystem>().EnableAll
            };
            vBox.AddChild(ToggleSubfloorButton);

            SuicideButton = new Button {
                Text = Loc.GetString("Suicide")
            };
            vBox.AddChild(SuicideButton);

            ShowMarkersButton = new Button {
                Text = Loc.GetString("Show Spawns"), ToggleMode = true, Pressed = EntitySystem.Get <MarkerSystem>().MarkersVisible
            };
            vBox.AddChild(ShowMarkersButton);

            ShowBbButton = new Button {
                Text = Loc.GetString("Show BB"), ToggleMode = true, Pressed = IoCManager.Resolve <IDebugDrawing>().DebugColliders
            };
            vBox.AddChild(ShowBbButton);

            MachineLinkingButton = new Button {
                Text = Loc.GetString("Link machines"), ToggleMode = true
            };
            vBox.AddChild(MachineLinkingButton);
        }
Exemplo n.º 29
0
        public RoundEndSummaryWindow(string gm, string roundEnd, TimeSpan roundTimeSpan, List <RoundEndPlayerInfo> info)
        {
            Title = Loc.GetString("Round End Summary");

            //Round End Window is split into two tabs, one about the round stats
            //and the other is a list of RoundEndPlayerInfo for each player.
            //This tab would be a good place for things like: "x many people died.",
            //"clown slipped the crew x times.", "x shots were fired this round.", etc.
            //Also good for serious info.
            RoundEndSummaryTab = new VBoxContainer()
            {
                Name = Loc.GetString("Round Information")
            };

            //Tab for listing  unique info per player.
            PlayerManifestoTab = new VBoxContainer()
            {
                Name = Loc.GetString("Player Manifesto")
            };

            RoundEndWindowTabs = new TabContainer();
            RoundEndWindowTabs.AddChild(RoundEndSummaryTab);
            RoundEndWindowTabs.AddChild(PlayerManifestoTab);

            Contents.AddChild(RoundEndWindowTabs);

            //Gamemode Name
            var gamemodeLabel = new RichTextLabel();

            gamemodeLabel.SetMarkup(Loc.GetString("Round of [color=white]{0}[/color] has ended.", gm));
            RoundEndSummaryTab.AddChild(gamemodeLabel);

            //Round end text
            if (!string.IsNullOrEmpty(roundEnd))
            {
                var roundEndLabel = new RichTextLabel();
                roundEndLabel.SetMarkup(Loc.GetString(roundEnd));
                RoundEndSummaryTab.AddChild(roundEndLabel);
            }

            //Duration
            var roundTimeLabel = new RichTextLabel();

            roundTimeLabel.SetMarkup(Loc.GetString("It lasted for [color=yellow]{0} hours, {1} minutes, and {2} seconds.",
                                                   roundTimeSpan.Hours, roundTimeSpan.Minutes, roundTimeSpan.Seconds));
            RoundEndSummaryTab.AddChild(roundTimeLabel);

            //Initialize what will be the list of players display.
            var scrollContainer = new ScrollContainer();

            scrollContainer.SizeFlagsVertical = SizeFlags.FillExpand;
            var innerScrollContainer = new VBoxContainer();

            //Put observers at the bottom of the list. Put antags on top.
            var manifestSortedList = info.OrderBy(p => p.Observer).ThenBy(p => !p.Antag);

            //Create labels for each player info.
            foreach (var playerInfo in manifestSortedList)
            {
                var playerInfoText = new RichTextLabel()
                {
                    SizeFlagsVertical = SizeFlags.Fill,
                };

                if (playerInfo.Observer)
                {
                    playerInfoText.SetMarkup(
                        Loc.GetString("[color=gray]{0}[/color] was [color=lightblue]{1}[/color], an observer.",
                                      playerInfo.PlayerOOCName, playerInfo.PlayerICName));
                }
                else
                {
                    //TODO: On Hover display a popup detailing more play info.
                    //For example: their antag goals and if they completed them sucessfully.
                    var icNameColor = playerInfo.Antag ? "red" : "white";
                    playerInfoText.SetMarkup(
                        Loc.GetString("[color=gray]{0}[/color] was [color={1}]{2}[/color] playing role of [color=orange]{3}[/color].",
                                      playerInfo.PlayerOOCName, icNameColor, playerInfo.PlayerICName, Loc.GetString(playerInfo.Role)));
                }
                innerScrollContainer.AddChild(playerInfoText);
            }

            scrollContainer.AddChild(innerScrollContainer);
            //Attach the entire ScrollContainer that holds all the playerinfo.
            PlayerManifestoTab.AddChild(scrollContainer);
            // TODO: 1240 Overlap, remove once it's fixed. Temp Hack to make the lines not overlap
            PlayerManifestoTab.OnVisibilityChanged += PlayerManifestoTab_OnVisibilityChanged;

            //Finally, display the window.
            OpenCentered();
            MoveToFront();
        }
Exemplo n.º 30
0
            public ApcWindow()
            {
                Title = "APC";
                var rows = new BoxContainer
                {
                    Orientation = LayoutOrientation.Vertical
                };

                var statusHeader = new Label {
                    Text = "Power Status: "
                };

                rows.AddChild(statusHeader);

                var breaker = new BoxContainer
                {
                    Orientation = LayoutOrientation.Horizontal
                };
                var breakerLabel = new Label {
                    Text = "Main Breaker: "
                };

                BreakerButton = new CheckButton {
                    Text = "Toggle"
                };
                breaker.AddChild(breakerLabel);
                breaker.AddChild(BreakerButton);
                rows.AddChild(breaker);

                var externalStatus = new BoxContainer
                {
                    Orientation = LayoutOrientation.Horizontal
                };
                var externalStatusLabel = new Label {
                    Text = "External Power: "
                };

                ExternalPowerStateLabel = new Label {
                    Text = "Good"
                };
                ExternalPowerStateLabel.SetOnlyStyleClass(StyleNano.StyleClassPowerStateGood);
                externalStatus.AddChild(externalStatusLabel);
                externalStatus.AddChild(ExternalPowerStateLabel);
                rows.AddChild(externalStatus);

                var charge = new BoxContainer
                {
                    Orientation = LayoutOrientation.Horizontal
                };
                var chargeLabel = new Label {
                    Text = "Charge:"
                };

                ChargeBar = new ProgressBar
                {
                    HorizontalExpand = true,
                    MinValue         = 0.0f,
                    MaxValue         = 1.0f,
                    Page             = 0.0f,
                    Value            = 0.5f
                };
                ChargePercentage = new Label();
                charge.AddChild(chargeLabel);
                charge.AddChild(ChargeBar);
                charge.AddChild(ChargePercentage);
                rows.AddChild(charge);

                Contents.AddChild(rows);
            }