Описание
# 🚲 Bikes Are Pain

This mod allows you to control an in-game bicycle through real-world pedaling when linked to a fitness bike, combining gameplay with exercise. Without the fitness bike integration, it functions as a regular bicycle mod.
## ⚠️ Important Notice
1. **Server Compatibility**: At this time, **BikesArePain is not recommended for server use** due to heavy packet traffic when using the real-world fitness bike integration (due to a lack of optimization). This may lead to performance issues or unstable gameplay.
2. **No Server Auto-Check**: The mod will not auto-disable if the server does not have the mod installed.
3. **Alpha State**: This mod is currently in alpha stage. Core functionalities are implemented, but further refinement, optimizations, and feature additions are needed.
## 📕 Features
- Functional in-game bicycle
- Pedometer to keep track of biking data
- Dyeable bicycle parts
- Optional integration with real-world fitness bikes (through Arduino)
## 📌 Quick Start
1. **Download** the latest `.jar` file.
2. **Place** the `.jar` in your Minecraft `mods` folder.
3. **Install Dependencies**:
- [Geckolib](https://modrinth.com/mod/geckolib)
- [YetAnotherConfigLib](https://modrinth.com/mod/yacl)
- [ArchitecturyAPI](https://modrinth.com/mod/architectury-api)
4. To use the fitness bike integration, modify the Arduino sketch to fit your setup (a guide is coming soon).
- [Arduino Sketch](https://github.com/kadmuffin/bikesarepain-mod/blob/main/arduino/uno_board/uno_board.ino)
- Run the command `/bikes open `
## 🚩 Known Issues
- **No server auto-checks**: Joining a server without the mod **won't automatically disable the features**.
- **Server traffic concerns**: Excessive packet traffic when using the fitness bike integration or certain features.
- **Pitch sync issues**: Bicycle pitch synchronization is one-way, from the client to the server.
- **Bad Accesiblity**: The Narrator isn't currently used to communicate information.
- **Serial connection bugs**: Fitness bike linking is unstable. Auto-connect often fails or connections drop mid-session.
- **Model inconsistencies**: The in-game bike model has inconsistent part naming.
- **Bad Geckolib Usage**: Model animations and movement rely on a hacky implementation and require a rewrite.
## 🌿 Planned Features
- Unit tests for the codebase
- Code refactoring for performance improvements
- Workout session visualization UI
- Configurable workout goals
- Advancements based on exercise achievements
- New bike types (e.g., mountain bike, motorbike)
- Server-side configuration options
## 👓 Dependencies
This mod requires the following libraries:
- **[Geckolib](https://modrinth.com/mod/geckolib)** – For animations
- **[YetAnotherConfigLib](https://modrinth.com/mod/yacl)** – For configuration
- **[ArchitecturyAPI](https://modrinth.com/mod/architectury-api)** – For cross-modloader support
## 📝 License
BikesArePain is licensed under the **MIT License**. See the [LICENSE](https://github.com/kadmuffin/bikesarepain-mod/blob/main/LICENSE) for details.
This mod uses **[jSerialComm](https://github.com/Fazecast/jSerialComm)** for serial communication under the [Apache 2.0 License](https://github.com/Fazecast/jSerialComm/blob/master/LICENSE-APACHE-2.0). For other third-party software licenses, check [THIRD_PARTY_LICENSES](https://github.com/kadmuffin/bikesarepain-mod/blob/main/THIRD_PARTY_LICENSES.md).
## ⚙️ Support
Found a bug or have a suggestion? Please open an issue on the [GitHub repository](https://github.com/kadmuffin/bikesarepain-mod/issues).
Enjoy the ride and stay fit!