OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-tps / addons / sky3d_extended / src / cloud_layers / cloud_layer.gd

49 lines · gd ref:
## Base class for pluggable cloud layers.
## Each layer manages its own nodes and exposes parameters for debug panel auto-discovery.
class_name CloudLayer
extends RefCounted

var name: String = "CloudLayer"
var enabled: bool = true


## Override: return array of parameter descriptors for debug panel auto-discovery.
## Each dict: { "name": String, "min": float, "max": float, "step": float, "value": float }
func get_params() -> Array[Dictionary]:
	return []


## Override: set a named parameter value.
func set_param(param_name: String, value: float) -> void:
	pass


## Override: get current value of a named parameter.
func get_param(param_name: String) -> float:
	return 0.0


## Override: build nodes and add them to parent.
func create(parent: Node3D) -> void:
	pass


## Override: clean up nodes.
func destroy() -> void:
	pass


## Override: per-frame update (wind, camera follow, etc).
func update(shared: CloudSharedState, delta: float) -> void:
	pass


## Override: update lighting (sun/moon direction changes).
func update_lighting(shared: CloudSharedState) -> void:
	pass


## Override: show/hide the layer's visual nodes.
func set_visible(value: bool) -> void:
	pass