OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-tps / scenes / test / test_nubis_addon.gd

77 lines · gd ref:
extends Node3D

## Test scene for nubis_clouds addon — verifies all paths work from new addon location.
## F12: screenshot

func _ready() -> void:
	# Sky shader (background clouds)
	var sky_shader := load("res://addons/nubis_clouds/shaders/cloud_sky.gdshader") as Shader
	if sky_shader:
		var sky_mat := ShaderMaterial.new()
		sky_mat.shader = sky_shader
		var pw_tex = load("res://addons/nubis_clouds/textures/perlworlnoise.png")
		var worl_tex = load("res://addons/nubis_clouds/textures/worlnoise.webp")
		var weather_tex = load("res://addons/nubis_clouds/textures/weather.webp")
		if pw_tex: sky_mat.set_shader_parameter("perlworlnoise", pw_tex)
		if worl_tex: sky_mat.set_shader_parameter("worlnoise", worl_tex)
		if weather_tex: sky_mat.set_shader_parameter("weather_map", weather_tex)
		sky_mat.set_shader_parameter("cloud_coverage", 0.35)
		sky_mat.set_shader_parameter("cloud_time_scale", 2.0)
		var sky := Sky.new()
		sky.sky_material = sky_mat
		sky.process_mode = Sky.PROCESS_MODE_REALTIME
		var env: Environment = $WorldEnvironment.environment
		env.background_mode = Environment.BG_SKY
		env.sky = sky
		print("[NubisAddon] Sky shader loaded")

	# Compositor (hero cloud volumes)
	var compositor := Compositor.new()
	var nubis_comp := NubisCompositor.new()
	nubis_comp.density_scale = 80.0
	nubis_comp.noise_freq = 0.003
	nubis_comp.erosion_strength = 0.6
	compositor.compositor_effects = [nubis_comp]
	var we := $WorldEnvironment as WorldEnvironment
	we.compositor = compositor

	# Hero cloud volumes
	var cloud1 := CloudVolume.new()
	cloud1.position = Vector3(0, 200, -300)
	cloud1.cloud_size = Vector3(400, 200, 350)
	cloud1.density_scale = 80.0
	cloud1.coverage = 0.7
	cloud1.wind_speed = 0.015
	add_child(cloud1)

	var cloud2 := CloudVolume.new()
	cloud2.position = Vector3(400, 250, -100)
	cloud2.cloud_size = Vector3(350, 180, 300)
	cloud2.density_scale = 70.0
	cloud2.coverage = 0.7
	cloud2.wind_speed = 0.015
	add_child(cloud2)

	var cloud3 := CloudVolume.new()
	cloud3.position = Vector3(-300, 180, 200)
	cloud3.cloud_size = Vector3(300, 150, 280)
	cloud3.density_scale = 75.0
	cloud3.coverage = 0.6
	cloud3.wind_speed = 0.02
	add_child(cloud3)

	print("[NubisAddon] 3 hero cloud volumes active")


func _unhandled_input(event: InputEvent) -> void:
	if event is InputEventKey and event.pressed:
		match event.keycode:
			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/nubis_addon_%s.png" % [dir, ts]
				img.save_png(path)
				print("[NubisAddon] Screenshot: %s" % path)