private void CreateAudioTab() { var panel = TabPanel.AddTab("AUDIO", new Widget { Border = "border-thin", Padding = new Margin(4, 4, 0, 0) }); MasterVolume = panel.AddChild(LabelAndDockWidget("Master Volume", new HorizontalFloatSlider { ScrollArea = 1.0f, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; SFXVolume = panel.AddChild(LabelAndDockWidget("SFX Volume", new HorizontalFloatSlider { ScrollArea = 1.0f, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; MusicVolume = panel.AddChild(LabelAndDockWidget("Music Volume", new HorizontalFloatSlider { ScrollArea = 1.0f, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; }
private void CreateAudioTab() { var panel = TabPanel.AddTab("AUDIO", new Widget { Border = "border-thin", Padding = new Margin(4, 4, 0, 0) }); if (!SoundManager.HasAudioDevice) { panel.AddChild(new Widget() { Text = String.Format("ERROR. SOUND IS DISABLED: {0}", SoundManager.AudioError), TextColor = Color.DarkRed.ToVector4(), Font = "font16", AutoLayout = AutoLayout.DockTop }); } MasterVolume = panel.AddChild(LabelAndDockWidget("Master Volume", new HorizontalFloatSlider { ScrollArea = 1.0f, OnSliderChanged = OnItemChanged, Tooltip = "Volume of all sounds in the game.", })).GetChild(1) as HorizontalFloatSlider; SFXVolume = panel.AddChild(LabelAndDockWidget("SFX Volume", new HorizontalFloatSlider { ScrollArea = 1.0f, OnSliderChanged = OnItemChanged, Tooltip = "Volume of sound effects." })).GetChild(1) as HorizontalFloatSlider; MusicVolume = panel.AddChild(LabelAndDockWidget("Music Volume", new HorizontalFloatSlider { ScrollArea = 1.0f, OnSliderChanged = OnItemChanged, Tooltip = "Volume of background music." })).GetChild(1) as HorizontalFloatSlider; panel.AddChild(new Button() { Text = "Mixer...", AutoLayout = AutoLayout.DockTop, MaximumSize = new Point(128, 32), OnClick = (sender, args) => panel.Root.ShowModalPopup(new AudioMixerWidget() { Border = "border-fancy", Rect = GuiRoot.RenderData.VirtualScreen }) }); }
private void CreateGameplayTab() { var panel = TabPanel.AddTab("GAMEPLAY", new Widget { Border = "border-thin", Padding = new Margin(4, 4, 0, 0) }); // Todo: Display actual value beside slider. MoveSpeed = panel.AddChild(LabelAndDockWidget("Camera Move Speed", new HorizontalFloatSlider { ScrollArea = 20, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; ZoomSpeed = panel.AddChild(LabelAndDockWidget("Camera Zoom Speed", new HorizontalFloatSlider { ScrollArea = 2, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; InvertZoom = panel.AddChild(new CheckBox { Text = "Invert Zoom", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; EdgeScrolling = panel.AddChild(new CheckBox { Text = "Edge Scrolling", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; PlayIntro = panel.AddChild(new CheckBox { Text = "Play Intro", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; FogOfWar = panel.AddChild(new CheckBox { Text = "Fog Of War", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; }
private void CreateGraphicsTab() { var panel = TabPanel.AddTab("GRAPHICS", new Widget { Border = "border-thin", Padding = new Margin(4, 4, 4, 4) }); var split = panel.AddChild(new Gui.Widgets.Columns { AutoLayout = AutoLayout.DockFill }) as Gui.Widgets.Columns; var leftPanel = split.AddChild(new Widget { Padding = new Margin(2, 2, 2, 2) }); var rightPanel = split.AddChild(new Widget { Padding = new Margin(2, 2, 2, 2) }); EasyGraphicsSetting = leftPanel.AddChild(LabelAndDockWidget("Easy Settings", new Gui.Widgets.ComboBox { Items = new String[] { "Lowest", "Low", "Medium", "High", "Highest", "Custom" }.ToList(), OnSelectedIndexChanged = OnEasySettingChanged, Border = "border-thin" })).GetChild(1) as Gui.Widgets.ComboBox; Resolution = leftPanel.AddChild(LabelAndDockWidget("Resolution", new Gui.Widgets.ComboBox { Items = DisplayModes.Select(dm => dm.Key).ToList(), OnSelectedIndexChanged = OnItemChanged, Border = "border-thin", Tooltip = "Game screen size", })).GetChild(1) as Gui.Widgets.ComboBox; Fullscreen = leftPanel.AddChild(new CheckBox { Text = "Fullscreen", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, game will take up the whole screen." }) as CheckBox; ChunkDrawDistance = leftPanel.AddChild(LabelAndDockWidget("Terrain Draw Distance", new HorizontalFloatSlider { ScrollArea = 1000f, OnSliderChanged = OnItemChanged, Tooltip = "Higher values allow you to see more terrain. Lower values will make the game run faster." })).GetChild(1) as HorizontalFloatSlider; /* * VertexCullDistance = leftPanel.AddChild(LabelAndDockWidget("Geometry Draw Distance", * new HorizontalFloatSlider * { * ScrollArea = 1000f, * OnSliderChanged = OnItemChanged, * Tooltip = "Higher values allow you to see more terrain. Lower values will make the game run faster." * })).GetChild(1) as HorizontalFloatSlider; */ /* * GenerateDistance = leftPanel.AddChild(LabelAndDockWidget("Generate Distance", * new HorizontalFloatSlider * { * ScrollArea = 1000f, * OnScrollValueChanged = OnItemChanged * })).GetChild(1) as HorizontalFloatSlider; */ Glow = leftPanel.AddChild(new CheckBox { Text = "Glow", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, bright parts of the screen will have a glow effect. Turn off to make the game run faster." }) as CheckBox; Antialiasing = rightPanel.AddChild(LabelAndDockWidget("Antialiasing", new Gui.Widgets.ComboBox { Items = AntialiasingOptions.Select(o => o.Key).ToList(), OnSelectedIndexChanged = OnItemChanged, Border = "border-thin", Tooltip = "Higher values mean fewer jagged pixels. For best quality use FXAA. Fastest is no antialiasing." })).GetChild(1) as Gui.Widgets.ComboBox; ReflectTerrain = rightPanel.AddChild(new CheckBox { Text = "Water Reflects Terrain", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, water will reflect the terrain. Turn off to increase game performance." }) as CheckBox; ReflectEntities = rightPanel.AddChild(new CheckBox { Text = "Water Reflects Entities", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, water will reflect entities. Turn off to increase game performance." }) as CheckBox; AmbientOcclusion = rightPanel.AddChild(new CheckBox { Text = "Ambient Occlusion", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "Enables smooth lighting effects on terrain. Turn off to increase game performance." }) as CheckBox; CursorLight = rightPanel.AddChild(new CheckBox { Text = "Cursor Light", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, the cursor casts light. Turn off to increase game performance." }) as CheckBox; VSync = rightPanel.AddChild(new CheckBox { Text = "Vertical Sync", Tooltip = "When checked, the framerate will be fixed to the monitor refresh rate.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; EntityLight = rightPanel.AddChild(new CheckBox { Text = "Dynamic Entity Lighting", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, creatures underground will be in shadow. Turn off to increase game performance." }) as CheckBox; SelfIllumination = rightPanel.AddChild(new CheckBox { Text = "Ore Glow", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked certain ores will glow underground. Turn off to increase game performance." }) as CheckBox; ParticlePhysics = leftPanel.AddChild(new CheckBox { Text = "Particle Physics", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, certain particles will bounce off of terrain. Turn off to increase game performance." }) as CheckBox; Motes = leftPanel.AddChild(new CheckBox { Text = "Motes", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop, Tooltip = "When checked, detail grass motes will spawn. Turn off to increase game performance." }) as CheckBox; //NumMotes = leftPanel.AddChild(LabelAndDockWidget("Max Number of Entities", // new HorizontalFloatSlider // { // ScrollArea = 2048 - 100, // OnSliderChanged = OnItemChanged, // Tooltip = "Controls how many of each type of entity will get drawn to the screen. Higher values mean more detail. Lower values mean better performance." // })).GetChild(1) as HorizontalFloatSlider; /* * LightMap = leftPanel.AddChild(new CheckBox * { * Text = "Light Maps", * OnCheckStateChange = OnItemChanged, * AutoLayout = AutoLayout.DockTop, * Tooltip = "When checked, light maps will be used for pixelated terrain lighting. Turning this off increases performance." * }) as CheckBox; * * DynamicShadows = leftPanel.AddChild(new CheckBox * { * Text = "Dynamic Shadows", * OnCheckStateChange = OnItemChanged, * AutoLayout = AutoLayout.DockTop, * Tooltip = "When checked, the sun will cast shadows on terrain and entities. Turning this off increases performance." * }) as CheckBox; */ }
private void CreateGameplayTab() { var panel = TabPanel.AddTab("GAMEPLAY", new Widget { Border = "border-thin", Padding = new Margin(4, 4, 0, 0) }); panel.AddChild(new Widget { Text = "Restore default settings", MinimumSize = new Point(0, 20), AutoLayout = AutoLayout.DockTop, Padding = new Margin(0, 0, 4, 4), Border = "border-button", ChangeColorOnHover = true, OnClick = (sender, args) => { var prompt = GuiRoot.ConstructWidget(new Gui.Widgets.Confirm { Text = "Set all settings to their default?", OnClose = (confirm) => { if ((confirm as Gui.Widgets.Confirm).DialogResult == Gui.Widgets.Confirm.Result.OKAY) { GameSettings.Default = new GameSettings.Settings(); RebuildGui(); ConfirmSettings(); } } }); GuiRoot.ShowDialog(prompt); } }); // Todo: Display actual value beside slider. MoveSpeed = panel.AddChild(LabelAndDockWidget("Camera Move Speed", new HorizontalFloatSlider { ScrollArea = 20, OnSliderChanged = OnItemChanged, Tooltip = "Sensitivity of the camera to the movement keys" })).GetChild(1) as HorizontalFloatSlider; ZoomSpeed = panel.AddChild(LabelAndDockWidget("Camera Zoom Speed", new HorizontalFloatSlider { ScrollArea = 2, OnSliderChanged = OnItemChanged, Tooltip = "Sensitivity of the camera to zooming" })).GetChild(1) as HorizontalFloatSlider; InvertZoom = panel.AddChild(new CheckBox { Text = "Invert Zoom", Tooltip = "When checked, zooming in/out with the scroll wheel will be inverted", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; ZoomTowardMouse = panel.AddChild(new CheckBox { Text = "Zoom to Mouse", Tooltip = "When checked, when you zoom in, you will zoom toward the mouse.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; EdgeScrolling = panel.AddChild(new CheckBox { Text = "Edge Scrolling", Tooltip = "When checked, moving the cursor to the edge of the screen will move the camera.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; FollowSurface = panel.AddChild(new CheckBox { Text = "Camera Follows Surface Height", Tooltip = "When checked, the camera will follow the ground surface height when moving.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; PlayIntro = panel.AddChild(new CheckBox { Text = "Play Intro", Tooltip = "When checked, the intro animation will play at the beginning of the game.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; FogOfWar = panel.AddChild(new CheckBox { Text = "Fog Of War", Tooltip = "When checked, unexplored tiles underground will be invisible.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; var guiScaleItems = new List <String>(); for (int i = 1; i < 10; ++i) { if (i * 480 <= GameSettings.Default.ResolutionY) { guiScaleItems.Add(i.ToString()); } } GuiScale = panel.AddChild(LabelAndDockWidget("Gui Scale", new ComboBox { Items = guiScaleItems })).GetChild(1) as ComboBox; GuiAutoScale = panel.AddChild(new CheckBox { Text = "Autoscale GUI", Tooltip = "When checked, the GUI will get scaled up on high resolution screens", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; DisableTutorialForAllGames = panel.AddChild(new CheckBox { Text = "Disable the tutorial for all new games", Tooltip = "When checked, the tutorial will not open in new games.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; if (World != null) { EnableTutorial = panel.AddChild(new CheckBox { Text = "Enable Tutorial", Tooltip = "When checked, tutorial will be displayed.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; panel.AddChild(new Widget { Text = "Reset tutorial", MinimumSize = new Point(0, 20), AutoLayout = AutoLayout.DockTop, Padding = new Margin(0, 0, 4, 4), Border = "border-button", ChangeColorOnHover = true, OnClick = (sender, args) => World.TutorialManager.ResetTutorials() }); } Autosave = panel.AddChild(new CheckBox { Text = "Enable Autosave", Tooltip = "When checked, game will auto save.", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; AutoSaveFrequency = panel.AddChild(LabelAndDockWidget("Autosave Frequency ", new HorizontalSlider { ScrollArea = 115, OnSliderChanged = (widget) => { AutoSaveFrequency.GetChild(0).Text = String.Format("Autosave Frequency ({0})", (widget as HorizontalSlider).ScrollPosition + 5); this.OnItemChanged(widget); }, Tooltip = "Minutes between auto saves" })); SaveLocation = panel.AddChild(LabelAndDockWidget("Save Location", new EditableTextField { Tooltip = "Where to look for save games. Leave blank to use default location.", Text = "", OnTextChange = this.OnItemChanged })).GetChild(1) as EditableTextField; }
private void CreateGraphicsTab() { var panel = TabPanel.AddTab("GRAPHICS", new Widget { Border = "border-thin", Padding = new Margin(4, 4, 4, 4) }); var leftPanel = panel.AddChild(new Widget { MinimumSize = new Point(GuiRoot.VirtualScreen.Width / 2 - 4, 0), AutoLayout = AutoLayout.DockLeft, Padding = new Margin(2, 2, 2, 2) }); var rightPanel = panel.AddChild(new Widget { AutoLayout = AutoLayout.DockFill, Padding = new Margin(2, 2, 2, 2) }); Resolution = leftPanel.AddChild(LabelAndDockWidget("Resolution", new Gum.Widgets.ComboBox { Items = DisplayModes.Select(dm => dm.Key).ToList(), OnSelectedIndexChanged = OnItemChanged, Border = "border-thin" })).GetChild(1) as Gum.Widgets.ComboBox; Fullscreen = leftPanel.AddChild(new CheckBox { Text = "Fullscreen", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; ChunkDrawDistance = leftPanel.AddChild(LabelAndDockWidget("Chunk Draw Distance", new HorizontalFloatSlider { ScrollArea = 1000f, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; VertexCullDistance = leftPanel.AddChild(LabelAndDockWidget("Vertex Cull Distance", new HorizontalFloatSlider { ScrollArea = 1000f, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; GenerateDistance = leftPanel.AddChild(LabelAndDockWidget("Generate Distance", new HorizontalFloatSlider { ScrollArea = 1000f, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; Glow = leftPanel.AddChild(new CheckBox { Text = "Glow", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; Antialiasing = rightPanel.AddChild(LabelAndDockWidget("Antialiasing", new Gum.Widgets.ComboBox { Items = AntialiasingOptions.Select(o => o.Key).ToList(), OnSelectedIndexChanged = OnItemChanged, Border = "border-thin" })).GetChild(1) as Gum.Widgets.ComboBox; ReflectTerrain = rightPanel.AddChild(new CheckBox { Text = "Reflect Terrain", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; ReflectEntities = rightPanel.AddChild(new CheckBox { Text = "Reflect Entities", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; Sunlight = rightPanel.AddChild(new CheckBox { Text = "Sunlight", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; AmbientOcclusion = rightPanel.AddChild(new CheckBox { Text = "Ambient Occlusion", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; Ramps = leftPanel.AddChild(new CheckBox { Text = "Ramps", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; CursorLight = rightPanel.AddChild(new CheckBox { Text = "Cursor Light", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; EntityLight = rightPanel.AddChild(new CheckBox { Text = "Entity Light", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; SelfIllumination = rightPanel.AddChild(new CheckBox { Text = "Ore Glow", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; ParticlePhysics = leftPanel.AddChild(new CheckBox { Text = "Particle Physics", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; Motes = leftPanel.AddChild(new CheckBox { Text = "Motes", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; NumMotes = leftPanel.AddChild(LabelAndDockWidget("Number of Motes", new HorizontalFloatSlider { ScrollArea = 2048 - 100, OnScroll = OnItemChanged })).GetChild(1) as HorizontalFloatSlider; LightMap = leftPanel.AddChild(new CheckBox { Text = "Light Maps", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; DynamicShadows = leftPanel.AddChild(new CheckBox { Text = "Dynamic Shadows", OnCheckStateChange = OnItemChanged, AutoLayout = AutoLayout.DockTop }) as CheckBox; }