mirror of
https://github.com/cainan-c/TaikoPythonTools.git
synced 2024-11-23 22:51:02 +01:00
GUI updates, update README
This commit is contained in:
parent
ecbfd3f4b3
commit
83fd57ccac
@ -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)).
|
||||||
|
@ -191,23 +191,36 @@ 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)
|
||||||
|
|
||||||
update_selection_count()
|
update_selection_count()
|
||||||
return "break"
|
return "break"
|
||||||
|
|
||||||
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user