RenCloud / scs-sdk-plugin

ETS2 (Euro Truck Simulator 2) & ATS (American Truck Simulator) SDK plug-in. Telemetry data is shared via SharedMemory/Memory Mapped Files.
MIT License
185 stars 35 forks source link

Event booleans not resetting #98

Closed kniffen closed 2 years ago

kniffen commented 2 years ago

Refering to this issue on the NodeJS implementation to get the data https://github.com/kniffen/TruckSim-Telemetry/issues/13 Event trigger booleans do not seem to reset after the event is done.

For example if a job is delivered it's set to True. But is stays True until you deliver another job, then it goes back to False.

The issue seems to be isolated to the 12th zone of the data. Meaning the event triggers related to jobs starting, finishing, cancelled and delivered, as well as fines, tollgates, ferries, trains, refuel and refuel paid.

RenCloud commented 2 years ago

There was a change in rev. 11 Changelog.

The values like onJob have the old behavior -> stays true until the game says otherwise. That's because they show a state of something.

For event values like job finished, job cancelled they are now changed through the game event itself and the additional flip back to false after 10 frames was removed. This makes the value time independent.

I chose that way, so it does not matter how fast the client updates the data. Also, it just removes a bunch of timing logic in the plugin.

Additionally, it makes the client logic a bit simpler, because the client theoretically is just interested in a change of the value. At least that's the interest of the c# library. Besides that, the value defines no state, so there is no true or false just a fired or not. That is now displayed over a change of the value.

May in some cases this is not the best way, but I think it makes more sense than the old logic with true/false and a timing based reset.

kniffen commented 2 years ago

A bit confusing and inconsistent compared to other events. But it makes sense and is probably the best approach given the circumstances.