Skip to content

Graphical tracker#220

Open
lafitteque wants to merge 4 commits into
ManualForArchipelago:mainfrom
lafitteque:graphical_tracker
Open

Graphical tracker#220
lafitteque wants to merge 4 commits into
ManualForArchipelago:mainfrom
lafitteque:graphical_tracker

Conversation

@lafitteque

@lafitteque lafitteque commented Jun 14, 2026

Copy link
Copy Markdown

This PR adds the possiblility to put two new jsons in the data folder :

  • tab_items.json
  • tab_locations.json

Each json adds a corresponding tab showing a visual tracker for tab_items and a visual location sender for tab_locations.

The json format accepted is the same as the following examples :

1. tab_items :

{
    "name": "E2", // optional
    "image_locked": "data/images/locked.png", // optional
    "image_unlocked": "data/images/base.png", // optional
    "x" : 103,
    "y" : 301,
    "width": 64,
    "height": 64,
    "label" : "E2" // optional
}

or

{
    "image": "data/images/empty.png", // optional
    "x" : 103,
    "y" : 301,
    "width": 64,
    "height": 64,
    "label" : "E2" // optional
}

Items are tracked by their name. So if there is no name, it serves only as a visual help (text / image)

2. tab_locations : (pretty similar)

{
    "name": "D6_hard", // optional
    "image_locked": "data/images/not_sent.png", // optional
    "image_unlocked": "data/images/sent.png", // optional
    "x" : 1166,
    "y" : 228,
    "width": 64,
    "height": 64,
    "label_if" : { // optional
        "easy_mode": "6s", // optional
        "normal_mode" : "8s",  // optional
        "hard_mode": "10s" // optional
    }
}

The tabe will create buttons based on these descriptions. If name is not given, it will only add label and image (visual help).

Result : When the corresponding json files are added, two new tabs appear. One showing the items received, one showing the buttons to send locations.

**Why this should be added to the project : ** The current button lists are not immersive and can be hard to navigate or even to design when referring to things with non obvious names. In addition, graphical tabs would be a perfect way to help manual makers design their client as they will.

Progress to be done :

  • A better management of window size
  • More flexible json
  • Add logic possibilities in the jsons
  • optimizations I imagine
  • Catching exceptions in the code for error feedback

EDIT :
I forgot to mention there is no example for the the current example.
I can send you my current example I'm working with.

Also, I made no documentation for making the jsons.

EDIT 2 :
Data folder to test the PR : PRdata.zip

first implementation, manages simple graphical options.

Visual Item Tracker : OK
Visual Location Sender : OK
Removed most prints as well
When the files are not found or empty, don't build a new tab
@silasary

Copy link
Copy Markdown
Contributor

Please share a working example. It's very hard to test the code without one.

@lafitteque

Copy link
Copy Markdown
Author

Of course, here is my own example (the logic is not complete but it should not matter for testing). I just put the data folder as it's the only addition needed to test the PR.
data.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants