mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-15 15:52:21 +00:00
A weather row's play started the world clock even with no time to show, where there is no timeline; it now does nothing then, as the timeline's own Play cannot be reached. A weather layer made without a weather clock does nothing once destroyed, so enabling it after builds no clock. The timeline's speed follows the world clock's rate whoever set it, and its Play runs at that rate, so it and a row's play never run at different rates; a rate not offered shows as the nearest offered speed. Choosing a speed sets the clock's rate first, also while a driver steps. Marks merge on their whole label and are cut for showing after, so two whose labels only differ past the cut stay two, and the cut counts graphemes (code points where the runtime cannot tell them), so an emoji is never split. Tests that compared a DOM element with null built an assertion message from the element when they failed, which hung the run; they compare plain values now, so they fail at once. The timeline tests put the clock back to real time after each.
3.6 KiB
3.6 KiB
- Timeline marks have labels. Hovering a tick shows its label (a launch's
mission name, or an earthquake's magnitude and place, such as
M6.4 · 113 km SSE of Lata, Solomon Islands), and a tap on or within 6 px of a tick goes exactly to its mark rather than to the point tapped; a tap elsewhere and a drag work as before. The arrow keys still step from mark to mark, and the handle then tells the mark's label with the time to screen readers and shows it over the track while focused. A layer's world clock coverage may give each mark as{ time, label, id, kind }as well as a bare time.worldClock.coverage()keepsmarksas the sorted times and addsmarkDetails, the merged marks themselves, merged on their whole label; a label longer thanWORLD_CLOCK_MARK_LABEL_LENGTH(60 characters, exported fromgods-eye-view/time) is then cut, ending in…, never splitting an emoji. A zoom or a pan clears the hovered label, and a label is never wider than the track (samehkhamis, #1745). - The timeline marks only events: launches, and earthquakes of magnitude 6
and up while the Earthquakes layer is on (about one every two days
worldwide). It no longer draws a tick for every weather frame, which came
every few minutes and made the track a wall of dashes; the weather frames
still set the time the timeline covers, and Play still waits at each next
frame until it loads. With no mark ahead, the arrow keys step along the
track. The map still draws every earthquake, and an earthquake layer never
widens the timeline beyond its strong quakes' own times. The Earthquakes
layer registers with the world clock (
gods-eye-view/time) once it is initialised, and has time to show only while on;gods-eye-view/layers/earthquakesaddsEARTHQUAKE_MARK_MAGNITUDE,earthquakeMagnitudeTitle,earthquakeMarkLabelandearthquakeCoverage. A weather row'sstepparam goes to the previous or next weather frame (samehkhamis, #1745). - The main timeline is the only time control. The Weather panel no longer
has a slider, step buttons, Latest or Play of its own; it shows the frame
time instead: the newest frame and its age while live, the timeline time
alone at a past time; while live it shows the newest frame even when the
products are suspended (reduced motion, a hidden page, no imagery host).
The timeline's Play runs the world clock at the chosen speed for weather
too, stopping at each next frame until it loads, rather than stepping the
observed frames every two seconds and going round from the last to the
first. A weather row's
playandlatestparams move the world clock as the timeline does:playruns at the timeline's chosen speed, from the start when live or at the end, and does nothing while every product the row shows is suspended or while there is no time to show. The world clock keeps a chosen rate while paused and live (goLive()no longer sets it back to 1), so any play runs at it, and the timeline's speed shows the clock's rate whoever set it (the nearest offered speed for another rate). A weather layer made without a weather clock leaves the world clock alone until it is first enabled, does nothing once destroyed, and destroying it leaves the world clock's time where it is. Breaking: the catalog'sweatherClock(gods-eye-view/application/layers) no longer hassetTarget,step,latest,play,pauseortogglePlay, its state no longer hasplaying, and it no longer attaches itself to the world clock as a driver; move time with the world clock (gods-eye-view/time, alsoweatherClock.world) instead (samehkhamis, #1745).