Add vehicle timetable get/set support
Timetables have no GameScript API surface, so this implements real DoCommands over the game port (ClientCommand/ServerCommand) instead of the Admin GameScript relay used for list_vehicles(): change_timetable(), autofill_timetable(), set_timetable_start(), and set_vehicle_on_time() send commands, while get_vehicle_timetable() reconstructs state purely by observing ServerCommand broadcasts, since no query command exists. Includes the custom varuint wire codec these commands require, a full usage guide (docs/TIMETABLES.md), and a worked demo in main.py. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ A high-performance, Object-Oriented Python client for OpenTTD servers, specifica
|
||||
- **State Management:** Handles the full join sequence including Map download and synchronization.
|
||||
- **Comprehensive Testing:** Robustly tested with unit, logic, and E2E tests (including 100% coverage for unit/logic tests).
|
||||
- **Vehicle Listing:** Query vehicle data via the Admin GameScript channel with `list_vehicles()`.
|
||||
- **Vehicle Timetables:** Read and modify a vehicle's timetable (`change_timetable()`, `autofill_timetable()`, `set_timetable_start()`, `set_vehicle_on_time()`, `get_vehicle_timetable()`) via real game-protocol commands.
|
||||
|
||||
## 🛠 Setup
|
||||
|
||||
@@ -73,4 +74,5 @@ For detailed instructions on E2E testing and coverage reports, see the [Testing
|
||||
## 📜 Documentation
|
||||
- [Architecture & Design](docs/ARCHITECTURE.md)
|
||||
- [Protocol Internals (PAKE/Encryption)](docs/PROTOCOL.md)
|
||||
- [Vehicle Timetables Usage Guide](docs/TIMETABLES.md)
|
||||
- [Contributor Guide](docs/CONTRIBUTING.md)
|
||||
|
||||
Reference in New Issue
Block a user