OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-godot4-test commits / c637502

forgot some files
c637502c63b2b30aa86eb79d3c479817c9b15d77
by Dresk Spidflisk <dreskspidflisk@gmail.com> · 2022-04-28T23:50:22.000Z

Changed files (10) +405 -0

game/settings.gd +84 -0
……@@ -0,0 +1,84 @@
1extends Node
2
3@onready var jsonInstance = JSON.new()
4
5enum ShadowsQuality {
6 DISABLED = 0,
7 SHADOWS_1024 = 1,
8 SHADOWS_2048 = 2,
9 SHADOWS_4096 = 3,
10}
11
12enum GIQuality {
13 DISABLED = 0,
14 LOW = 1,
15 HIGH = 2,
16}
17
18enum AAQuality {
19 DISABLED = 0,
20 AA_2X = 1,
21 AA_4X = 2,
22 AA_8X = 3,
23}
24
25enum SSAOQuality {
26 DISABLED = 0,
27 LOW = 1,
28 HIGH = 2,
29}
30
31enum BloomQuality {
32 DISABLED = 0,
33 LOW = 1,
34 HIGH = 2,
35}
36
37enum Resolution {
38 RES_540 = 0,
39 RES_720 = 1,
40 RES_1080 = 2,
41 NATIVE = 3,
42}
43
44var shadows_quality = ShadowsQuality.SHADOWS_1024
45var gi_quality = GIQuality.LOW
46var aa_quality = AAQuality.AA_2X
47var bloom_quality = BloomQuality.HIGH
48
49func _ready():
50 load_settings()
51
52func load_settings():
53 var f = File.new()
54 var error = f.open("user://settings.json", File.READ)
55 if error:
56 print("There are no settings to load.")
57 return
58
59 # var d = parse_json(f.get_as_text())
60 var e = jsonInstance.parse(f.get_as_text())
61 if(e == OK):
62 var d = jsonInstance.get_data()
63 if typeof(d) != TYPE_DICTIONARY:
64 return
65
66 if "shadows" in d:
67 shadows_quality = d.shadows
68
69 if "gi" in d:
70 gi_quality = d.gi
71
72 if "aa" in d:
73 aa_quality = d.aa
74
75 if "bloom" in d:
76 bloom_quality = d.bloom
77
78func save_settings():
79 var f = File.new()
80 var error = f.open("user://settings.json", File.WRITE)
81 assert(not error)
82
83 var d = { "shadows":shadows_quality, "gi":gi_quality, "aa":aa_quality, "bloom":bloom_quality }
84 f.store_line( jsonInstance.stringify(d))
menu/main/buttongroup_1.tres +3 -0
……@@ -0,0 +1,3 @@
1[gd_resource type="ButtonGroup" format=2]
2
3[resource]
menu/main/buttongroup_2.tres +3 -0
……@@ -0,0 +1,3 @@
1[gd_resource type="ButtonGroup" format=2]
2
3[resource]
menu/main/buttongroup_3.tres +3 -0
……@@ -0,0 +1,3 @@
1[gd_resource type="ButtonGroup" format=2]
2
3[resource]
menu/main/buttongroup_4.tres +3 -0
……@@ -0,0 +1,3 @@
1[gd_resource type="ButtonGroup" format=2]
2
3[resource]
menu/main/menu_main.gd +275 -0
……@@ -0,0 +1,275 @@
1extends Node
2
3signal replace_main_scene
4#warning-ignore:unused_signal
5signal quit # Useless, but needed as there is no clean way to check if a node exposes a signal
6
7@onready var ui = $Menu_Main
8@onready var uiProper = $Menu_Main/CenterContainer
9
10@onready var main = uiProper.get_node("Main")
11@onready var play_button = main.get_node("Resume")
12@onready var settings_button = main.get_node("Settings")
13@onready var quit_button = main.get_node("Quit")
14
15@onready var settings_menu = uiProper.get_node("Settings")
16@onready var settings_actions = settings_menu.get_node("Actions")
17@onready var settings_action_apply = settings_actions.get_node("Apply")
18@onready var settings_action_cancel = settings_actions.get_node("Cancel")
19
20@onready var multiplayer_menu = uiProper.get_node("Multiplayer")
21@onready var multiplayer_LabelGWStatus = multiplayer_menu.get_node("HyperGatewayStatus").get_node("LabelGWStatus")
22@onready var multiplayer_StartGW = multiplayer_menu.get_node("Gateway").get_node("Start")
23@onready var multiplayer_StopGW = multiplayer_menu.get_node("Gateway").get_node("Stop")
24@onready var multiplayer_LabelGossipStatus = multiplayer_menu.get_node("HyperGossipStatus").get_node("LabelGossipStatus")
25@onready var multiplayer_PortInput = multiplayer_menu.get_node("HyperGatewayPort").get_node("LineEdit")
26@onready var multiplayer_GossipURLInput = multiplayer_menu.get_node("GossipURL").get_node("LineEdit")
27
28@onready var shadows_menu = settings_menu.get_node("Shadows")
29@onready var shadows_4096 = shadows_menu.get_node("4096")
30@onready var shadows_2048 = shadows_menu.get_node("2048")
31@onready var shadows_1024 = shadows_menu.get_node("1024")
32@onready var shadows_disabled = shadows_menu.get_node("Disabled")
33
34@onready var gi_menu = settings_menu.get_node("GI")
35@onready var gi_high = gi_menu.get_node("High")
36@onready var gi_low = gi_menu.get_node("Low")
37@onready var gi_disabled = gi_menu.get_node("Disabled")
38
39@onready var aa_menu = settings_menu.get_node("AA")
40@onready var aa_8x = aa_menu.get_node("8x")
41@onready var aa_4x = aa_menu.get_node("4x")
42@onready var aa_2x = aa_menu.get_node("2x")
43@onready var aa_disabled = aa_menu.get_node("Disabled")
44
45@onready var bloom_menu = settings_menu.get_node("Bloom")
46@onready var bloom_high = bloom_menu.get_node("High")
47@onready var bloom_low = bloom_menu.get_node("Low")
48@onready var bloom_disabled = bloom_menu.get_node("Disabled")
49
50var hyperGatewayNode : HyperGateway = null
51var hyperGatewayPID : int = 0
52var hyperGatewayPort : int = 0
53
54var hyperGossipNode : HyperGossip = null
55var hyperGossipURL : String = ""
56
57var hyperGWPortInputBackup : String = ""
58
59var world_environment : WorldEnvironment = null
60
61func _ready():
62 # get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_2D, SceneTree.STRETCH_ASPECT_KEEP, Vector2(1440, 810))
63 Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
64
65func _getIsMenuShowing() -> bool:
66 return ui.visible
67
68func _on_quit_pressed():
69 get_tree().quit()
70
71func hideUI():
72 Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
73 ui.hide()
74
75func showUI():
76 # resetUI()
77 ui.show()
78 Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
79
80func resetUI():
81 settings_menu.hide()
82 multiplayer_menu.hide()
83 main.show()
84
85func _on_Quit_pressed():
86 get_tree().quit()
87
88
89func _on_Settings_pressed():
90 main.hide()
91 settings_menu.show()
92 settings_action_cancel.grab_focus()
93
94 # Find Environment Node
95 if(world_environment == null or !is_instance_valid(world_environment) ):
96 world_environment = get_tree().get_current_scene().find_child("WorldEnvironment", true, false)
97
98 if Settings.gi_quality == Settings.GIQuality.HIGH:
99 gi_high.button_pressed = true
100 elif Settings.gi_quality == Settings.GIQuality.LOW:
101 gi_low.button_pressed = true
102 elif Settings.gi_quality == Settings.GIQuality.DISABLED:
103 gi_disabled.button_pressed = true
104
105 if Settings.aa_quality == Settings.AAQuality.AA_8X:
106 aa_8x.button_pressed = true
107 elif Settings.aa_quality == Settings.AAQuality.AA_4X:
108 aa_4x.button_pressed = true
109 elif Settings.aa_quality == Settings.AAQuality.AA_2X:
110 aa_2x.button_pressed = true
111 elif Settings.aa_quality == Settings.AAQuality.DISABLED:
112 aa_disabled.button_pressed = true
113
114 if Settings.bloom_quality == Settings.BloomQuality.HIGH:
115 bloom_high.button_pressed = true
116 elif Settings.bloom_quality == Settings.BloomQuality.LOW:
117 bloom_low.button_pressed = true
118 elif Settings.bloom_quality == Settings.BloomQuality.DISABLED:
119 bloom_disabled.button_pressed = true
120
121func _UpdateHyperGatewayInfo():
122 multiplayer_StartGW.disabled = false
123 multiplayer_StopGW.disabled = true
124 multiplayer_LabelGWStatus.text = "Not Running"
125
126 if(hyperGatewayNode != null):
127 if(hyperGatewayNode is HyperGateway):
128 hyperGatewayPID = hyperGatewayNode.getGatewayPID()
129 hyperGatewayPort = hyperGatewayNode.getGatewayPort()
130
131 if( hyperGatewayNode.getIsGatewayRunning() ):
132 multiplayer_StopGW.disabled = false
133 multiplayer_StartGW.disabled = true
134 multiplayer_LabelGWStatus.text = "Running (PID " + str(hyperGatewayPID) + ") on Port " + str(hyperGatewayPort)
135
136func _UpdateHyperGossipInfo():
137 multiplayer_LabelGossipStatus.text = "N/A"
138 if(hyperGossipNode != null):
139 if(hyperGossipNode is HyperGossip):
140 if( hyperGatewayNode.getIsGatewayRunning() ):
141 hyperGossipURL = hyperGossipNode._get_url()
142 multiplayer_LabelGossipStatus.text = hyperGossipURL
143
144
145func _on_Multiplayer_pressed():
146 main.hide()
147 # Check for HyperGateway Node
148 if(hyperGatewayNode == null):
149 hyperGatewayNode = get_tree().get_current_scene().find_child("HyperGateway")
150 _UpdateHyperGatewayInfo()
151 # Check for HyperGossip Node
152 if(hyperGossipNode == null):
153 hyperGossipNode = get_tree().get_current_scene().find_child("HyperGossip")
154 _UpdateHyperGossipInfo()
155
156
157 multiplayer_menu.show()
158
159func ChangeGIProbeVisibility(_visible : bool):
160 pass
161
162func _on_Apply_pressed():
163 main.show()
164 # play_button.grab_focus()
165 settings_menu.hide()
166
167 if shadows_4096.pressed:
168 Settings.shadows_quality = Settings.ShadowsQuality.SHADOWS_4096
169 ProjectSettings["rendering/shadows/directional_shadow/size"] = 4096
170 ProjectSettings["rendering/shadows/shadow_atlas/size"] = 4096
171 ProjectSettings["rendering/shadows/directional_shadow/soft_shadow_quality"] = 2
172 elif shadows_2048.pressed:
173 Settings.shadows_quality = Settings.ShadowsQuality.SHADOWS_2048
174 ProjectSettings["rendering/shadows/directional_shadow/size"] = 2048
175 ProjectSettings["rendering/shadows/shadow_atlas/size"] = 2048
176 ProjectSettings["rendering/shadows/directional_shadow/soft_shadow_quality"] = 2
177 elif shadows_1024.pressed:
178 Settings.shadows_quality = Settings.ShadowsQuality.SHADOWS_1024
179 ProjectSettings["rendering/shadows/directional_shadow/size"] = 1024
180 ProjectSettings["rendering/shadows/shadow_atlas/size"] = 1024
181 ProjectSettings["rendering/shadows/directional_shadow/soft_shadow_quality"] = 2
182 elif shadows_disabled.pressed:
183 Settings.shadows_quality = Settings.ShadowsQuality.DISABLED
184 ProjectSettings["rendering/shadows/directional_shadow/size"] = 0
185 ProjectSettings["rendering/shadows/shadow_atlas/size"] = 0
186 ProjectSettings["rendering/shadows/directional_shadow/soft_shadow_quality"] = 2
187
188 if gi_high.pressed:
189 Settings.gi_quality = Settings.GIQuality.HIGH
190 ProjectSettings["rendering/quality/voxel_cone_tracing/high_quality"] = true
191 elif gi_low.pressed:
192 Settings.gi_quality = Settings.GIQuality.LOW
193 ProjectSettings["rendering/quality/voxel_cone_tracing/high_quality"] = false
194 elif gi_disabled.pressed:
195 Settings.gi_quality = Settings.GIQuality.DISABLED
196
197 if aa_8x.button_pressed:
198 Settings.aa_quality = Settings.AAQuality.AA_8X
199 ProjectSettings["rendering/anti_aliasing/quality/msaa"] = 3
200 get_viewport().msaa = Viewport.MSAA_8X
201 elif aa_4x.button_pressed:
202 Settings.aa_quality = Settings.AAQuality.AA_4X
203 ProjectSettings["rendering/anti_aliasing/quality/msaa"] = 2
204 get_viewport().msaa = Viewport.MSAA_4X
205 elif aa_2x.button_pressed:
206 Settings.aa_quality = Settings.AAQuality.AA_2X
207 ProjectSettings["rendering/anti_aliasing/quality/msaa"] = 1
208 get_viewport().msaa = Viewport.MSAA_2X
209 elif aa_disabled.button_pressed:
210 Settings.aa_quality = Settings.AAQuality.DISABLED
211 ProjectSettings["rendering/anti_aliasing/quality/msaa"] = 0
212 get_viewport().msaa = Viewport.MSAA_DISABLED
213
214 if bloom_high.pressed:
215 Settings.bloom_quality = Settings.BloomQuality.HIGH
216 if(world_environment != null):
217 world_environment.environment.glow_enabled = true
218 ProjectSettings["rendering/environment/glow/upscale_mode"] = 1
219 elif bloom_low.pressed:
220 Settings.bloom_quality = Settings.BloomQuality.LOW
221 if(world_environment != null):
222 world_environment.environment.glow_enabled = true
223 ProjectSettings["rendering/environment/glow/upscale_mode"] = 0
224 elif bloom_disabled.pressed:
225 Settings.bloom_quality = Settings.BloomQuality.DISABLED
226 if(world_environment != null):
227 world_environment.environment.glow_enabled = false
228 ProjectSettings["rendering/environment/glow/upscale_mode"] = 0
229
230 Settings.save_settings()
231
232
233func _on_Cancel_pressed():
234 main.show()
235 # play_button.grab_focus()
236 settings_menu.hide()
237
238
239func _on_Multiplayer_Cancel_pressed():
240 main.show()
241 # play_button.grab_focus()
242 multiplayer_menu.hide()
243
244
245func _on_Multiplayer_Apply_pressed():
246 main.show()
247 # play_button.grab_focus()
248 multiplayer_menu.hide()
249
250
251func _on_Start_pressed():
252 hyperGatewayNode.port = multiplayer_PortInput.text.to_int()
253 hyperGossipNode.url = multiplayer_GossipURLInput.text
254 hyperGatewayNode.start()
255 _UpdateHyperGatewayInfo()
256 _UpdateHyperGossipInfo()
257
258
259func _on_Stop_pressed():
260 hyperGatewayNode.stop()
261 multiplayer_PortInput
262 _UpdateHyperGatewayInfo()
263 _UpdateHyperGossipInfo()
264
265
266func _on_HyperGWPort_LineEdit_text_changed(new_text : String):
267 if(new_text.length() < 1 or new_text.is_valid_int() or new_text.to_int() > 65535):
268 hyperGWPortInputBackup = new_text
269 else:
270 multiplayer_PortInput.text = hyperGWPortInputBackup
271
272
273func _on_resume_pressed():
274 # Hide UI (for now)
275 hideUI()
menu/main/menu_main.scn +0 -0
(no content changes — binary or rename)
menu/main/menu_main.scn.depren +0 -0
(no content changes — binary or rename)
ui/witchlogo.png +0 -0
(no content changes — binary or rename)
ui/witchlogo.png.import +34 -0
……@@ -0,0 +1,34 @@
1[remap]
2
3importer="texture"
4type="CompressedTexture2D"
5uid="uid://b6gdsj6exjke3"
6path="res://.godot/imported/witchlogo.png-b7c844c4e63c3a858f211e6875b57fb7.ctex"
7metadata={
8"vram_texture": false
9}
10
11[deps]
12
13source_file="res://ui/witchlogo.png"
14dest_files=["res://.godot/imported/witchlogo.png-b7c844c4e63c3a858f211e6875b57fb7.ctex"]
15
16[params]
17
18compress/mode=0
19compress/lossy_quality=0.7
20compress/hdr_compression=1
21compress/bptc_ldr=0
22compress/normal_map=0
23compress/channel_pack=0
24mipmaps/generate=false
25mipmaps/limit=-1
26roughness/mode=0
27roughness/src_normal=""
28process/fix_alpha_border=true
29process/premult_alpha=false
30process/normal_map_invert_y=false
31process/hdr_as_srgb=false
32process/hdr_clamp_exposure=false
33process/size_limit=0
34detect_3d/compress_to=1