Applies when vsync is not enabled.
Had to shuffle stuff around to GameController since it involves the game loop.
The implementation isn't great and undershoots the target FPS value (because the OS overshoots the desired sleep value). I tried using SDL_DelayPrecise too but this causes significantly increased CPU usage probably because it spinwaits and all that nonsense, so I decided against it.
I don't know why I bothered to do this. I just got the idea in my head. Kinda feels like a waste of time, but there's no point not committing it at this point.
Fixes#5592
This allows net.tickrate to be set to a max of 65535 instead of 255.
I didn't raise it fully to a uint because there are many places it's cast to an int, so uint would cause various compiler errors and compat issues I don't wanna deal with.
* Move to Central Package Management.
Allows us to store NuGet package versions all in one place. Yay!
* Update NuGet packages and fix code for changes.
Notable:
Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.
* Remove dotnet-eng NuGet package source.
I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.
* Fix double loading of assemblies due to ALC shenanigans.
Due to how the "sideloading" code for the ModLoader was set up, it would first try to load Microsoft.Extensions.Primitives from next to the content dll. But we already have that library in Robust!
Chaos ensues.
We now try to forcibly prioritize loading from the default ALC first to avoid this.
* Remove Robust.Physics project.
Never used.
* Remove erroneous NVorbis reference.
Should be VorbisPizza and otherwise wasn't used.
* Sandbox fixes
* Remove unused unit test package references.
Castle.Core and NUnit.ConsoleRunner.
* Update NUnit to 4.0.1
This requires replacing all the old assertion methods because they removed them 🥲
* Mute CA1416 (platform check) errors
TerraFX started annotating APIs with this and I can't be arsed to entertain this analyzer so out it goes.
* Fine ya cranky, no more CPM for Robust.Client.Injectors
* Changelog
* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.
* Central package management for remaining 2 robust projects
* Ok that was a bad idea let's just use NUnit 3 on the analyzer test project
* Oh right forgot to remove this one
* Update to a newer version of RemoteExecutor
* Disable RemoteExecutor test
https://github.com/dotnet/arcade/issues/8483 Yeah this package is not well maintained and clearly we can't rely on it.
* Fix immutable list serialization
* Split entity lookups from entitymanager
* Helps if you subscribe dingus
* Handle map changes
* Stacks instead
* Make mapchanges use a queue because it's probably better
Moves likely only care about the latest position
* IoC what you did there
* IoC refactor
* Minor optimisations
* Apply feedback
* My IQ dropped 3 sizes that day
* Rest of acruid's feedback
* final_no_actual commit
* enlightenment?
* Liftoff
* final_commit_v2_actual
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Added a basic server simulation framework for help with tests.
* Moved as much as possible to Robust.Shared/Containers.
Moved ContainerSlot from content to engine.
* Moved ClientContainer to shared.
* Merged client/server ContainerManagerComponents into a single shared version.
* ContainerManagerComponent is now implicitly registered with the attributes.
* Migrated to 2021 serialization technology.
* Existing Unit Tests work.
* More tests coverage.
Fixed bug with transferring items between containers.
* Container Type info is now sent over the network.
* Merge client/server container systems.
* Code cleanup.
* Attempted to fix dictionary serialization.
Logs warning when trying to check if an unknown GridId is paused.
* Remove OldCode.
* Moved IPauseManager from server to shared.
* Moved ITimerManager from Timers to Timing.
* Added missing IConsoleHost to server/client RegisterIoC. Tests work again.
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
Lidgren NetTime.Now is now synchronized to IGameTiming.RealTime.
NetChannel is now a nested class of NetManager.
Add IGameTiming.ServerTime, INetChannel.RemoteTimeOffset, INetChannel.RemoteTime