From ff1ebef34f295d933a9cac78f49964db6cf9b89e Mon Sep 17 00:00:00 2001 From: Zeeshaun Date: Fri, 3 Apr 2026 13:07:10 -0500 Subject: [PATCH] Fixing strange blacking out of shadows issue --- .codex | 0 game/scenes/Levels/level.gd | 30 ++++++++++++++++-------------- game/scenes/Levels/level.tscn | 11 +++++++---- 3 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 .codex diff --git a/.codex b/.codex new file mode 100644 index 0000000..e69de29 diff --git a/game/scenes/Levels/level.gd b/game/scenes/Levels/level.gd index d3ebef6..6dee10b 100644 --- a/game/scenes/Levels/level.gd +++ b/game/scenes/Levels/level.gd @@ -1,7 +1,7 @@ extends Node3D -@export var day_length := 120.0 # seconds for full rotation -@export var start_light_angle := -90.0 +@export var day_length := 120.0 # seconds for full rotation +@export var start_light_angle := -35.0 @export var show_spawn_dialog := true @export_multiline var spawn_dialog_text := "Welcome to Promiscuity.\n\nPress E to close this message." @export var spawn_dialog_auto_close_seconds := 4.0 @@ -35,6 +35,7 @@ const FIRST_QUEST := { } func _ready() -> void: + _apply_sun_state(0.0) _setup_quests() if _should_show_spawn_dialog() and DialogSystem and DialogSystem.has_method("show_text"): await get_tree().process_frame @@ -46,18 +47,19 @@ func _ready() -> void: DialogSystem.close_if_text(spawn_dialog_text) _show_quest_intro_dialog() -func _process(delta): - time = fmod((time + delta), day_length) - var t = time / day_length - - # Rotate sun around X axis - var angle = lerp(start_light_angle, end_light_angle, t) # sunrise → sunset → night → sunrise - sun.rotation_degrees.x = angle - - # Adjust intensity - var curSin = -sin((t * TAU) + start_radians) - var energy = clamp((curSin * 1.0) + 0.2, 0.0, 1.2) - sun.light_energy = energy +func _process(delta): + time = fmod((time + delta), day_length) + _apply_sun_state(time / day_length) + + +func _apply_sun_state(t: float) -> void: + # Start in a clear daytime state instead of at the horizon, which created + # long harsh shadows as soon as the level loaded. + var angle = lerp(start_light_angle, end_light_angle, t) + sun.rotation_degrees.x = angle + var cur_sin = -sin((t * TAU) + start_radians) + var energy = clamp((cur_sin * 1.0) + 0.2, 0.0, 1.2) + sun.light_energy = energy func _setup_quests() -> void: diff --git a/game/scenes/Levels/level.tscn b/game/scenes/Levels/level.tscn index 4365ab2..ae190cb 100644 --- a/game/scenes/Levels/level.tscn +++ b/game/scenes/Levels/level.tscn @@ -336,9 +336,11 @@ buffer = PackedFloat32Array(0.87002033, 0, 0.49301583, -5.6112704, 0, 1, 0, 1, - sky_material = SubResource("ProceduralSkyMaterial_fi66n") [sub_resource type="Environment" id="Environment_a4mo8"] -background_mode = 2 -sky = SubResource("Sky_a4mo8") -ambient_light_source = 3 +background_mode = 1 +background_color = Color(0.55, 0.72, 0.92, 1) +ambient_light_source = 2 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_energy = 0.8 [node name="Node3D" type="Node3D"] script = ExtResource("1_a4mo8") @@ -449,6 +451,7 @@ mesh = SubResource("BoxMesh_w7c3h") [node name="SimpleGrassTextured" type="MultiMeshInstance3D" parent="Ground"] multimesh = SubResource("MultiMesh_px5jg") script = ExtResource("11_1meta") +cast_shadow = 0 texture_albedo = ExtResource("10_loupo") sgt_radius = 2.0 sgt_density = 25 @@ -467,7 +470,7 @@ metadata/_custom_type_script = "uid://2juaclm8gc1n" metadata/SimpleGrassTextured = "2.0.5" [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.5, 0.8660253, 0, -0.8660253, 0.5, 0, 34, 0) +transform = Transform3D(1, 0, 0, 0, 0.819152, 0.573576, 0, -0.573576, 0.819152, 0, 6, 0) shadow_enabled = true [node name="Starter Blocks" type="Node3D" parent="."]