Commit Graph
100 Commits
Author SHA1 Message Date
Pieter-Jan Briers 816a535a92 Fix obsoletion warnings for BinaryFormatter stuff
This became an outright warning in .NET 8. Into the trash, never used it.
2023-12-15 19:37:13 +01:00
Pieter-Jan Briers 01df42aa8f Fix ICommonSession.ConnectedClient obsoletion warnings 2023-12-15 19:34:30 +01:00
Pieter-Jan Briers a200d73ef9 Use FrozenDictionary in DependencyCollection.
Did not test the perf of this at all but it's the perfect use case so...
2023-12-15 19:28:56 +01:00
Pieter-Jan Briers 2686150f9d Version: 191.0.1 2023-12-15 19:08:35 +01:00
Pieter-Jan Briers d720e9393b Fix .NET 8 sandbox.
Oops.
2023-12-15 19:08:06 +01:00
Pieter-Jan Briers f5b1c26bec Update Lidgren to fix nullable compilation issue 2023-12-15 18:28:10 +01:00
Pieter-Jan Briers 3204002c72 Version: 191.0.0 2023-12-15 18:09:15 +01:00
Pieter-Jan Briers e0d38fb8bd Fix TryGetResource silently eating exceptions
why god
2023-12-15 16:13:17 +01:00
Pieter-Jan Briers dc96318379 Fix Lidgren compile on GitHub hopefully 2023-12-13 19:08:08 +01:00
Pieter-Jan Briers 31a3f145de Add [ViewVariables] to BaseButton.EnableAllKeybinds
Makes it show up in the devwindow UI inspector.
2023-12-13 00:28:33 +01:00
Pieter-Jan Briers 331e1fcc81 Update Lidgren to v0.2.7
This adds NRT annotations. Fix compatibility with those.
2023-12-13 00:06:00 +01:00
Pieter-Jan Briers 215fc8c229 Begone, toolshed logs
They're verbose now
2023-12-01 22:30:44 +01:00
Pieter-Jan Briers f82ff9e581 Improve error message for network failing to initialize.
The "make sure port XXXX is open" thing now only appears if the error was an actual "address in use" error.
2023-12-01 22:18:38 +01:00
Pieter-Jan Briers be54c41891 Fix localization file error formatting. 2023-09-09 20:10:55 +02:00
Pieter-Jan Briers 5eed3bc281 Make toolshed stuff oneOff IoC injections.
Removes a ton of IoC injector delegates.
2023-08-29 21:56:57 +02:00
Pieter-Jan Briers d78f378493 More event sources 2023-08-29 21:43:02 +02:00
Pieter-Jan Briers 409fe1a125 Some warning fixes 2023-08-27 15:35:15 +02:00
Pieter-Jan Briers ab5db4641c Update Lidgren to v0.2.6 2023-08-27 13:18:19 +02:00
Pieter-Jan Briers 5e1d80be35 Attempts to fix replay recording performance issues.
Replays now use a dedicated thread (rather than thread pool) for write operations.

Moved batch operations to this thread as well. They were previously happening during PVS. Looking at some trace files these compression ops can easily take 5+ ms in some cases, so moving them somewhere else is appreciated.

Added EventSource instrumentation for PVS and replay recording.
2023-08-27 02:15:15 +02:00
Pieter-Jan Briers 63423d96b4 Fixes for new color PR (#4278)
Undo change to violet color

add to named color list
2023-08-21 23:06:20 +02:00
Pieter-Jan Briers 3be8070274 Happy eyeballs delay can be configured. 2023-08-20 17:45:43 +02:00
Pieter-Jan Briers b04cf71bc0 Expose SpinBox.LineEditControl 2023-08-19 16:32:05 +02:00
Pieter-Jan Briers d6467f768a Fix Logger calls in ComponentRegistrySerializer 2023-08-11 23:50:54 +02:00
Pieter-Jan Briers 2446e64033 entitysystemupdateorder debug command 2023-08-08 21:36:14 +02:00
Pieter-Jan Briers 1c7ae13bfa Happy Eyeballs for HttpClient use.
All HttpClient usages in the engine now use Happy Eyeballs, same implementation as the launcher.

Makes a IHttpClientHolder type so content can profit from this technology too. Didn't make use of this in all HttpClient usages in the engine itself, due to varying circumstances making it annoying to refactor.
2023-07-31 22:51:25 +02:00
Pieter-Jan Briers 8cc2a17444 Version: 141.2.0 2023-07-28 22:16:59 +02:00
Pieter-Jan Briers 9c64fbfce2 Fix protocol abuse exception. 2023-07-27 19:30:39 +02:00
Pieter-Jan Briers e1597da4c7 Enable EXCEPTION_TOLERANCE on Tools.
This wasn't the case yet??? Whoops.
2023-07-24 20:52:39 +02:00
Pieter-Jan Briers 8375a4038b Throw error if creation of buffered audio source fails.
This can happen if we're out of audio streams. Before, we just kinda pretended like everything was OK, which easily caused crash bugs in e.g. MIDI.

Ideally the audio engine would be less terrible and this could be handled better than "throw new Exception()", but I'm fixing a stack overflow here alright?
2023-07-24 20:52:11 +02:00
Pieter-Jan Briers 8270442d66 Hard exit server on double ^C. 2023-07-23 17:44:20 +02:00
Pieter-Jan Briers 85e1920b95 Version: 140.0.0 2023-07-23 15:41:44 +02:00
Pieter-Jan Briers 21e74c9881 Fix ordering of control AnimationCompleted event.
This was changed recently, and it caused exceptions in SS14 (wire hacking animations).
2023-07-18 01:04:49 +02:00
Pieter-Jan Briers 681feaf0c7 Use relative time in PrecisionSleepWindowsHighResolution
Duh.
2023-07-15 23:38:12 +02:00
Pieter-Jan Briers d967bc9fdc Speed up DirLoader.DirLoader on Windows.
New FileHelper.TryOpenFileRead that doesn't throw if the file doesn't exist.

Also used it in a couple other spots.
2023-07-15 19:08:37 +02:00
Pieter-Jan Briers 177ca6b627 Sandboxing performance improvements.
Don't leave file handles dangling.
Prefetch verifying assembly images to speed stuff up.
2023-07-15 18:09:57 +02:00
Pieter-Jan Briers 3c262afaa4 Why would you put an attribute inside an ifdef like that, god. 2023-07-15 16:14:03 +02:00
Pieter-Jan Briers bce2901b0f Remove manual Windows P/Invokes in favor of TerraFX. 2023-07-15 15:41:34 +02:00
Pieter-Jan Briers c392d4f996 Precise, time period-independent timing for Windows game loop. 2023-07-15 15:22:52 +02:00
Pieter-Jan Briers d7ee2bccd7 Use TerraFX.Interop.Windows in Shared. 2023-07-15 15:20:32 +02:00
Pieter-Jan Briers 4e816fa5e7 Add ModUpdateLevel.InputPostEngine 2023-07-15 15:09:17 +02:00
Pieter-Jan Briers e7aa2cbc7d AssetPassPipe can detect and block duplicates. 2023-07-05 23:56:15 +02:00
Pieter-Jan Briers 5ddba87487 ACZ fix edge case with Accept-Encoding header parsing
This could throw if the requester sent specific headers.
2023-07-05 23:55:43 +02:00
Pieter-Jan Briers 70897b6ea9 Reduce default MTU even more.
Yeah I think this might still be causing issues.
2023-07-02 17:01:17 +02:00
Pieter-Jan Briers 1631d93e41 Remove AggressiveOptimization attributes.
This isn't a magic "make code go fast" button, none of these usages were correct.
2023-06-25 09:33:10 +02:00
Pieter-Jan Briers 35902ad839 Update Lidgren to fix Linux socket error reporting. 2023-06-18 18:19:08 +02:00
Pieter-Jan Briers fd5e5471be Oops, didn't do the IPAddress sandbox properly. 2023-06-11 16:21:24 +02:00
Pieter-Jan Briers b895da5fda Add launch.launcher and launch.content_bundle CVars 2023-06-11 16:12:08 +02:00
Pieter-Jan Briers 1da229549d Remove some Logger usages from client.
About all I could muster before I got bored.
2023-06-10 00:19:09 +02:00
Pieter-Jan Briers b1e594858a Add System.Net.IPAddress to sandbox.
For https://github.com/space-wizards/space-station-14/pull/14228
2023-06-09 23:37:42 +02:00
Pieter-Jan Briers 4a27df0166 Add clientAssemblies list to resource manifest.
Allows whitelisting only certain assemblies to be loaded. Intended to be used with the new content bundle stuff that's incoming launcher-side.
2023-06-03 13:48:34 +02:00
Pieter-Jan Briers 478fa8e6de Oops I accidentally committed the VFS command thing. Better commit the rest now. 2023-06-03 12:27:23 +02:00
Pieter-Jan Briers 23abb6177d Fixes for resource manager, roots and ResPath.
`ResPath.RelativeTo()` now considers non-rooted paths relative to `.`
This fixes some things like `MemoryContentRoot`'s `FindFiles()` implementation.

Fix `IContentRoot.GetEntries()` default implementation (used by all content roots except `DirLoader`) not working at all.

Made `ResourceManager.ContentGetDirectoryEntries()` report content root mount paths as directories.

Added tests for all of the above.
2023-06-03 12:23:28 +02:00
Pieter-Jan Briers 7b23729f94 Fix bare ">" command exception. 2023-06-02 22:59:28 +02:00
Pieter-Jan Briers 3164b58300 Fix keyboard events always propagating to default viewport if devwindow is open. 2023-05-30 21:29:43 +02:00
Pieter-Jan Briers 1ce5be2774 Remove finalizer from GameShared.
Incorrect copy pasting of disposable pattern, gone.
2023-05-01 18:00:01 +02:00
Pieter-Jan Briers 0a5375d1c7 Oh huh I don't need P/Invoke for everything huh?? 2023-04-26 22:58:49 +02:00
Pieter-Jan Briers c9042f188c Console output fixes.
Make it not assume UTF-8 when it's not.
Try to set the console output to UTF-8 on Windows.
Remove UTF-16 output code cuz who needs it.
2023-04-26 22:51:52 +02:00
Pieter-Jan Briers e357330409 Version: 0.96.8.2 2023-04-15 18:05:15 +02:00
Pieter-Jan Briers f3877f3d6a Sandboxing: load from launcher engine before loading from disk load paths.
Robust.Client.WebView includes Robust.Client.dll and such now, so sandboxing was loading the Robust.Client.dll from there instead of from the running engine itself.
2023-04-15 18:03:53 +02:00
Pieter-Jan Briers 9ad9fccb22 Version: 0.96.3.0 2023-04-05 20:09:44 +02:00
Pieter-Jan Briers f5cf39907a Update server SQLitePCLRaw to 2.1.4 2023-04-05 20:05:36 +02:00
Pieter-Jan Briers 477e7820cd hub_advertise_now command. 2023-03-13 23:03:49 +01:00
Pieter-Jan Briers 80b6f5e01f Add DoesNotReturn annotations to DebugTools.Assert* methods.
These allow Assert(Foo != null) to suppress nullability warnings. No way to configure it for AssertNotNull though.
2023-03-13 23:02:57 +01:00
Pieter-Jan Briers 3bce8d82e5 Update Lidgren to v0.2.4. 2023-03-07 22:47:50 +01:00
Pieter-Jan Briers 48874b2773 Version: 0.89.1.0 2023-02-24 20:51:29 +01:00
Pieter-Jan Briers d6cbdd221c WebView fixes and improvements.
Re-organize initialization so that User-Agent CVar actually works.

Add web.headless CVar to not load CEF even on graphical client.

Clean up init logic to not rely on static IoC, and clean up loggers used too.
2023-02-24 00:29:31 +01:00
Pieter-Jan Briers 59a8a98703 Basic fixes for WebView in 2023.
Launcher works again with this.
2023-02-24 00:05:31 +01:00
Pieter-Jan Briers 3fa7d25ecd Fix exception on server shutdown. 2023-02-18 21:53:34 +01:00
Pieter-Jan Briers 69ccacbd50 Console command to dump NetSerializer type map. 2023-02-18 21:51:45 +01:00
Pieter-Jan Briers ed6b73c413 Fix C# interactive outside content-start. 2023-02-18 15:49:55 +01:00
Pieter-Jan Briers 7bf493f127 Rename benchmark migrations to fix CS8981. 2023-02-18 15:44:32 +01:00
Pieter-Jan Briers 1a8c5ed6d4 Use the new epic UTF-8 literals in WAV parsing.
Please this file has been on the back of my mind since this feature came out.
2023-02-17 00:38:23 +01:00
Pieter-Jan Briers a2822f78ab Fix mapped string serializer max size check.
Check assumed string length == UTF-8 length... Sight...
2023-02-16 00:52:29 +01:00
Pieter-Jan Briers 82035524b9 Fix custom MIDI soundfonts on Windows.
Hasn't ever worked, as far as I can tell.
2023-02-16 00:16:49 +01:00
Pieter-Jan Briers 2a957f1423 Fix prototype hot reloading. 2023-01-14 21:08:27 +01:00
Pieter-Jan Briers c9ccd0b873 Fix file dialogs crashing on macOS 2022-03-20 16:47:20 +01:00
Pieter-Jan Briers 655ecbab45 Update Lidgren submodule 2021-10-14 19:18:35 +02:00
Pieter-Jan Briers 76933003ad Improve native downloading spaghetti, use own Freetype on macOS 2020-01-30 13:29:19 +01:00
Pieter-Jan BriersandGitHub 0a3b2e9bf7 Change config system so you can get notified on config changes. (#791)
Fixes #257
2019-04-13 19:57:14 +02:00
Pieter-Jan BriersandGitHub e9b45adf1c Remove chat from the engine. (#790)
* Remove chat from the engine.

* I could've sworn I ran tests
2019-04-13 09:41:28 +02:00
Pieter-Jan BriersandGitHub fa15950b91 Remove player movement code from the engine. (#780) 2019-04-04 16:18:06 +02:00
Pieter-Jan BriersandGitHub c8d939a732 Rework entity initialization. (#779)
* Rework entity initialization.

Map loading now correctly processes entity load stages:
1. First all entities are allocated. This allocates the entity and gives
   it a UID, nothing more. No user code is executed.
2. Then all entities are loaded. This runs ExposeData on components.
3. Then all entities are initialized. This runs Initialize.
4. Then all entities are started. This runs Startup.

Entity spawning methods on IEntityManager now actually set position
before Initialize.

Also cleaned up a lot of spaghetti.

* Add some comments.
2019-04-04 15:07:34 +02:00
Pieter-Jan BriersandGitHub d7d0363cc3 Refactor tile IDs. (#778)
* Refactor tile IDs.

Tile IDs are now automatically assigned at runtime.
A mapping is also stored in map files to avoid compatibility issues.
Also removed tile prototypes. Content is now responsible for it.
This is so content can define its own data for tiles.

* Update map format specification.

* Fix tile placement.
2019-04-03 21:19:55 +02:00
Pieter-Jan BriersandGitHub e5ee9c19ab Fixes server exceptions from #773 (#775) 2019-03-31 14:54:11 +02:00
Pieter-Jan BriersandGitHub 9e9508937a Fix lights going weird when resizing the window (#774) 2019-03-31 14:50:28 +02:00
Pieter-Jan BriersandGitHub 25a485aea7 NetManager connection handshake improvement. (#773)
* Reworked the net manager connection sequence.
* Correctly handle IPv4/IPv6 prioritization and fallback.
* Making a proper handshake for an auth system further down the line should be much easier now too.
* Added feedback to connection sequence in the main menu.
2019-03-31 00:51:10 +01:00
PJB3005 ae21b98d9a Implement clipboard on Windows 2019-03-23 20:08:44 +01:00
Pieter-Jan BriersandGitHub cf7c401ee0 Runtime Log & Exception Catching. (#759) 2019-03-22 12:50:17 +01:00
Pieter-Jan BriersandGitHub 361fdbe684 OpenGL 4.5 rendering backend (#728)
This is a really crappy OpenGL 4.5 rendering backend. Doesn't draw a lot of things but it's a hell of a lot better than Godot in the stability department. Mostly.

It's far from production ready but I already wrote all this. There's some minor API improvements in here too.
2019-01-25 14:57:11 +01:00
Pieter-Jan BriersandGitHub dbc88e253b Allow client to run headlessly. (#727)
AKA Without Godot.

Still links against GodotSharp, but this does mean that you can run headless or not from the same binary.
2019-01-19 18:23:41 +01:00
Pieter-Jan BriersandGitHub 58fb11a989 Refactor map netcode. (#726)
Maps are now synchronized as part of game states.
This instantly fixed all race conditions and the client can now live through a round restart with 0 problems (outside of Godot crashing yay).
2019-01-19 00:39:55 +01:00
Pieter-Jan BriersandGitHub 6d9a1a4e43 Refactor Transforms. (#725)
See commits.
2019-01-18 11:35:57 +01:00
Pieter-Jan BriersandGitHub aa36a9e378 Make the code work on Godot 3.1 Alpha 4. (#724) 2019-01-17 18:11:16 +01:00
Pieter-Jan BriersandGitHub d8ee7249e9 Fix Travis (#722)
Dear god.

Fuck Python.
2018-12-21 12:50:11 +01:00
Pieter-Jan BriersandGitHub 4f48774a26 Rust-based noise generation API. (#715)
Supports tileable 2D, 2D, 3D & 4D Ridged & FBM noise.

I still need to generate native versions for all the platforms, so we can't merge this yet.
2018-11-29 10:43:59 +01:00
Pieter-Jan BriersandGitHub 8397c955a8 Map Pausing. (#710)
You can now "pause" a map. Ideally this would result in the map not doing significant processing until unpaused.

This can be used later to code proper map editor modes that won't have any side effects while being edited.
2018-11-27 00:32:45 +01:00
Pieter-Jan BriersandGitHub 1e00b864b4 Automatically log in people connecting from localhost. (#711)
This can be disabled with a config value, which should be done for production servers, but for local testing this is very convenient.
2018-11-27 00:32:28 +01:00
Pieter-Jan BriersandGitHub 21fd3e5d96 Server status framework. (#709)
Adds a HTTP server to the server that exposes `/status` to fetch the server status.
2018-11-26 09:58:58 +01:00
Pieter-Jan BriersandGitHub e3449e454b Remove InLobby client side. (#708)
Same deal as #706, the concept of a lobby should be handled purely content side so it's no longer the engine's problem.
2018-11-22 23:06:50 +01:00
Pieter-Jan BriersandGitHub fcc405e6b6 Remove ServerRunLevel. (#706)
It's a content-ish feature that should be implemented in content only.
2018-11-21 21:20:51 +01:00