Complete timestamp for X3D events. For most purposes, you're interested only in it's Seconds field, this is the amount of continous time that passed (in double-precision seconds).
More precisely, timestamp is actually a sum of Seconds + PlusTicks ticks. PlusTicks is the number of discrete "ticks" that occurred with the same Seconds value. A tick is, conceptually, an infinitely small amount of time.
Ticks are used when comparing time values: when two timestamps have the same Seconds value, then we can compare the PlusTicks field. Timestamps are equal only when both Seconds and PlusTicks values are exactly equal.
First, note that X3D standard defines that within one timestamp, only one event may pass through one route. This mechanism allows to avoid loops in routes.
This is a good thing — it allows TCastleSceneCore to be very flexible. The idea is that sensors are activated when user interface reports some event. You don't have to update time before every TCastleSceneCore.Press and such.
The potential problem here is that when you call TCastleSceneCore.Press twice, without the TCastleSceneCore.IncreaseTime in between, then the second TCastleSceneCore.Press events will have "clogged" routes. Events send from the second TCastleSceneCore.Press may be blocked on routes, since they will be detected as occuring within the same timestamp, so (following VRML/X3D standard) they'll have to be ignored.
Using "Seconds seconds + PlusTicks ticks" allows to avoid this. Each TCastleSceneCore.Press and such increases world time by 1 tick – this way, the second TCastleSceneCore.Press will have one more tick, so will always be considered later, and things will work Ok.