Add graphics settings
This commit is contained in:
		
							parent
							
								
									814a7c3c3c
								
							
						
					
					
						commit
						207629e014
					
				| @ -8,7 +8,7 @@ bg_color = Color(0.2, 0.2, 0.2, 0.921569) | ||||
| [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q40bd"] | ||||
| bg_color = Color(0.25, 0.25, 0.25, 0.909804) | ||||
| 
 | ||||
| [node name="PauseMenu" type="Control" node_paths=PackedStringArray("InitialFocusTarget", "VolumeSlider", "CameraSensitivityX", "CameraSensitivityY", "CameraInvertX", "CameraInvertY", "TableOrbitSpeedX", "TableOrbitSpeedY", "TableOrbitInvertX", "TableOrbitInvertY")] | ||||
| [node name="PauseMenu" type="Control" node_paths=PackedStringArray("InitialFocusTarget", "VolumeSlider", "CameraSensitivityX", "CameraSensitivityY", "CameraInvertX", "CameraInvertY", "TableOrbitSpeedX", "TableOrbitSpeedY", "TableOrbitInvertX", "TableOrbitInvertY", "MsaaOptions", "RenderScaleOptions", "UpscalingOptions", "WindowModeOptions")] | ||||
| process_mode = 3 | ||||
| layout_mode = 3 | ||||
| anchors_preset = 15 | ||||
| @ -27,6 +27,10 @@ TableOrbitSpeedX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsCont | ||||
| TableOrbitSpeedY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/TiltSpeedSlider") | ||||
| TableOrbitInvertX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/InvertRotateCheck") | ||||
| TableOrbitInvertY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/InvertTiltCheck") | ||||
| MsaaOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid/MsaaOptions") | ||||
| RenderScaleOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid/RenderScaleOptions") | ||||
| UpscalingOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid/UpscaleOptions") | ||||
| WindowModeOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid/FullscreenOptions") | ||||
| 
 | ||||
| [node name="CenterContainer" type="CenterContainer" parent="."] | ||||
| process_mode = 2 | ||||
| @ -69,7 +73,7 @@ text = "Continue" | ||||
| custom_minimum_size = Vector2(340, 200) | ||||
| layout_mode = 2 | ||||
| theme_override_font_sizes/font_size = 11 | ||||
| current_tab = 2 | ||||
| current_tab = 3 | ||||
| 
 | ||||
| [node name="General settings" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"] | ||||
| visible = false | ||||
| @ -154,6 +158,7 @@ size_flags_horizontal = 3 | ||||
| action_mode = 0 | ||||
| 
 | ||||
| [node name="Building" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"] | ||||
| visible = false | ||||
| layout_mode = 2 | ||||
| theme_override_constants/margin_left = 10 | ||||
| theme_override_constants/margin_top = 10 | ||||
| @ -208,7 +213,6 @@ size_flags_horizontal = 3 | ||||
| action_mode = 0 | ||||
| 
 | ||||
| [node name="Graphics" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"] | ||||
| visible = false | ||||
| layout_mode = 2 | ||||
| theme_override_constants/margin_left = 10 | ||||
| theme_override_constants/margin_top = 10 | ||||
| @ -216,19 +220,35 @@ theme_override_constants/margin_right = 10 | ||||
| theme_override_constants/margin_bottom = 10 | ||||
| metadata/_tab_index = 3 | ||||
| 
 | ||||
| [node name="Grid" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics"] | ||||
| [node name="ScrollContainer" type="ScrollContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics"] | ||||
| layout_mode = 2 | ||||
| 
 | ||||
| [node name="Grid" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer"] | ||||
| layout_mode = 2 | ||||
| theme_override_constants/h_separation = 14 | ||||
| theme_override_constants/v_separation = 9 | ||||
| columns = 2 | ||||
| 
 | ||||
| [node name="MsaaLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"] | ||||
| [node name="FullscreenLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| text = "Display mode" | ||||
| 
 | ||||
| [node name="FullscreenOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| selected = 0 | ||||
| item_count = 3 | ||||
| popup/item_0/text = "Windowed" | ||||
| popup/item_1/text = "Fullscreen" | ||||
| popup/item_1/id = 1 | ||||
| popup/item_2/text = "Exclusive fullscreen" | ||||
| popup/item_2/id = 2 | ||||
| 
 | ||||
| [node name="MsaaLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| text = "MSAA" | ||||
| 
 | ||||
| [node name="MsaaOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"] | ||||
| [node name="MsaaOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| disabled = true | ||||
| selected = 2 | ||||
| item_count = 4 | ||||
| popup/item_0/text = "Disabled" | ||||
| @ -239,14 +259,13 @@ popup/item_2/id = 2 | ||||
| popup/item_3/text = "8 samples" | ||||
| popup/item_3/id = 3 | ||||
| 
 | ||||
| [node name="RenderScaleLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"] | ||||
| [node name="RenderScaleLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| text = "Render scale | ||||
| " | ||||
| 
 | ||||
| [node name="RenderScaleOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"] | ||||
| [node name="RenderScaleOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| disabled = true | ||||
| selected = 3 | ||||
| item_count = 6 | ||||
| popup/item_0/text = "25%" | ||||
| @ -262,11 +281,11 @@ popup/item_4/id = 150 | ||||
| popup/item_5/text = "200%" | ||||
| popup/item_5/id = 200 | ||||
| 
 | ||||
| [node name="UpscaleLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"] | ||||
| [node name="UpscaleLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| text = "Upscaling" | ||||
| 
 | ||||
| [node name="UpscaleOption" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"] | ||||
| [node name="UpscaleOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/ScrollContainer/Grid"] | ||||
| layout_mode = 2 | ||||
| disabled = true | ||||
| selected = 0 | ||||
|  | ||||
| @ -25,6 +25,15 @@ namespace Gmtk24 { | ||||
|         public BaseButton TableOrbitInvertX; | ||||
|         [Export] | ||||
|         public BaseButton TableOrbitInvertY; | ||||
|         [ExportCategory("Setting controls (graphics)")] | ||||
|         [Export] | ||||
|         public OptionButton MsaaOptions; | ||||
|         [Export] | ||||
|         public OptionButton RenderScaleOptions; | ||||
|         [Export] | ||||
|         public OptionButton UpscalingOptions; | ||||
|         [Export] | ||||
|         public OptionButton WindowModeOptions; | ||||
| 
 | ||||
|         [Export] | ||||
|         public Table Table; | ||||
| @ -53,6 +62,57 @@ namespace Gmtk24 { | ||||
|             TableOrbitInvertY.ButtonPressed = UserSettings.Singleton.TableOrbitInvertY; | ||||
|             TableOrbitInvertY.Toggled += (on) => UserSettings.Singleton.TableOrbitInvertY = on; | ||||
| 
 | ||||
|             Viewport vp = GetViewport(); | ||||
| 
 | ||||
|             MsaaOptions.Selected = (int)vp.Msaa3D; | ||||
|             MsaaOptions.ItemSelected += (index) => { | ||||
|                 vp.Msaa3D = (Viewport.Msaa)index; | ||||
|                 GD.Print("Set MSAA to: ", vp.Msaa3D); | ||||
|             }; | ||||
| 
 | ||||
|             RenderScaleOptions.Selected = -1; | ||||
|             for (int i = 0; i < RenderScaleOptions.ItemCount; i++) { | ||||
|                 if ((int)(vp.Scaling3DScale * 100) == RenderScaleOptions.GetItemId(i)) { | ||||
|                     RenderScaleOptions.Selected = i; | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|             RenderScaleOptions.ItemSelected += (index) => { | ||||
|                 vp.Scaling3DScale = RenderScaleOptions.GetItemId((int)index) / 100f; | ||||
|                 UpscalingOptions.Disabled = vp.Scaling3DScale > 1; | ||||
|                 GD.Print("Set scale to: ", vp.Scaling3DScale); | ||||
|             }; | ||||
| 
 | ||||
|             UpscalingOptions.Selected = (int)vp.Scaling3DMode; | ||||
|             UpscalingOptions.ItemSelected += (index) => { | ||||
|                 vp.Scaling3DMode = (Viewport.Scaling3DModeEnum)index; | ||||
|                 GD.Print("Set scaling mode to: ", vp.Scaling3DMode); | ||||
|             }; | ||||
| 
 | ||||
|             DisplayServer.WindowMode mode = DisplayServer.WindowGetMode(); | ||||
|             WindowModeOptions.Selected = 0; | ||||
|             if (mode == DisplayServer.WindowMode.Fullscreen) { | ||||
|                 WindowModeOptions.Selected = 1; | ||||
|             } else if (mode == DisplayServer.WindowMode.ExclusiveFullscreen) { | ||||
|                 WindowModeOptions.Selected = 2; | ||||
|             } | ||||
|             WindowModeOptions.ItemSelected += (index) => { | ||||
|                 DisplayServer.WindowMode currentMode = DisplayServer.WindowGetMode(); | ||||
|                 DisplayServer.WindowMode windowedMode = DisplayServer.WindowMode.Windowed; | ||||
|                 if (currentMode != DisplayServer.WindowMode.Fullscreen | ||||
|                     && currentMode != DisplayServer.WindowMode.ExclusiveFullscreen) { | ||||
|                     // Not fullscreen: set the windowed mode to the current one to preserve maximizing status | ||||
|                     windowedMode = currentMode; | ||||
|                 } | ||||
|                 if (index == 0) { | ||||
|                     DisplayServer.WindowSetMode(windowedMode); | ||||
|                 } else if (index == 1) { | ||||
|                     DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen); | ||||
|                 } else if (index == 2) { | ||||
|                     DisplayServer.WindowSetMode(DisplayServer.WindowMode.ExclusiveFullscreen); | ||||
|                 } | ||||
|             }; | ||||
| 
 | ||||
|             Open(); | ||||
|         } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user