diff --git a/ui/main_window.py b/ui/main_window.py index 95edede..9d5b4bd 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -173,19 +173,30 @@ class ProjectStatsDialog(QDialog): class SettingsDialog(QDialog): """Dialog for application settings.""" - def __init__(self, parent=None): + def __init__(self, parent=None, current_player_name: str = ""): super().__init__(parent) self.setWindowTitle("Settings") self.setMinimumWidth(400) + self.player_name = current_player_name self.setup_ui() def setup_ui(self): layout = QVBoxLayout(self) - - info_label = QLabel("Settings configuration would go here.") - info_label.setAlignment(Qt.AlignmentFlag.AlignCenter) - layout.addWidget(info_label) - + + # Player Settings Group + player_group = QGroupBox("Player Settings") + player_layout = QFormLayout(player_group) + + self.player_name_edit = QLineEdit() + self.player_name_edit.setText(self.player_name) + self.player_name_edit.setPlaceholderText("Your avatar name in Entropia Universe") + player_layout.addRow("Avatar Name:", self.player_name_edit) + + help_label = QLabel("Set your avatar name to track your globals correctly.") + help_label.setStyleSheet("color: #888; font-size: 11px;") + player_layout.addRow(help_label) + + layout.addWidget(player_group) layout.addStretch() button_box = QDialogButtonBox( @@ -194,6 +205,10 @@ class SettingsDialog(QDialog): button_box.accepted.connect(self.accept) button_box.rejected.connect(self.reject) layout.addWidget(button_box) + + def get_player_name(self) -> str: + """Get the configured player name.""" + return self.player_name_edit.text().strip() # ============================================================================ @@ -250,6 +265,9 @@ class MainWindow(QMainWindow): self.session_state = SessionState.IDLE self.current_session_id: Optional[int] = None self._current_db_session_id: Optional[int] = None + + # Player settings + self.player_name: str = "" # Set via Settings dialog # Selected gear self._selected_weapon: Optional[str] = None @@ -1048,9 +1066,20 @@ class MainWindow(QMainWindow): """Handle personal global events (only your globals).""" value_ped = event.data.get('value_ped', Decimal('0.0')) creature = event.data.get('creature', 'Unknown') - # Only count personal globals in HUD stats - self.hud.on_personal_global(value_ped) - self.log_info("Global", f"🎉 YOUR GLOBAL: {creature} for {value_ped} PED!!!") + player = event.data.get('player_name', 'Unknown') + + # Only count if it matches our configured player name + if self.player_name and player.lower() == self.player_name.lower(): + # Only count personal globals in HUD stats + self.hud.on_personal_global(value_ped) + self.log_info("Global", f"🎉 YOUR GLOBAL: {creature} for {value_ped} PED!!!") + else: + # Log but don't count - might be another player if names are similar + self.log_info("Global", f"{player} got global: {creature} for {value_ped} PED") + + # If no player name set, warn user + if not self.player_name: + self.log_info("Config", "⚠️ Set your avatar name in Settings to track your globals correctly") def on_hof(event): """Handle HoF events.""" @@ -1452,8 +1481,13 @@ class MainWindow(QMainWindow): def on_settings(self): """Open settings dialog.""" - dialog = SettingsDialog(self) - dialog.exec() + dialog = SettingsDialog(self, self.player_name) + if dialog.exec() == QDialog.DialogCode.Accepted: + self.player_name = dialog.get_player_name() + if self.player_name: + self.log_info("Settings", f"Avatar name set to: {self.player_name}") + else: + self.log_info("Settings", "Warning: No avatar name set. Global tracking may not work correctly.") def on_loadout_manager(self): """Open Loadout Manager dialog."""