trippsc2 / OpenTracker

An open-source cross-platform tracking application for A Link to the Past Randomizer.
MIT License
35 stars 9 forks source link
autotracker gui opentracker tracker

OpenTracker

An open-source cross-platform tracking app for A Link to the Past Randomizer.

By request, I created a Discord server for the project. https://discord.gg/VGjNVmKXgJ

This project is intended to provide a tracker with the following features:

The following is on my roadmap for future updates:

Getting Started

Prerequisites

OpenTracker is a .NET 5.0 application. You will be required to install a .NET runtime version 5.0 or greater. You can find it at this link: https://dotnet.microsoft.com/download/dotnet

Windows

NOTE: The Windows MSI has been known to not install properly over an existing install some of the time. If you run into odd issues after an update, try uninstalling and reinstalling the program to see if that resolves it and report the issue here.

Linux

If you are running a Debian-based (Ubuntu, Mint, PopOS, etc.) distribution, run the following commands:

wget https://github.com/trippsc2/OpenTracker/releases/download/<version>/OpenTracker.<version>.deb
sudo apt install ./OpenTracker.<version>.deb

If you are running a RHEL-based (Fedora, etc.) distribution, run the following commands:

wget https://github.com/trippsc2/OpenTracker/releases/download/<version>/OpenTracker.<version>.rpm
sudo rpm -i ./OpenTracker.<version>.rpm

If you are running a different distribution, run the following commands:

wget https://github.com/trippsc2/OpenTracker/releases/download/<version>/OpenTracker.<version>.tar.gz
tar xvzf ./OpenTracker.<version>.tar.gz

To run the application, run the OpenTracker binary file. It will be located in the extracted folder, if you used the tarball. It will be located in your distribution's X application folder (usually /usr/share), if you installed the package.

MacOS

Download the OpenTracker.\<version>.macOS.zip file from the Releases page. This contains an .app bundle that can be moved to your Applications folder or run directly.

How it Works

General

Some notable differences from other map trackers:

Autotracking

Autotracking support is available currently. QUSB2SNES or USB2SNES are required to connect the tracker to your game currently. I don't plan to add support for direct Lua connectors at this time, as QUSB2SNES can facilitate connections to those emulators already. If there is enough demand, this may change.

To start Autotracking, perform the following steps:

Some notes about Autotracking:

Entrance Shuffle

Enabling the Entrance Shuffle mode will do the following.

Each entrance can be marked with a number of images. These images include all standard items, Agahnim, Ganon, text representing each dungeon entrance, and pictures representing most of the connectors. When an image is selected, it will be displayed on the map attached to the entrance. You can use this to mark points of interest for future use.

The standard colors still display on each location to indicate whether the location is accessible as an entrance given the current items and exits available. However, all entrance locations (including those colored as inaccessible) can be cleared by right clicking the location, indicating that it is available as an exit. This will allow you to determine what locations a new exit provides.

You can click and drag entrances together to connect them with a line. This will allow you to mark connectors more clearly.

UI Color Themes

In version 1.1.0, UI color themes were introduced. Themes are encoded in a XAML file stored in the Themes subfolder of the program folder. Any custom themes that you create and place in that folder will be available to choose in the menu.

The themes are extended from the Avalonia themes generated by this project: https://github.com/wieslawsoltes/ThemeEditor

The following lines need to be added and customized to the themes generated for storing the color of the Items panel background and the Locations panel background (see existing themes for file structure):

    <Color x:Key="ItemsPanelColor">#FF2D4848</Color>
    <Color x:Key="LocationsPanelColor">#FF233939</Color>

    <SolidColorBrush x:Key="ItemsPanelBrush" Color="{DynamicResource ItemsPanelColor}"></SolidColorBrush>
    <SolidColorBrush x:Key="LocationsPanelBrush" Color="{DynamicResource LocationsPanelColor}"></SolidColorBrush>

If you'd like to see a theme you created be included in the official release, please send it to me via an Issue or Pull Request on here or by a DM on Discord (Tripp#6120) or Reddit (trippsc2).

License

This project is licensed under the MIT license.

Acknowledgments