A mod bringing controlling style of bedrock version to Java version.
Currently in early development, welcome to report for bugs or other problems you found is welcome!
## Download and install
You can download the latest release of TouchController mod
on [Modrinth](https://modrinth.com/mod/touchcontroller#download), [GitHub Releases](https://github.com/TouchController/TouchController/releases)
and [MC 百科](https://www.mcmod.cn/download/17432.html).
On different mod loaders, TouchController needs dependency mod as below:
- Fabric: [Fabric API](https://github.com/FabricMC/fabric)
- Forge: None
- NeoForge: None
## Supported game version and platforms
Below are game versions and mod loaders TouchController supports:
- 1.12.2 (Forge)
- 1.16.5 (Forge, Fabric)
- 1.20.1 (Forge, Fabric)
- 1.20.4 (Forge, NeoForge, Fabric)
- 1.20.6 (Forge, NeoForge, Fabric)
- 1.21 (Forge, NeoForge, Fabric)
- 1.21.1 (Forge, NeoForge, Fabric)
- 1.21.3 (Forge, NeoForge, Fabric)
- 1.21.4 (Forge, NeoForge, Fabric)
- 1.21.5 (Forge, NeoForge, Fabric)
- 1.21.6 (Forge, NeoForge, Fabric)
- 1.21.7 (Forge, NeoForge, Fabric)
- 1.21.8 (Forge, NeoForge, Fabric)
Support for more game versions and mod loaders is in developing currently.
Below are platforms TouchController supports:
- Windows (Minimum supported version is Windows 7, supports x86, x86_64 and ARM64 architecture)
- [Fold Craft Launcher](https://github.com/FCL-Team/FoldCraftLauncher)
- [Zalith Launcher](https://github.com/ZalithLauncher/ZalithLauncher)
- [Zalith Launcher 2](https://github.com/ZalithLauncher/ZalithLauncher2)
- [Pojav Glow·Worm](https://github.com/Vera-Firefly/Pojav-Glow-Worm)
Support for touch screen for X11 on Linux may be added in the future. iOS and macOS will not be supported
because I don't have corresponding environment and devices, but pull requests for iOS and macOS supported will be
accepted.
## Features supported by now
- Touch input of Minecraft Bedrock version style
- Customizable controller layout
- Ability to switch displaying buttons by conditions such as swimming and flying
- Provide haptic feedback when breaking blocks (Only supported on Android platform currently)
## Compile
At first, Rust compiler is required, you can install it with [rustup](https://rustup.rs/).
And then, you need to install Rust toolchains for targets below:
- armv7-linux-androideabi
- aarch64-linux-android
- i686-linux-android
- x86_64-linux-android
You can add these toolchain by `rustup target add `.
You also need install the Android SDK which is able to install in Android Studio, and create a file named
`local.properties` in the project root directory with content below:
```
sdk.dir=
```
By default Android Studio will do this for you. If you opened this project in Android Studio, there is no need for you
to configure this file.
You need to install the Android SDK, which is also able to install in Android Studio. After you installed the Android
SDK, install the `cargo-ndk` tool by using `cargo install cargo-ndk`.
You need to build two podman images: `touchcontroller-linux` and `llvm-mingw-jdk`. Make sure you installed podman, and
run commands below:
```shell
podman build -t touchcontroller-linux proxy-linux
podman build -t llvm-mingw-jdk proxy-windows
```
Finally, you can run `./gradlew build` to compile, and built file can bu found in `mod/build/libs`.
---