Improve Main Menu options and fix misc bugs (#166)

This commit is contained in:
Clay John
2023-03-26 13:40:22 -07:00
committed by GitHub
parent bb833aa97c
commit bd457e3de0
38 changed files with 277 additions and 225 deletions

View File

@@ -1,7 +0,0 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="Sky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/door.dae-7f8548364364a8c72d317db0aac6a97d.scn
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="DoorModel"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/BlastMesh.glb-b73267f06de3a944c01538e9fdef259
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/BarrelSmoke.glb-8e2d69c4951af8065240d2d52c721
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/LightRaysMesh.glb-7064e2802466cd2578058f8b016
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/part_head.glb-8de207327aec4b1572370054a7354cf
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/part_shield.glb-d6c233d3d85ae961b022dca28194d
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/ray.glb-8e1d5bd28d6e0c01a107a5b661f05121.scn"
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/SparkParticle.glb-e3f6706407f31f2c4028af0147b
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -150,7 +150,7 @@ func animate(delta:=0.0):
if target_position != Vector3.ZERO:
animation_tree["parameters/aiming/blend_amount"] = clamp(aim_preparing / AIM_PREPARE_TIME, 0, 1)
var to_cannon_local = target_position + Vector3.UP * ray_mesh.global_transform
var to_cannon_local = (target_position + Vector3.UP) * ray_mesh.global_transform
var h_angle = rad_to_deg(atan2( to_cannon_local.x, -to_cannon_local.z ))
var v_angle = rad_to_deg(atan2( to_cannon_local.y, -to_cannon_local.z ))
var blend_pos = animation_tree.get("parameters/aim/blend_position")

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/flying_forklift.glb-5fc3f6403d54a193b6e3b14c2
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="FlyingForkliftModel"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -1,22 +1,11 @@
[gd_resource type="Environment" load_steps=3 format=3 uid="uid://cnn46umvf55rs"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_uefjr"]
sky_top_color = Color(0.411765, 0.305882, 0.0862745, 1)
sky_horizon_color = Color(0.458824, 0.431373, 0.137255, 1)
ground_bottom_color = Color(0, 0, 0, 1)
ground_horizon_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
[sub_resource type="Sky" id="Sky_sicf0"]
sky_material = SubResource("ProceduralSkyMaterial_uefjr")
radiance_size = 1
[gd_resource type="Environment" format=3 uid="uid://cnn46umvf55rs"]
[resource]
background_mode = 1
background_energy_multiplier = 0.4
sky = SubResource("Sky_sicf0")
ambient_light_source = 3
ambient_light_source = 2
ambient_light_color = Color(0.258824, 0.203922, 0.152941, 1)
reflected_light_source = 2
reflected_light_source = 1
tonemap_mode = 3
tonemap_exposure = 3.0
tonemap_white = 6.0
@@ -26,7 +15,11 @@ ssao_light_affect = 0.59
ssao_ao_channel_affect = 1.0
sdfgi_use_occlusion = true
sdfgi_read_sky_light = false
glow_enabled = true
sdfgi_min_cell_size = 0.146484
sdfgi_cascade0_distance = 9.375
sdfgi_max_distance = 150.0
sdfgi_y_scale = 0
sdfgi_energy = 2.2
glow_levels/3 = 0.0
glow_levels/4 = 1.0
glow_levels/7 = 1.0

Binary file not shown.

View File

@@ -13,15 +13,15 @@ dest_files=["res://.godot/imported/core.glb-6d1fe901749789ad3144bf80da386b2d.scn
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="CoreModel"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.1
meshes/light_baking=2
meshes/lightmap_texel_size=1.0
skins/use_named_skins=true
animation/import=false
animation/fps=15

Binary file not shown.

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/lights.glb-e682766b019cdb9ecca59a07b4749bef.s
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="LightsModel"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,14 +13,14 @@ dest_files=["res://.godot/imported/props.glb-ef7d7320b04a8755385d61edb896d714.sc
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="PropsModel"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/light_baking=2
meshes/lightmap_texel_size=0.1
skins/use_named_skins=true
animation/import=false

Binary file not shown.

View File

@@ -13,15 +13,15 @@ dest_files=["res://.godot/imported/structure.glb-21fe3543c920768091702bd64072075
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="StructureModel"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.1
meshes/light_baking=2
meshes/lightmap_texel_size=0.8
skins/use_named_skins=true
animation/import=false
animation/fps=15

Binary file not shown.

View File

@@ -1,35 +1,24 @@
[gd_resource type="StandardMaterial3D" load_steps=5 format=2]
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://x4yrasc8fraf"]
[ext_resource path="res://level/textures/structure/tile_glass_albedo.png" type="Texture2D" id=1]
[ext_resource path="res://level/textures/structure/tile_glass_normal.png" type="Texture2D" id=2]
[ext_resource path="res://level/textures/structure/tile_glass_orm.png" type="Texture2D" id=3]
[ext_resource path="res://level/textures/structure/tile_glass_emission.png" type="Texture2D" id=4]
[ext_resource type="Texture2D" uid="uid://b5imyb7wi7mgs" path="res://level/textures/structure/tile_glass_albedo.png" id="1"]
[ext_resource type="Texture2D" uid="uid://d2h1dgs37n1bn" path="res://level/textures/structure/tile_glass_normal.png" id="2"]
[ext_resource type="Texture2D" uid="uid://b8miefev3aipe" path="res://level/textures/structure/tile_glass_orm.png" id="3"]
[ext_resource type="Texture2D" uid="uid://cs0p6gx085bdj" path="res://level/textures/structure/tile_glass_emission.png" id="4"]
[resource]
resource_name = "tile_glass"
flags_transparent = true
albedo_color = Color( 0.0120779, 0.0427238, 0.0474042, 0.43502 )
albedo_texture = ExtResource( 1 )
transparency = 1
albedo_color = Color(0.0117647, 0.0431373, 0.0470588, 0.243137)
albedo_texture = ExtResource("1")
metallic = 0.5
metallic_texture = ExtResource( 3 )
metallic_texture = ExtResource("3")
metallic_texture_channel = 2
roughness = 0.5
roughness_texture = ExtResource( 3 )
roughness_texture = ExtResource("3")
roughness_texture_channel = 1
emission_enabled = true
emission = Color( 0, 0, 0, 1 )
emission_energy = 1.0
emission_operator = 0
emission_on_uv2 = false
emission_texture = ExtResource( 4 )
emission_texture = ExtResource("4")
normal_enabled = true
normal_scale = 1.0
normal_texture = ExtResource( 2 )
normal_texture = ExtResource("2")
ao_enabled = true
ao_light_affect = 0.0
ao_texture = ExtResource( 3 )
ao_on_uv2 = false
ao_texture_channel = 0
refraction_enabled = true
refraction_scale = 0.0
refraction_texture_channel = 0
ao_texture = ExtResource("3")

Binary file not shown.

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=34 format=3 uid="uid://bh1lh032pmey2"]
[gd_scene load_steps=35 format=3 uid="uid://bh1lh032pmey2"]
[ext_resource type="PackedScene" path="res://level/geometry/scenes/collision/stair_pillar.tscn" id="1"]
[ext_resource type="PackedScene" uid="uid://8fujwb58dav7" path="res://level/geometry/models/structure.glb" id="2"]
[ext_resource type="ArrayOccluder3D" uid="uid://d20dpr3pj0fn6" path="res://level/geometry/scenes/occluder.occ" id="3_2aako"]
[sub_resource type="BoxShape3D" id="1"]
size = Vector3(12, 18, 20)
@@ -1922,3 +1923,6 @@ shape = SubResource("30")
[node name="BridgePillar15" type="CollisionShape3D" parent="Bridge"]
transform = Transform3D(1, 0, -5.96046e-08, 0, 1, 0, 5.96046e-08, 0, 1, 3, -1.5, 0)
shape = SubResource("31")
[node name="OccluderInstance3D" type="OccluderInstance3D" parent="."]
occluder = ExtResource("3_2aako")

BIN
level/level.exr Normal file

Binary file not shown.

27
level/level.exr.import Normal file
View File

@@ -0,0 +1,27 @@
[remap]
importer="2d_array_texture"
type="CompressedTexture2DArray"
uid="uid://bwrkkvnq7ekgo"
path.bptc="res://.godot/imported/level.exr-f8692a9e8b90a50a8e781c95ee874290.bptc.ctexarray"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://level/level.exr"
dest_files=["res://.godot/imported/level.exr-f8692a9e8b90a50a8e781c95ee874290.bptc.ctexarray"]
[params]
compress/mode=2
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
slices/horizontal=1
slices/vertical=64

View File

@@ -2,6 +2,7 @@ extends Node3D
const RedRobot = preload("res://enemies/red_robot/red_robot.tscn")
const PlayerScene = preload("res://player/player.tscn")
var lightmap_gi = null
signal quit
#warning-ignore:unused_signal
@@ -13,13 +14,13 @@ signal replace_main_scene # Useless, but needed as there is no clean way to chec
@onready var spawn_node = $SpawnedNodes
func _ready():
if Settings.gi_quality == Settings.GIQuality.HIGH:
RenderingServer.voxel_gi_set_quality(RenderingServer.VOXEL_GI_QUALITY_HIGH)
elif Settings.gi_quality == Settings.GIQuality.LOW:
RenderingServer.voxel_gi_set_quality(RenderingServer.VOXEL_GI_QUALITY_LOW)
if Settings.gi_type == Settings.GIType.SDFGI:
setup_sdfgi()
elif Settings.gi_type == Settings.GIType.VOXEL_GI:
setup_voxelgi()
else:
$VoxelGI.hide()
$ReflectionProbes.show()
setup_lightmapgi()
if Settings.aa_quality == Settings.AAQuality.AA_8X:
get_viewport().msaa_3d = SubViewport.MSAA_8X
@@ -40,38 +41,19 @@ func _ready():
if Settings.ssao_quality == Settings.SSAOQuality.HIGH:
world_environment.environment.ssao_enabled = true
RenderingServer.environment_set_ssao_quality(RenderingServer.ENV_SSAO_QUALITY_HIGH, true, 0.5, 2, 50, 300)
RenderingServer.environment_set_ssao_quality(RenderingServer.ENV_SSAO_QUALITY_ULTRA, false, 0.0, 2, 50, 300)
elif Settings.ssao_quality == Settings.SSAOQuality.LOW:
world_environment.environment.ssao_enabled = true
RenderingServer.environment_set_ssao_quality(RenderingServer.ENV_SSAO_QUALITY_VERY_LOW, true, 0.5, 2, 50, 300)
else:
world_environment.environment.ssao_enabled = false
if Settings.bloom_quality == Settings.BloomQuality.HIGH:
world_environment.environment.glow_enabled = true
elif Settings.bloom_quality == Settings.BloomQuality.LOW:
if Settings.bloom:
world_environment.environment.glow_enabled = true
else:
world_environment.environment.glow_enabled = false
var window_size = get_window().get_size_with_decorations()
if Settings.resolution == Settings.Resolution.NATIVE:
pass
elif Settings.resolution == Settings.Resolution.RES_1080:
var minsize = Vector2(window_size.x * 1080 / window_size.y, 1080.0)
get_window().set_content_scale_mode(Window.CONTENT_SCALE_MODE_VIEWPORT)
get_window().set_content_scale_aspect(Window.CONTENT_SCALE_ASPECT_EXPAND)
get_window().set_content_scale_size(minsize)
elif Settings.resolution == Settings.Resolution.RES_720:
var minsize = Vector2(window_size.x * 720 / window_size.y, 720.0)
get_window().set_content_scale_mode(Window.CONTENT_SCALE_MODE_VIEWPORT)
get_window().set_content_scale_aspect(Window.CONTENT_SCALE_ASPECT_EXPAND)
get_window().set_content_scale_size(minsize)
elif Settings.resolution == Settings.Resolution.RES_540:
var minsize = Vector2(window_size.x * 540 / window_size.y, 540.0)
get_window().set_content_scale_mode(Window.CONTENT_SCALE_MODE_VIEWPORT)
get_window().set_content_scale_aspect(Window.CONTENT_SCALE_ASPECT_EXPAND)
get_window().set_content_scale_size(minsize)
get_viewport().set_scaling_3d_scale(Settings.resolution)
if multiplayer.is_server():
# Server will spawn the red robots
@@ -91,6 +73,57 @@ func _ready():
multiplayer.peer_disconnected.connect(del_player)
func setup_sdfgi():
world_environment.environment.sdfgi_enabled = true
$VoxelGI.hide()
$ReflectionProbes.hide()
# LightmapGI nodes override SDFGI (even when hidden)
# so we need to free the LightmapGI node if it exists
if (lightmap_gi != null):
lightmap_gi.queue_free()
if Settings.gi_quality == Settings.GIQuality.HIGH:
RenderingServer.environment_set_sdfgi_ray_count(RenderingServer.ENV_SDFGI_RAY_COUNT_64)
elif Settings.gi_quality == Settings.GIQuality.LOW:
RenderingServer.environment_set_sdfgi_ray_count(RenderingServer.ENV_SDFGI_RAY_COUNT_16)
else:
world_environment.environment.sdfgi_enabled = false
func setup_voxelgi():
world_environment.environment.sdfgi_enabled = false
$VoxelGI.show()
$ReflectionProbes.hide()
# LightmapGI nodes override VoxelGI (even when hidden)
# so we need to free the LightmapGI node if it exists
if (lightmap_gi != null):
lightmap_gi.queue_free()
if Settings.gi_quality == Settings.GIQuality.HIGH:
RenderingServer.voxel_gi_set_quality(RenderingServer.VOXEL_GI_QUALITY_HIGH)
elif Settings.gi_quality == Settings.GIQuality.LOW:
RenderingServer.voxel_gi_set_quality(RenderingServer.VOXEL_GI_QUALITY_LOW)
else:
$VoxelGI.hide()
func setup_lightmapgi():
world_environment.environment.sdfgi_enabled = false
$VoxelGI.hide()
$ReflectionProbes.show()
# If no LightmapGI node, create one
if (lightmap_gi == null):
var new_gi = LightmapGI.new()
new_gi.light_data = load("res://level/level.lmbake")
new_gi.name = "LightmapGI"
lightmap_gi = new_gi
add_child(new_gi)
if Settings.gi_quality == Settings.GIQuality.DISABLED:
lightmap_gi.hide()
$ReflectionProbes.hide()
func spawn_robot(spawn_point):
var robot = RedRobot.instantiate()
robot.transform = spawn_point.transform

BIN
level/level.lmbake Normal file

Binary file not shown.

View File

@@ -18,6 +18,7 @@ height = 78.0251
[sub_resource type="Animation" id="2"]
resource_name = "mawaru"
length = 30.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/CoreOutLight.glb-b35a9241b91b300ae469d4ccb46e
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -3,7 +3,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c6gsd2mdmea8w"
path.s3tc="res://.godot/imported/floor.png-cfea6a18452e506a975e8d6895f52a1e.s3tc.ctex"
path.bptc="res://.godot/imported/floor.png-cfea6a18452e506a975e8d6895f52a1e.bptc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
@@ -12,12 +12,12 @@ metadata={
[deps]
source_file="res://menu/floor.png"
dest_files=["res://.godot/imported/floor.png-cfea6a18452e506a975e8d6895f52a1e.s3tc.ctex"]
dest_files=["res://.godot/imported/floor.png-cfea6a18452e506a975e8d6895f52a1e.bptc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0

View File

@@ -20,6 +20,11 @@ var peer : MultiplayerPeer = OfflineMultiplayerPeer.new()
@onready var settings_action_apply = settings_actions.get_node("Apply")
@onready var settings_action_cancel = settings_actions.get_node("Cancel")
@onready var gi_type_menu = settings_menu.get_node("GIType")
@onready var gi_sdfgi = gi_type_menu.get_node("SDFGI")
@onready var gi_voxelgi = gi_type_menu.get_node("VoxelGI")
@onready var gi_lightmapgi = gi_type_menu.get_node("LightmapGI")
@onready var gi_menu = settings_menu.get_node("GI")
@onready var gi_high = gi_menu.get_node("High")
@onready var gi_low = gi_menu.get_node("Low")
@@ -45,15 +50,14 @@ var peer : MultiplayerPeer = OfflineMultiplayerPeer.new()
@onready var ssao_disabled = ssao_menu.get_node("Disabled")
@onready var bloom_menu = settings_menu.get_node("Bloom")
@onready var bloom_high = bloom_menu.get_node("High")
@onready var bloom_low = bloom_menu.get_node("Low")
@onready var bloom_enabled = bloom_menu.get_node("Enabled")
@onready var bloom_disabled = bloom_menu.get_node("Disabled")
@onready var resolution_menu = settings_menu.get_node("Resolution")
@onready var resolution_native = resolution_menu.get_node("Native")
@onready var resolution_1080 = resolution_menu.get_node("1080")
@onready var resolution_720 = resolution_menu.get_node("720")
@onready var resolution_540 = resolution_menu.get_node("540")
@onready var resolution_100 = resolution_menu.get_node("100")
@onready var resolution_90 = resolution_menu.get_node("90")
@onready var resolution_70 = resolution_menu.get_node("70")
@onready var resolution_50 = resolution_menu.get_node("50")
@onready var fullscreen_menu = settings_menu.get_node("Fullscreen")
@onready var fullscreen_yes = fullscreen_menu.get_node("Yes")
@@ -71,7 +75,7 @@ func _ready():
var sound_effects = $BackgroundCache/RedRobot/SoundEffects
for child in sound_effects.get_children():
child.volume_db = -200
for menu in [gi_menu, aa_menu, fxaa_menu, ssao_menu, shadow_menu,
for menu in [gi_type_menu, gi_menu, aa_menu, fxaa_menu, ssao_menu, shadow_menu,
bloom_menu, resolution_menu, fullscreen_menu]:
_make_button_group(menu)
@@ -115,6 +119,13 @@ func _on_settings_pressed():
settings_menu.show()
settings_action_cancel.grab_focus()
if Settings.gi_type == Settings.GIType.SDFGI:
gi_sdfgi.button_pressed = true
elif Settings.gi_type == Settings.GIType.VOXEL_GI:
gi_voxelgi.button_pressed = true
elif Settings.gi_type == Settings.GIType.LIGHTMAP_GI:
gi_lightmapgi.button_pressed = true
if Settings.gi_quality == Settings.GIQuality.HIGH:
gi_high.button_pressed = true
elif Settings.gi_quality == Settings.GIQuality.LOW:
@@ -148,28 +159,25 @@ func _on_settings_pressed():
elif Settings.ssao_quality == Settings.SSAOQuality.DISABLED:
ssao_disabled.button_pressed = true
if Settings.bloom_quality == Settings.BloomQuality.HIGH:
bloom_high.button_pressed = true
elif Settings.bloom_quality == Settings.BloomQuality.LOW:
bloom_low.button_pressed = true
elif Settings.bloom_quality == Settings.BloomQuality.DISABLED:
if Settings.bloom:
bloom_enabled.button_pressed = true
else:
bloom_disabled.button_pressed = true
if Settings.resolution == Settings.Resolution.NATIVE:
resolution_native.button_pressed = true
elif Settings.resolution == Settings.Resolution.RES_1080:
resolution_1080.button_pressed = true
elif Settings.resolution == Settings.Resolution.RES_720:
resolution_720.button_pressed = true
elif Settings.resolution == Settings.Resolution.RES_540:
resolution_540.button_pressed = true
if Settings.resolution > 0.99:
resolution_100.button_pressed = true
elif Settings.resolution > 0.89:
resolution_90.button_pressed = true
elif Settings.resolution > 0.69:
resolution_70.button_pressed = true
elif Settings.resolution > 0.49:
resolution_50.button_pressed = true
if Settings.fullscreen:
fullscreen_yes.button_pressed = true
else:
fullscreen_no.button_pressed = true
func _on_quit_pressed():
get_tree().quit()
@@ -179,47 +187,49 @@ func _on_apply_pressed():
play_button.grab_focus()
settings_menu.hide()
if gi_high.pressed:
if gi_sdfgi.button_pressed:
Settings.gi_type = Settings.GIType.SDFGI
elif gi_voxelgi.button_pressed:
Settings.gi_type = Settings.GIType.VOXEL_GI
elif gi_lightmapgi.button_pressed:
Settings.gi_type = Settings.GIType.LIGHTMAP_GI
if gi_high.button_pressed:
Settings.gi_quality = Settings.GIQuality.HIGH
elif gi_low.pressed:
elif gi_low.button_pressed:
Settings.gi_quality = Settings.GIQuality.LOW
elif gi_disabled.pressed:
elif gi_disabled.button_pressed:
Settings.gi_quality = Settings.GIQuality.DISABLED
if aa_8x.pressed:
if aa_8x.button_pressed:
Settings.aa_quality = Settings.AAQuality.AA_8X
elif aa_4x.pressed:
elif aa_4x.button_pressed:
Settings.aa_quality = Settings.AAQuality.AA_4X
elif aa_2x.pressed:
elif aa_2x.button_pressed:
Settings.aa_quality = Settings.AAQuality.AA_2X
elif aa_disabled.pressed:
elif aa_disabled.button_pressed:
Settings.aa_quality = Settings.AAQuality.DISABLED
Settings.shadow_enabled = shadow_enabled.button_pressed
Settings.fxaa = fxaa_enabled.button_pressed
if ssao_high.pressed:
if ssao_high.button_pressed:
Settings.ssao_quality = Settings.SSAOQuality.HIGH
elif ssao_low.pressed:
elif ssao_low.button_pressed:
Settings.ssao_quality = Settings.SSAOQuality.LOW
elif ssao_disabled.pressed:
elif ssao_disabled.button_pressed:
Settings.ssao_quality = Settings.SSAOQuality.DISABLED
if bloom_high.pressed:
Settings.bloom_quality = Settings.BloomQuality.HIGH
elif bloom_low.pressed:
Settings.bloom_quality = Settings.BloomQuality.LOW
elif bloom_disabled.pressed:
Settings.bloom_quality = Settings.BloomQuality.DISABLED
Settings.bloom = bloom_enabled.button_pressed
if resolution_native.pressed:
Settings.resolution = Settings.Resolution.NATIVE
elif resolution_1080.pressed:
Settings.resolution = Settings.Resolution.RES_1080
elif resolution_720.pressed:
Settings.resolution = Settings.Resolution.RES_720
elif resolution_540.pressed:
Settings.resolution = Settings.Resolution.RES_540
if resolution_100.button_pressed:
Settings.resolution = 1.0
elif resolution_90.button_pressed:
Settings.resolution = 0.9
elif resolution_70.button_pressed:
Settings.resolution = 0.7
elif resolution_50.button_pressed:
Settings.resolution = 0.5
Settings.fullscreen = fullscreen_yes.button_pressed

View File

@@ -1,19 +1,12 @@
[gd_scene load_steps=36 format=3 uid="uid://c80nbk7u633n6"]
[gd_scene load_steps=27 format=3 uid="uid://c80nbk7u633n6"]
[ext_resource type="Script" path="res://menu/menu.gd" id="1"]
[ext_resource type="Texture2D" uid="uid://gnsovrtic7g4" path="res://menu/experiment.hdr" id="2_v7mdg"]
[ext_resource type="PackedScene" uid="uid://div25sd40yx1d" path="res://player/model/player.glb" id="3"]
[ext_resource type="Material" path="res://player/model/playerobot.tres" id="3_xm1fn"]
[ext_resource type="Material" path="res://player/model/robotemitter.tres" id="4_bny8p"]
[ext_resource type="AudioStream" uid="uid://bfq26n228ipa" path="res://menu/menu_intro_music.ogg" id="5"]
[ext_resource type="Texture2D" uid="uid://ckwsj2km1edy6" path="res://menu/tps_demo.png" id="6"]
[ext_resource type="Texture2D" uid="uid://c6gsd2mdmea8w" path="res://menu/floor.png" id="6_qhdg0"]
[ext_resource type="Texture2D" uid="uid://bg3ev35ayf2q" path="res://menu/button_play.png" id="7"]
[ext_resource type="Texture2D" uid="uid://dn0ptke5qh8o5" path="res://menu/button_play_hover.png" id="8"]
[ext_resource type="Texture2D" uid="uid://4nhlw88xbyk6" path="res://menu/button_settings.png" id="9"]
[ext_resource type="Texture2D" uid="uid://c5mv5aa4n3e5e" path="res://menu/button_settings_hover.png" id="10"]
[ext_resource type="Texture2D" uid="uid://dsq5y32acbkji" path="res://menu/button_quit.png" id="11"]
[ext_resource type="Texture2D" uid="uid://dfsb3q1v2mk3m" path="res://menu/button_quit_hover.png" id="12"]
[ext_resource type="FontFile" path="res://menu/button_font.tres" id="13"]
[ext_resource type="StyleBox" path="res://menu/button_pressed.tres" id="14"]
[ext_resource type="StyleBox" path="res://menu/button_normal.tres" id="15"]
@@ -22,18 +15,11 @@
[ext_resource type="PackedScene" uid="uid://byi6b08jpb2iw" path="res://enemies/red_robot/red_robot.tscn" id="19"]
[ext_resource type="PackedScene" uid="uid://jphgr3qep5" path="res://player/bullet/bullet.tscn" id="20"]
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_ymawy"]
panorama = ExtResource("2_v7mdg")
[sub_resource type="Sky" id="1"]
sky_material = SubResource("PanoramaSkyMaterial_ymawy")
radiance_size = 2
[sub_resource type="Environment" id="2"]
background_mode = 1
sky = SubResource("1")
ambient_light_source = 3
reflected_light_source = 2
ambient_light_source = 2
ambient_light_color = Color(0.164706, 0.184314, 0.270588, 1)
reflected_light_source = 1
glow_enabled = true
glow_levels/1 = 1.0
glow_levels/4 = 1.0
@@ -428,7 +414,6 @@ surface_material_override/0 = SubResource("StandardMaterial3D_froyn")
[node name="SpotLight3D" type="SpotLight3D" parent="."]
transform = Transform3D(0.967027, 0, 0.254675, -0.225291, 0.466312, 0.855452, -0.118758, -0.88462, 0.450936, 0.557445, 2.31204, 0.556668)
shadow_enabled = true
shadow_bias = 0.01
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(0.871624, -0.0363083, 0.488828, 0, 0.997253, 0.0740721, -0.490175, -0.064563, 0.86923, 0.0702285, 1.22404, 2.09675)
@@ -458,7 +443,7 @@ anchor_bottom = 1.0
theme = SubResource("9")
[node name="Main" type="Control" parent="UI"]
anchors_preset = 0
layout_mode = 1
anchor_left = -0.000673103
anchor_top = -0.00189865
anchor_right = 0.999327
@@ -468,15 +453,15 @@ offset_top = 2.05054
offset_right = -4.10107
offset_bottom = 2.05054
[node name="Play" type="TextureButton" parent="UI/Main"]
[node name="Play" type="Button" parent="UI/Main"]
layout_mode = 0
offset_left = 100.0
offset_top = 390.0
offset_right = 400.0
offset_bottom = 440.0
texture_normal = ExtResource("7")
texture_pressed = ExtResource("7")
texture_hover = ExtResource("8")
theme_override_font_sizes/font_size = 30
text = "PLAY"
alignment = 0
[node name="PlayOnline" type="Button" parent="UI/Main"]
layout_mode = 0
@@ -485,28 +470,28 @@ offset_top = 490.0
offset_right = 400.0
offset_bottom = 540.0
theme_override_font_sizes/font_size = 30
text = "Play Online"
text = "PLAY ONLINE"
alignment = 0
[node name="Settings" type="TextureButton" parent="UI/Main"]
[node name="Settings" type="Button" parent="UI/Main"]
layout_mode = 0
offset_left = 100.0
offset_top = 590.0
offset_right = 400.0
offset_bottom = 640.0
texture_normal = ExtResource("9")
texture_pressed = ExtResource("9")
texture_hover = ExtResource("10")
theme_override_font_sizes/font_size = 30
text = "SETTINGS"
alignment = 0
[node name="Quit" type="TextureButton" parent="UI/Main"]
[node name="Quit" type="Button" parent="UI/Main"]
layout_mode = 0
offset_left = 100.0
offset_top = 690.0
offset_right = 400.0
offset_bottom = 740.0
texture_normal = ExtResource("11")
texture_pressed = ExtResource("11")
texture_hover = ExtResource("12")
theme_override_font_sizes/font_size = 30
text = "QUIT"
alignment = 0
[node name="Online" type="Control" parent="UI"]
visible = false
@@ -577,13 +562,39 @@ anchor_top = 0.23148
anchor_right = 0.808854
anchor_bottom = 1.00278
[node name="GIType" type="HBoxContainer" parent="UI/Settings"]
layout_mode = 2
[node name="Label" type="Label" parent="UI/Settings/GIType"]
custom_minimum_size = Vector2(400, 0)
layout_mode = 2
text = "GI Type:"
[node name="SDFGI" type="Button" parent="UI/Settings/GIType"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "SDFGI"
[node name="VoxelGI" type="Button" parent="UI/Settings/GIType"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "VoxelGI"
[node name="LightmapGI" type="Button" parent="UI/Settings/GIType"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "LightmapGI"
[node name="GI" type="HBoxContainer" parent="UI/Settings"]
layout_mode = 2
[node name="Label" type="Label" parent="UI/Settings/GI"]
custom_minimum_size = Vector2(400, 0)
layout_mode = 2
text = "Global Illumination:"
text = "GI Quality:"
[node name="High" type="Button" parent="UI/Settings/GI"]
layout_mode = 2
@@ -714,17 +725,11 @@ layout_mode = 2
size_flags_vertical = 1
text = "Bloom:"
[node name="High" type="Button" parent="UI/Settings/Bloom"]
[node name="Enabled" type="Button" parent="UI/Settings/Bloom"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "High"
[node name="Low" type="Button" parent="UI/Settings/Bloom"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "Low"
text = "Enabled"
[node name="Disabled" type="Button" parent="UI/Settings/Bloom"]
layout_mode = 2
@@ -738,31 +743,31 @@ layout_mode = 2
[node name="Label" type="Label" parent="UI/Settings/Resolution"]
custom_minimum_size = Vector2(400, 0)
layout_mode = 2
text = "Resolution:"
text = "3D scale:"
[node name="Native" type="Button" parent="UI/Settings/Resolution"]
[node name="100" type="Button" parent="UI/Settings/Resolution"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "Native"
text = "100%"
[node name="1080" type="Button" parent="UI/Settings/Resolution"]
[node name="90" type="Button" parent="UI/Settings/Resolution"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "1080"
text = "90%"
[node name="720" type="Button" parent="UI/Settings/Resolution"]
[node name="70" type="Button" parent="UI/Settings/Resolution"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "720"
text = "70%"
[node name="540" type="Button" parent="UI/Settings/Resolution"]
[node name="50" type="Button" parent="UI/Settings/Resolution"]
layout_mode = 2
size_flags_horizontal = 3
toggle_mode = true
text = "540"
text = "50%"
[node name="Fullscreen" type="HBoxContainer" parent="UI/Settings"]
layout_mode = 2

View File

@@ -1,5 +1,11 @@
extends Node
enum GIType {
SDFGI = 0,
VOXEL_GI = 1,
LIGHTMAP_GI = 2,
}
enum GIQuality {
DISABLED = 0,
LOW = 1,
@@ -19,26 +25,14 @@ enum SSAOQuality {
HIGH = 2,
}
enum BloomQuality {
DISABLED = 0,
LOW = 1,
HIGH = 2,
}
enum Resolution {
RES_540 = 0,
RES_720 = 1,
RES_1080 = 2,
NATIVE = 3,
}
var gi_type = GIType.VOXEL_GI
var gi_quality = GIQuality.LOW
var aa_quality = AAQuality.AA_2X
var shadow_enabled = true
var fxaa = true
var ssao_quality = SSAOQuality.DISABLED
var bloom_quality = BloomQuality.HIGH
var resolution = Resolution.NATIVE
var bloom = true
var resolution = 1.0
var fullscreen = true
func _ready():
@@ -64,6 +58,9 @@ func load_settings():
if typeof(d) != TYPE_DICTIONARY:
return
if "gi_type" in d:
gi_type = int(d.gi_type) as GIType
if "gi" in d:
gi_quality = int(d.gi) as GIQuality
@@ -80,10 +77,10 @@ func load_settings():
ssao_quality = int(d.ssao) as SSAOQuality
if "bloom" in d:
bloom_quality = int(d.bloom) as BloomQuality
bloom = bool(d.bloom)
if "resolution" in d:
resolution = int(d.resolution) as Resolution
resolution = d.resolution
if "fullscreen" in d:
fullscreen = bool(d.fullscreen)
@@ -94,5 +91,5 @@ func save_settings():
var error = FileAccess.get_open_error()
assert(not error)
var d = { "gi":gi_quality, "aa":aa_quality, "shadow_enabled":shadow_enabled, "fxaa":fxaa, "ssao":ssao_quality, "bloom":bloom_quality, "resolution":resolution, "fullscreen":fullscreen }
var d = { "gi_type":gi_type, "gi":gi_quality, "aa":aa_quality, "shadow_enabled":shadow_enabled, "fxaa":fxaa, "ssao":ssao_quality, "bloom":bloom, "resolution":resolution, "fullscreen":fullscreen }
file.store_line(JSON.stringify(d))

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/muzzle_flash_particle_mesh.glb-a66d023aa06942
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/player.glb-4fab3988dc7fd5b74f5ba5057da16803.s
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0

View File

@@ -11,7 +11,7 @@ dest_files=[ "res://.import/player.dae-5611407abdadd55b4ab0ac0830102352.scn" ]
[params]
nodes/root_type="Spatial"
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/root_scale=1.0
nodes/custom_script=""

View File

@@ -573,8 +573,8 @@ offset_top = -12.0
offset_right = 12.0
offset_bottom = 12.0
texture = ExtResource("3")
expand_mode = 1
stretch_mode = 1
expand_mode = 3
stretch_mode = 2
[node name="ColorRect" type="ColorRect" parent="."]
modulate = Color(1, 1, 1, 0)

View File

@@ -24,8 +24,6 @@ Settings="*res://menu/settings.gd"
window/size/viewport_width=1920
window/size/viewport_height=1080
window/stretch/mode="2d"
window/stretch/aspect="expand"
window/size/fullscreen=true
[editor]
@@ -120,7 +118,7 @@ move_left={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":97,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
@@ -128,7 +126,7 @@ move_right={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":100,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
@@ -136,7 +134,7 @@ move_forward={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":119,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
@@ -144,13 +142,13 @@ move_back={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":115,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
jump={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
]
}
@@ -218,6 +216,8 @@ common/physics_interpolation=true
[rendering]
reflections/sky_reflections/texture_array_reflections=false
global_illumination/gi/use_half_resolution=true
environment/ssao/half_size=false
anti_aliasing/quality/msaa_3d=3
scaling_3d/mode=1
occlusion_culling/use_occlusion_culling=true
environment/default_environment="res://default_env.tres"