GUI updates, update README

This commit is contained in:
Cainan 2024-07-01 18:54:12 +01:00
parent ecbfd3f4b3
commit 83fd57ccac
2 changed files with 44 additions and 7 deletions

View File

@ -8,11 +8,11 @@ Current Version: v2a
| Game Title | Platform | Tag |Game Version | Supported? | | Game Title | Platform | Tag |Game Version | Supported? |
| ------------------------------ | ----------------------- | ------------------- | ----------------- | --------------- | | ------------------------------ | ----------------------- | ------------------- | ----------------- | --------------- |
| Pop Tap Beat | iOS, macOS, Apple TV | PTB (N/A) | Any | ✅ |
| Nintendo Switch Version | Nintendo Switch | NS1 (JP/ASIA) | v1.4.13 Only | ✅ | | Nintendo Switch Version | Nintendo Switch | NS1 (JP/ASIA) | v1.4.13 Only | ✅ |
| Drum 'n' Fun | Nintendo Switch | NS1 (EU/USA) | v1.4.13 Only | ✅ | | Drum 'n' Fun | Nintendo Switch | NS1 (EU/USA) | v1.4.13 Only | ✅ |
| Drum Session | PlayStation 4 | PS4 (EU/US) | v1.19 Recommended | ✅ | | Drum Session | PlayStation 4 | PS4 (EU/US) | v1.19 Recommended | ✅ |
| Drum Session | PlayStation 4 | PS4 (JP/ASIA) | v1.28 Recommended | ✅ | | Drum Session | PlayStation 4 | PS4 (JP/ASIA) | v1.28 Recommended | ✅ |
| Pop Tap Beat | iOS, macOS, Apple TV | PTB (N/A) | Any | ✅ |
| Atsumete★Tomodachi Daisakusen! | Nintendo Wii U | WIIU3 (N/A) | Any | ✅ | | Atsumete★Tomodachi Daisakusen! | Nintendo Wii U | WIIU3 (N/A) | Any | ✅ |
| Tokumori! | Nintendo Wii U | N/A | Any | ❓ Untested | | Tokumori! | Nintendo Wii U | N/A | Any | ❓ Untested |
| Wii U Version! | Nintendo Wii U | N/A | Any | ❓ Untested | | Wii U Version! | Nintendo Wii U | N/A | Any | ❓ Untested |
@ -26,8 +26,6 @@ Current Version: v2a
| Rhythm Festival | Nintendo Switch | NS2 (JP/ASIA) | N/A | ❌ NOT PLANNED | | Rhythm Festival | Nintendo Switch | NS2 (JP/ASIA) | N/A | ❌ NOT PLANNED |
| The Drum Master | PC, Xbox One, Series SX | TDMX, XB1 (N/A) | N/A | ❌ NOT PLANNED | | The Drum Master | PC, Xbox One, Series SX | TDMX, XB1 (N/A) | N/A | ❌ NOT PLANNED |
A version of this tool with all song data can be found elsewhere.
There's 3 options to sort songs by: ID (A-Z), Song Name (A-Z) and Genre There's 3 options to sort songs by: ID (A-Z), Song Name (A-Z) and Genre
This is still a work in-progress, so please report any issues found to me, along with suggestions for features or game support. This is still a work in-progress, so please report any issues found to me, along with suggestions for features or game support.
@ -48,6 +46,7 @@ Due to copyright reasons, etc. no song data will be provided with this tool, how
### Known Issues ### Known Issues
Due to how texture conversion is handled, not many songs can be added to the Taiko Wii U games, due to it's texture limit. Due to how texture conversion is handled, not many songs can be added to the Taiko Wii U games, due to it's texture limit.
Assuming no official DLC is installed, roughly 90 songs can be added as custom DLC before the game begins to break graphically. Assuming no official DLC is installed, roughly 90 songs can be added as custom DLC before the game begins to break graphically.
This tool currently only works on Windows, due to it's reliance on .exe files.
### Additional Features ### Additional Features
Multi-Language Support. (Can be set in config.json, supports en(English) and jp(Japanese)). Multi-Language Support. (Can be set in config.json, supports en(English) and jp(Japanese)).

View File

@ -191,20 +191,33 @@ search_entry.pack(side="bottom", fill="x", padx=10, pady=10)
def toggle_checkbox(event): def toggle_checkbox(event):
selected_items = tree.selection() selected_items = tree.selection()
platform = game_platform_var.get()
for item_id in selected_items: for item_id in selected_items:
values = list(tree.item(item_id, "values")) values = list(tree.item(item_id, "values"))
song_id = values[1] # Ensure this points to the correct column for song ID song_id = values[1] # Ensure this points to the correct column for song ID
# Retrieve the song data to check the starUra value
song = next((song for song in music_info["items"] if str(song["id"]) == song_id), None)
if custom_songs and not song:
song = next((song for song in custom_music_info["items"] if str(song["id"]) == song_id), None)
star_ura = song.get("starUra", 0) if song else 0
increment = 1
if platform == "WIIU3" and star_ura > 0:
increment = 2
if values[0] == "": if values[0] == "":
values[0] = "" values[0] = ""
if song_id not in selected_song_ids: if song_id not in selected_song_ids:
selected_song_ids.append(song_id) selected_song_ids.append(song_id)
selection_count.set(selection_count.get() + 1) selection_count.set(selection_count.get() + increment)
else: else:
values[0] = "" values[0] = ""
if song_id in selected_song_ids: if song_id in selected_song_ids:
selected_song_ids.remove(song_id) selected_song_ids.remove(song_id)
selection_count.set(selection_count.get() - 1) selection_count.set(selection_count.get() - increment)
tree.item(item_id, values=values) tree.item(item_id, values=values)
@ -323,7 +336,6 @@ def sort_tree(sort_option):
sorted_custom_songs = [song for song in custom_music_info["items"] if song["genreNo"] == genre_no] sorted_custom_songs = [song for song in custom_music_info["items"] if song["genreNo"] == genre_no]
add_sorted_songs(sorted_custom_songs, custom_song_titles, custom_song_subtitles) add_sorted_songs(sorted_custom_songs, custom_song_titles, custom_song_subtitles)
def populate_song_entry(song): def populate_song_entry(song):
#unique_id = "" #unique_id = ""
song_id = f"{song['id']}" song_id = f"{song['id']}"
@ -381,6 +393,25 @@ def update_selection_count(event=None):
# Update the selection count label text # Update the selection count label text
selection_count_label.config(text=f"{count_selected}/{max_entries}") selection_count_label.config(text=f"{count_selected}/{max_entries}")
def clear_selection():
# Get all items in the treeview
all_items = tree.get_children()
for item_id in all_items:
values = list(tree.item(item_id, "values"))
song_id = values[1] # Ensure this points to the correct column for song ID
if values[0] == "":
values[0] = ""
tree.item(item_id, values=values)
# Clear the selected song IDs and reset the selection count
selected_song_ids.clear()
selection_count.set(0)
# Update the selection count display
update_selection_count()
# Bind Treeview click event to toggle item selection # Bind Treeview click event to toggle item selection
#tree.bind("<Button-1>", lambda event: toggle_selection(tree.identify_row(event.y))) #tree.bind("<Button-1>", lambda event: toggle_selection(tree.identify_row(event.y)))
tree.bind("<ButtonRelease-1>", toggle_checkbox) tree.bind("<ButtonRelease-1>", toggle_checkbox)
@ -3327,6 +3358,13 @@ sort_menu.pack(side="top", padx=20, pady=0)
search_entry.pack(side="top", padx=20, pady=10, fill="x") # search bar, currently broken search_entry.pack(side="top", padx=20, pady=10, fill="x") # search bar, currently broken
# Bottom Side # Bottom Side
if lang == "jp":
clear_button = ttk.Button(main_frame, text="クリア・セレクション", command=clear_selection)
else:
clear_button = ttk.Button(main_frame, text="Clear Selection", command=clear_selection)
clear_button.pack(side="bottom", padx=20, pady=10)
if lang == "jp": if lang == "jp":
export_button = ttk.Button(main_frame, text="エクスポート", command=export_data) export_button = ttk.Button(main_frame, text="エクスポート", command=export_data)
else: else: