OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-tps / scenes / test / test_sky3d_clean.gd

67 lines · gd ref:
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"])