Called every time a simulation step is done, with the environment, the last executed reaction (if any), the current time, and the current step.