Compare commits

..

2 Commits

Author SHA1 Message Date
github-actions[bot]
723cd1dd56 Update version.json with commit count
Some checks failed
Bleeding Update version / update-version (push) Has been cancelled
Version Change Action / version-release (push) Has been cancelled
2025-04-23 18:49:27 +00:00
Wabaano
1e30d2a164
PR of recording total playtime (#14)
Added "Playtime" on About menu.
2025-04-23 15:49:13 -03:00
2 changed files with 28 additions and 2 deletions

View File

@ -832,6 +832,7 @@ class PicomcVersionSelector(QWidget):
try: try:
# Set current_state to the selected instance # Set current_state to the selected instance
self.current_state = selected_instance self.current_state = selected_instance
self.start_time = time.time()
# Read the config.json to get the "Instance" value # Read the config.json to get the "Instance" value
with open('config.json', 'r') as config_file: with open('config.json', 'r') as config_file:
@ -860,6 +861,7 @@ class PicomcVersionSelector(QWidget):
finally: finally:
# Reset current_state to "menu" after the game closes # Reset current_state to "menu" after the game closes
self.current_state = "menu" self.current_state = "menu"
self.update_total_playtime(self.start_time)
def update_last_played(self, selected_instance): def update_last_played(self, selected_instance):
@ -868,6 +870,12 @@ class PicomcVersionSelector(QWidget):
with open(config_path, "w") as config_file: with open(config_path, "w") as config_file:
json.dump(self.config, config_file, indent=4) json.dump(self.config, config_file, indent=4)
def update_total_playtime(self, start_time):
config_path = "config.json"
self.config["TotalPlaytime"] += time.time() - self.start_time
print("TOTAL PLAYTIME:" + str(self.config["TotalPlaytime"]))
with open(config_path, "w") as config_file:
json.dump(self.config, config_file, indent=4)
def showError(self, title, message): def showError(self, title, message):
QMessageBox.critical(self, title, message) QMessageBox.critical(self, title, message)
@ -1087,6 +1095,21 @@ class PicomcVersionSelector(QWidget):
QMessageBox.critical(self, "Error", error_message) QMessageBox.critical(self, "Error", error_message)
def get_playtime(self, config_data):
#Gets the playtime from the json and
total_playtime = config_data.get("TotalPlaytime")/60
#if total playtime is over 60 minutes, uses hours instead
if(total_playtime > 60):
total_playtime = total_playtime / 60
playtime_unit = "hours"
else:
playtime_unit = "minutes"
total_playtime = round(total_playtime)
#returs the playtime and the unit used to measure in a string
return(f"{total_playtime} {playtime_unit}")
def show_about_dialog(self): def show_about_dialog(self):
# Load the version number from version.json # Load the version number from version.json
try: try:
@ -1110,13 +1133,16 @@ class PicomcVersionSelector(QWidget):
if is_bleeding and version_bleeding: if is_bleeding and version_bleeding:
version_number = version_bleeding version_number = version_bleeding
about_message = ( about_message = (
f"PicoDulce Launcher (v{version_number})\n\n" f"PicoDulce Launcher (v{version_number})\n\n"
"A simple Minecraft launcher built using Qt, based on the picomc project.\n\n" "A simple Minecraft launcher built using Qt, based on the picomc project.\n\n"
"Credits:\n" "Credits:\n"
"Nixietab: Code and UI design\n" "Nixietab: Code and UI design\n"
"Wabaano: Graphic design\n" "Wabaano: Graphic design\n"
"Olinad: Christmas!!!!" "Olinad: Christmas!!!!\n\n"
f"Playtime: {self.get_playtime(config_data)}"
) )
QMessageBox.about(self, "About", about_message) QMessageBox.about(self, "About", about_message)

View File

@ -11,5 +11,5 @@
"https://raw.githubusercontent.com/nixietab/picodulce/main/healthcheck.py", "https://raw.githubusercontent.com/nixietab/picodulce/main/healthcheck.py",
"https://raw.githubusercontent.com/nixietab/picodulce/main/modulecli.py" "https://raw.githubusercontent.com/nixietab/picodulce/main/modulecli.py"
], ],
"versionBleeding": "0.13.1-202" "versionBleeding": "0.13.1-204"
} }