Skip to content

Conversation

@AMacro
Copy link

@AMacro AMacro commented Jul 14, 2024

@Insprill

This is a consolidation PR that covers multiple issues.

Work is ongoing for #6 and #11.

Jarnster pushed a commit to Jarnster/dv-multiplayer that referenced this pull request Nov 27, 2024
Fix project board link in the README
@AMacro AMacro force-pushed the beta branch 3 times, most recently from 1e8fee4 to 48e900a Compare March 2, 2025 10:27
Changed PaintTheme registration and lookup to use PaintTheme objects instead of asset name strings throughout the API, lookup, and serialisation logic. Improved hash collision handling, modded theme discovery, and netId mapping. Updated related interfaces and serialisation/deserialisation code to use the new approach for consistency and reliability.
Enhanced TryGetNetId to detect and log hash collisions when registering cargo types. Improved logging messages for missing cargo types and successful registrations. Minor formatting adjustments for consistency.
Corrects the conditional to only capture item anchor offset when VR is not enabled, addressing inconsistencies related to camera direction and player loading status.
Introduces server-side validation for paint theme changes based on player proximity in NetworkedTrainCar. Refactors paint theme change packet sending for both client and server, and ensures paint theme updates are only processed if the player is close enough to the train car. Also updates related methods to use the new validation and syncing logic.
Changed CommonPitStopInteractionPacket.InteractionType from byte to PitStopStationInteractionType enum for improved type safety. Updated related method signatures and usages in NetworkedPitStopStation, NetworkClient, and NetworkServer. Also replaced car length calculations with cached CarLengthSq property for efficiency.
Registered 'dv-improved-job-overview' for client compatibility in ModCompatibilityManager. Commented out cargo type registration log in CargoTypeLookup to reduce log verbosity.
Registered the 'dv_f_spammer' mod for client-side compatibility in ModCompatibilityManager
Bumped API version to 1.0.0.0 and mod version to 0.1.13.0. Updated project files to reflect new versions, changed license to Apache-2.0 for the API, added VRTK reference, included README.md in MultiplayerAPI package, and updated release and info metadata.
Added rules to normalize line endings across the repository, enforcing CRLF for C#, .csproj, and .sln files, and setting text=auto for all files. This helps maintain consistent line endings in a Windows development environment.
Introduces NetworkedGenericSwitch to synchronise GenericSwitch states across players.

Also adds player reach validation for interactions with controls.
Force awake logic only triggered for derailments or when the TrainCar is moving > `NetworkTrainsetWatcher.VELOCITY_THRESHOLD`

Position updates for TrainCars are now only applied if the difference between current position and new position exceeds `POSITION_UPDATE_THRESHOLD`, reducing jitter when stationary.
Patch out of 'Point Set Traveller not moving even though velocity is:' logging
Refactor adding cash to cash registers
Removed unused grabbedHandlerLookup and updated lever handling logic in NetworkedPitStopStation. Improved logging and initialization flow for pit stop stations and cash registers. Added Tick property to CommonPitStopInteractionPacket and ensured it is set when sending interaction packets. Minor code style and logging improvements in NetworkClient and NetworkServer.
ModInfo now includes a trusted URL field and serialises mod lists as JSON for improved compatibility checks. The server browser details pane displays mod status with hyperlinks, and version checks now use a unified build version string.
Replaced usage of Multiplayer.LocalBuildInfo with MainMenuControllerPatch.MenuProvider.BuildVersionString for build version validation during login.
…string

Changed the representation of required mods so it is correctly serialised to JSON, rather than serialising to a string containing JSON.
Previously, incompatible mods were ignored by returning null. Now, they are added to the localMods list.
Updated the project file to publicise DV.UIFramework.CollapsibleElement.

Changed the Awake method from protected to public override in ServerBrowserElement and ServerBrowserPlaceholderElement due to new publicised protection levels.
Server browser now displays required and extra mods with compatibility status, including localised labels for OK, mismatch, missing, incompatible, and extra mods. UI elements for mod lists are collapsible and support hyperlinks. Locale keys and translations for new mod status labels were added. Refactored MainMenuControllerPatch to expose MainMenuControllerInstance for easier access.
Replaces modsContainer with detailsContent for mod elements, updates how mod groups are set up, and improves formatting for server details and mod labels.
Replaced hardcoded disconnect reason strings with localized values in ServerBrowserPane. Added separate localized 'yes' and 'no' responses for password required in server details. Updated Locale.cs and locale.csv to support new keys for these values.
Eliminates redundant display of the host details label in the server browser pane by appending only the server details string. This improves clarity and prevents repeated information in the server details section.
Updated references from 'gameParams' to 'GameParams' to match the correct property.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants