extends Node3D
## Test scene: Sky3DExtended atmosphere only — no clouds.
## Verifies atmosphere, sun, moon, stars, fog, and cirrus work after cloud code removal.
##
## Controls:
## T / Shift+T — advance / rewind time by 1 hour
## F — fast forward (15min cycle)
## G — slow (default 15min cycle)
## P — pause / resume time
## C — toggle cirrus clouds
## F12 — screenshot
var _sky3d: Sky3DExtended
func _ready() -> void:
_sky3d = $Sky3DExtended as Sky3DExtended
if _sky3d:
# Full moon
if _sky3d.sky:
_sky3d.sky.moon_phase = 0.5
_sky3d.sky.moon_light_energy = 1.5
print("[Sky3DClean] Time: %.1f (%s) | Cirrus: %s | Moon: full" % [
_sky3d.current_time, "day" if _sky3d.is_day() else "night",
_sky3d.sky.cirrus_visible if _sky3d.sky else "?"])
print("[Sky3DClean] Atmosphere-only test — T/Shift+T: ±1hr, F: fast, G: slow, P: pause, C: cirrus, F12: screenshot")
func _unhandled_input(event: InputEvent) -> void:
if not event is InputEventKey or not event.pressed or not _sky3d:
return
match event.keycode:
KEY_T:
var delta := -1.0 if event.shift_pressed else 1.0
_sky3d.current_time = fmod(_sky3d.current_time + delta + 24.0, 24.0)
_print_status()
KEY_F:
_sky3d.minutes_per_day = 1.0
print("[Sky3DClean] Fast forward (1min cycle)")
KEY_G:
_sky3d.minutes_per_day = 15.0
print("[Sky3DClean] Normal speed (15min cycle)")
KEY_P:
if _sky3d.game_time_enabled:
_sky3d.pause()
print("[Sky3DClean] Paused at %.1f" % _sky3d.current_time)
else:
_sky3d.resume()
print("[Sky3DClean] Resumed")
KEY_C:
if _sky3d.sky:
_sky3d.sky.cirrus_visible = not _sky3d.sky.cirrus_visible
print("[Sky3DClean] Cirrus: %s" % _sky3d.sky.cirrus_visible)
KEY_F12:
var img := get_viewport().get_texture().get_image()
var ts := Time.get_datetime_string_from_system().replace(":", "-")
var dir := "/home/fleeky/Desktop/hyper-tps"
DirAccess.make_dir_recursive_absolute(dir)
var path := "%s/sky3d_clean_%s.png" % [dir, ts]
img.save_png(path)
print("[Sky3DClean] Screenshot: %s" % path)
func _print_status() -> void:
print("[Sky3DClean] Time: %.1f (%s)" % [
_sky3d.current_time, "day" if _sky3d.is_day() else "night"])