- Changed the default value for `VITE_DAEMON_SOCKET` in `deploy-frontend.sh` and `update-frontend.sh` to use the `/ws/` path.
- Updated the message rendering logic in `MessagesDialog.vue` to utilize a new `formatBody` method for improved translation handling.
- Added a new translation for "overproduction" in both English and German localization files.
- Added new notification translations for election creation in both `falukant.json` files.
- Updated the message rendering in `MessagesDialog.vue` to include the new translation structure.
- Replaced `bcrypt` with `bcryptjs` for compatibility in `authService.js` and `settingsService.js`.
- Updated package versions in `package.json` and `package-lock.json`, including `multer`, `nodemailer`, and others.
- Added storage management features in the frontend, including free storage calculation and localization updates for new terms in `falukant.json` files.
- Added logic in FalukantService to calculate the next available advancement date based on the user's last advancement.
- Updated the frontend to display a cooldown message indicating when the user can next advance in nobility.
- Enhanced the NobilityView component to handle and format the next advancement date appropriately.
- Implemented new endpoints in AdminController for managing Falukant regions, including fetching, updating, and deleting region distances.
- Enhanced the FalukantService with methods for retrieving region distances and handling upsert operations.
- Updated the router to expose new routes for region management and transport creation.
- Introduced a transport management interface in the frontend, allowing users to create and manage transports between branches.
- Added localization for new transport-related terms and improved the vehicle management interface to include transport options.
- Enhanced the database initialization logic to support new region and transport models.
- Simplified fallback logic for daemon URL generation, removing hardcoded values and using dynamic protocol and hostname.
- Added detailed error messages for common WebSocket connection issues, improving debugging capabilities.
- Updated reconnection warning messages to guide users on potential configuration issues with the daemon server.
- Introduced vehicle types and transport management in the backend, including new models and associations for vehicles and transports.
- Implemented service methods to retrieve vehicle types and handle vehicle purchases, ensuring user validation and transaction management.
- Updated the FalukantController and router to expose new endpoints for fetching vehicle types and buying vehicles.
- Enhanced the frontend with a new transport tab in BranchView, allowing users to buy vehicles, and added localization for vehicle-related terms.
- Included initialization logic for vehicle types in the database setup.
- Removed the directors section from the navigation menu for a cleaner interface.
- Updated the FalukantService to include additional attributes for directors, such as knowledges and region.
- Enhanced the DirectorInfo component to display detailed information, including knowledge and income management features.
- Implemented tab navigation in BranchView for better organization of director, inventory, production, and storage sections.
- Updated localization files to reflect changes in navigation and tab labels.
- Updated the FormattedDropdown component to use normal document flow for the dropdown list, ensuring visibility when opened.
- Enhanced the createBranch method in BranchView to automatically select the most recently created branch after a new branch is added, improving user experience.
- Added a computed property `branchesKey` to generate a unique key based on branch IDs, ensuring the dropdown re-renders when the branch list updates.
- Updated the FormattedDropdown component to utilize this key for improved responsiveness to data changes.
- Updated the onTabChange method to remove unnecessary checks for existing data before loading current positions, open politics, and elections.
- This change enhances the clarity of the method and ensures that data is always loaded when the respective tab is selected.
- Added a new method `getPoliticsOverview` in FalukantService to retrieve currently held offices, including office holders and term end dates.
- Enhanced the PoliticsView component to display the term end dates for current offices.
- Updated localization files to include a new message for applying to selected positions.
- Improved the handling of already applied positions in the open politics section, pre-selecting checkboxes accordingly.
- Updated the WebSocketLogDialog to use enriched log entries with resolved usernames for connection and target users.
- Implemented batch retrieval of user information from the API to improve user display in logs.
- Added error handling for user data fetching and fallback logic for missing usernames.
- Introduced a WebSocket Log section in the Services Status View, allowing users to view real-time logs.
- Updated localization files for both German and English to include WebSocket Log messages.
- Enhanced the UI with a button to open the WebSocket Log dialog, improving user interaction and monitoring capabilities.
- Added a new method `getUsers` in AdminController to handle batch retrieval of user information based on hashed IDs.
- Updated adminRouter to include a new route for batch user retrieval.
- Enhanced AdminService with a method to fetch user details by hashed IDs, ensuring proper access control.
- Updated localization files to include the new "username" field for user connections in both German and English.
- Modified ServicesStatusView to utilize the new batch user retrieval for displaying usernames alongside connection counts.
- Updated the handling of daemon responses to accommodate a new structure that includes user connection counts.
- Transformed the users object into an array for easier template rendering.
- Improved error handling for JSON parsing and daemon message processing.
- Introduced a new Services Status page to monitor the status of Backend, Chat, and Daemon services.
- Updated navigation structure to include the new Services Status link for main admin users.
- Added German and English localization for the Services Status page, including titles, descriptions, and status messages.
- Refactored Vite configuration to load environment variables explicitly based on the current mode
- Added support for additional environment variables: VITE_DAEMON_SOCKET, VITE_API_BASE_URL, VITE_CHAT_WS_URL, and VITE_SOCKET_IO_URL
- Improved clarity and maintainability of the configuration structure
- Improved fallback logic for daemon URL based on hostname and environment
- Added detailed logging for daemon connection status and environment settings
- Streamlined handling of environment variables for better clarity
- Improved handling of daemon URL configuration based on environment variables
- Added detailed logging for daemon connection status and environment settings
- Streamlined fallback logic for local development and production environments
- Added image preloading for quick access in StatusBar component
- Implemented a watcher to reload images when the menu changes
- Introduced a delay before sending 'setUserId' to ensure daemon readiness
- Improved logging for WebSocket close events and errors
- Clear socket reference on connection close and error
- Ensure reconnection attempts only occur if the user is logged in
- Improved logging for reconnection attempts and retry count
- Added maximum retry limit with extended wait time after reaching it
- Reset daemon connection state on successful connection and errors
- Clear retry timer when connection is established
- Enhanced retry logic to prevent multiple simultaneous connection attempts
- Improved logging for daemon reconnection attempts
- Avatar images should not be optimized as they are used for character display
- Restored original 1792x1024 resolution for proper character appearance
- Only small icons should be optimized, not character avatars
- Optimized Falukant shortmap icons: 1.4MB-2.9MB → 1.9KB-3.3KB (99%+ reduction)
- Optimized all large images: avatars, maps, passengers, products, etc.
- Improved error handling in getGifts method with better logging
- Fixed icon loading performance issues
- Maintained original design while dramatically improving load times
- Total space savings: ~100MB+
- Neue CSV-Datei backend/data/termine.csv für Termine-Speicherung
- Backend-Controller und Router für /api/termine Endpoint
- TermineWidget Component zur Anzeige von bevorstehenden Terminen
- Integration in LoggedInView (Startseite für eingeloggte User)
- Zeigt Datum, Titel, Beschreibung, Ort und Uhrzeit an
- Sortiert nach Datum, filtert automatisch vergangene Termine
- Prüfe ob menu.falukant und menu.falukant.children existieren
- Verhindert TypeError wenn Falukant-Menü nicht geladen ist
- Behebt: can't access property 'children', e.menu.falukant is undefined
Änderungen:
- Implementierung einer erweiterten Kollisionsprüfung für Passagiere und Ziele, um den Kollisionsbereich um 30px in alle Richtungen zu vergrößern.
- Anpassung der Methoden zur Abholung und Ablieferung von Passagieren, um die neue Kollisionslogik zu nutzen.
- Verbesserung der Kommentare zur Klarheit der Änderungen und des Codes.
Diese Anpassungen verbessern die Genauigkeit der Kollisionserkennung und optimieren das Spielerlebnis durch eine erweiterte Interaktion mit Passagieren und Zielen.
Änderungen:
- Anpassung der Koordinaten für die Sichtbarkeit der Kollisionsboxen, um die Höhe der Rechtecke zu optimieren.
- Verbesserung der Darstellung der virtuellen Haltelinien durch Erhöhung der Höhe der Rechtecke.
Diese Anpassungen verbessern die Sichtbarkeit und Genauigkeit der Kollisionsboxen im Spiel.
Änderungen:
- Anpassung der Kommentare zur besseren Verständlichkeit der Sichtbarkeit und Dimensionen der Rechtecke für die Kollisionsboxen.
- Aktualisierung der Koordinaten für die virtuellen Haltelinien, um die gesamte Höhe und Breite der Tiles zu berücksichtigen.
Diese Anpassungen verbessern die Klarheit des Codes und optimieren die Kollisionslogik im Spiel.
Änderungen:
- Implementierung einer Wartezeit von 1 Sekunde, bevor ein gestopptes Auto wieder fahren darf, um realistischere Bewegungen zu ermöglichen.
- Anpassung der Distanzprüfung für das Wiederanfahren von Autos, um die Interaktion mit dem Taxi zu optimieren.
- Entfernung der Rückwärtsbewegung bei Kollisionen mit stehenden Taxis, um das Verhalten zu vereinheitlichen.
- Hinzufügen eines Zeitstempels für den Stopp eines Autos zur besseren Nachverfolgbarkeit.
Diese Anpassungen verbessern die Fahrzeuginteraktion und die Kollisionserkennung im Spiel.
Änderungen:
- Hinzufügen einer ursprünglichen Geschwindigkeit für Autos zur Wiederherstellung nach Kollisionen.
- Anpassung der Logik zur Entfernung von Autos mit Geschwindigkeit 0, um gestoppte Autos nach Kollisionen zu berücksichtigen.
- Implementierung einer neuen Methode zur Handhabung von Kollisionen zwischen Taxi und Autos, die das Verhalten bei Kollisionen mit stehenden Taxis optimiert.
- Erweiterung der Debugging-Ausgaben zur besseren Nachverfolgbarkeit von Fahrzeugbewegungen und Kollisionen.
Diese Anpassungen verbessern die Interaktion der Fahrzeuge und optimieren die Kollisionserkennung im Spiel.
Änderungen:
- Anpassung der Kollisionsbox für das Taxi, um realistischere Dimensionen zu berücksichtigen (95% Länge, 80% Breite).
- Verfeinerung der Kollisionsbox für Autos, um die schmale Breite besser zu berücksichtigen (90% Länge, 50% Breite).
- Deaktivierung der Debug-Anzeige für die Crash-Bereiche der Autos.
Diese Anpassungen verbessern die Kollisionserkennung und die Spielmechanik durch realistischere Hitboxen.
Änderungen:
- Erhöhung des Toleranzfensters für die Abbiegeerkennung, um die Fahrzeugbewegung zu verbessern.
- Implementierung einer neuen Logik für T-Kreuzungen, die das Abbiegen von Fahrzeugen steuert.
- Anpassung der erlaubten Spawn-Richtungen, um das Spawn-Verhalten zu optimieren und das Fahren nach unten zu verhindern.
- Strikter Zwang für Fahrzeuge, die von oben kommen, um nicht geradeaus weiterzufahren.
Diese Anpassungen verbessern die Interaktion der Fahrzeuge und optimieren die Spielmechanik durch präzisere Abbiege- und Spawn-Logik.
Änderungen:
- Entfernen von Konsolenausgaben zur Fahrzeug-Generierung, -Bewegung und -Kollision, um die Lesbarkeit des Codes zu verbessern.
- Anpassung der Spiel-Update-Logik zur Verwendung von requestAnimationFrame anstelle von setTimeout für eine flüssigere Animation.
- Vereinheitlichung der Timer-Logik zur Aktualisierung von Passagier-Timern und Minimap-Darstellung.
Diese Anpassungen verbessern die Performance und Benutzererfahrung des Spiels durch reduzierte Debugging-Ausgaben und optimierte Animationslogik.
Änderungen:
- Anpassung der Fahrzeug-Spawn-Wahrscheinlichkeit auf 100% für Debugging-Zwecke.
- Implementierung neuer Methoden zur Überprüfung, ob Fahrzeuge an Kreuzungen abbiegen sollten, und zur Ermittlung zufälliger Zielrichtungen basierend auf dem aktuellen Tile-Typ.
- Verbesserung der Fahrzeugbewegung und Kollisionserkennung durch präzisere Logik zur Überprüfung der Befahrbarkeit von Positionen.
- Erweiterung der Debugging-Ausgaben zur besseren Nachverfolgbarkeit von Fahrzeugbewegungen und -zuständen.
Diese Anpassungen optimieren die Fahrzeug-Interaktion und verbessern die Spielmechanik durch präzisere Logik und erweiterte Debugging-Funktionen.
Änderungen:
- Implementierung einer neuen Methode zur Ermittlung erlaubter Spawn-Richtungen basierend auf dem aktuellen Tile-Typ.
- Anpassung der Spawn-Positionen für Autos, um die Logik für die Straßenseiten zu optimieren.
- Einführung einer Methode zur Überprüfung der Befahrbarkeit von Positionen, die es Fahrzeugen erlaubt, an Rändern hineinzufahren.
- Erweiterung der Debugging-Ausgaben zur besseren Nachverfolgbarkeit von Spawn-Positionen und Kollisionen.
Diese Anpassungen verbessern die Spielmechanik durch optimierte Spawn-Logik und präzisere Kollisionserkennung.
Änderungen:
- Anpassung der Spawn-Positionen für Autos, um die Logik für die Straßenseiten zu optimieren.
- Verfeinerung der Abbiegeerkennung an Kreuzungen mit engeren Toleranzfenstern.
- Implementierung einer präziseren Kollisionserkennung mittels orientierter Bounding Boxes (OBB).
- Einführung von Debugging-Overlays zur Visualisierung von Kollisionen und Hitboxen.
Diese Anpassungen erhöhen die Genauigkeit der Kollisionserkennung und verbessern die Spielmechanik durch optimierte Spawn-Logik und Debugging-Funktionen.
Änderungen:
- Hinzufügen von Logik zur Verwaltung von Backend- und Daemon-Verbindungsversuchen mit Retry-Mechanismus.
- Implementierung einer Autos-Generierung mit zufälligen Spawn-Positionen und Bewegungslogik.
- Einführung einer Minimap zur Anzeige der aktuellen Spielumgebung.
- Optimierung der Kollisionserkennung zwischen Taxi und Autos.
- Verbesserung der Speicherbereinigung und Performance durch throttling von Timer-Updates.
Diese Anpassungen erweitern die Spielmechanik und Benutzererfahrung, indem sie die Interaktivität und die grafische Darstellung im Taxi-Spiel verbessern.
Änderungen:
- Umbenennung des API-Endpunkts für Highscores von `/api/taxi/highscore` zu `/api/taxi/highscores`.
- Anpassung der Highscore-Datenstruktur zur Verwendung von `hashedUserId` anstelle von `userId`.
- Erweiterung der Router-Logik zur besseren Organisation der Highscore-Abfragen.
- Implementierung einer neuen Highscore-Anzeige im Spiel, die die Top 20 Spieler und den aktuellen Spieler anzeigt.
Diese Anpassungen verbessern die API-Konsistenz und erweitern die Benutzeroberfläche für die Highscore-Anzeige im Spiel.
Änderungen:
- Implementierung des neuen Routers für TaxiHighscore zur Verwaltung von Highscore-Daten.
- Anpassung der Datenbankmodelle zur Unterstützung von TaxiHighscore-Associations.
- Erweiterung der Vue-Komponenten zur Anzeige und Speicherung von Highscores im Taxi-Spiel.
- Verbesserung der Statusanzeige im AppHeader zur besseren Benutzerinteraktion.
Diese Anpassungen erweitern die Spielmechanik und Benutzererfahrung, indem sie die Verwaltung von Highscores integrieren und die Benutzeroberfläche optimieren.
Änderungen:
- Implementierung der Logik für das Tanken, einschließlich Überprüfung der Bedingungen und Steuerung des Tankvorgangs.
- Einführung von Event-Listener für die Enter-Taste zur Schließung des Dialogs.
- Verbesserung der Crash-Logik bei leerem Tank und Anpassung der Kollisionserkennung.
Diese Anpassungen erhöhen die Spielmechanik und Benutzerinteraktion, indem sie das Tanken und die Dialogsteuerung optimieren.
Änderungen:
- Anpassung der Kollisionserkennung zur Verwendung eines lokalen Koordinatensystems für präzisere Berechnungen.
- Erweiterung der Debugging-Ausgaben, um absolute Koordinaten und relevante Informationen für Kollisionen anzuzeigen.
- Einführung einer neuen Methode zur Transformation von Punkten in das lokale Koordinatensystem des Rechtecks.
Diese Anpassungen erhöhen die Genauigkeit der Kollisionserkennung und verbessern die Nachverfolgbarkeit von Kollisionen im Spiel.
Änderungen:
- Entfernung der `tileSize` aus der JSON-Datei, um die Handhabung der Koordinaten zu vereinheitlichen.
- Anpassung der Methode `getDriveableRegions`, um relative Koordinaten (0-1) direkt zurückzugeben.
- Aktualisierung der Kollisionserkennung im Taxi-Spiel zur Verwendung von absoluten Pixel-Koordinaten anstelle von relativen.
- Verbesserung der Lesbarkeit und Wartbarkeit des Codes durch Bereinigung überflüssiger Konvertierungen.
Diese Anpassungen erhöhen die Effizienz der Kollisionserkennung und verbessern die Handhabung der Straßenkoordinaten im Spiel.
Änderungen:
- Anpassung der Kollisionserkennung, um eine einheitliche Logik für alle Tile-Typen zu implementieren.
- Reduzierung der Debugging-Ausgaben auf relevante Informationen, insbesondere für horizontale Fuel-Tiles.
- Verbesserung der Lesbarkeit und Wartbarkeit des Codes durch Bereinigung überflüssiger Konsolenausgaben.
Diese Anpassungen erhöhen die Effizienz der Kollisionserkennung und verbessern die Nachverfolgbarkeit von Kollisionen im Spiel.
Änderungen:
- Anpassung der Kollisionserkennung, um die Logik für befahrbare und nicht befahrbare Bereiche zu verbessern.
- Einführung von Debugging-Informationen zur besseren Nachverfolgbarkeit von Kollisionen, insbesondere bei Fuel-Tiles.
- Bereinigung der Codebasis durch Entfernen überflüssiger Konsolenausgaben und Verbesserung der Lesbarkeit.
Diese Anpassungen erhöhen die Effizienz und Benutzerfreundlichkeit des Spiels, indem sie die Kollisionserkennung präzisieren und die Debugging-Möglichkeiten erweitern.