I don't remember how I implemented the workaround for shaders not pausing in no signal. I think it would be useful to add to these notes, so here's what I had written:
var scaled_time: float
const HOUR: float = 60*60
func _process(delta: float) -> void:
if not get_tree().paused:
+= delta
scaled_time while scaled_time > HOUR:
-= HOUR
scaled_time
global_shader_parameter_set("SCALED_TIME", scaled_time) RenderingServer.
In order to work, a global shader parameter with
the name SCALED_TIME
needs to exist in
the project settings and this code needs be added to
an autoloaded singleton. In the case of no
signal, it is part of the
GameState
autoloaded singleton.
I checked why I implemented a rollover of one
hour, and it seems like I probably did it this way
because that's
what's done by default for the TIME
built-in.