2685 Commits
Author SHA1 Message Date
83c2a1be11 [Dependency] source generator part 2 (#6550)
* [Dependency] source generator

No more reflection, no more codegen at runtime

Also various changes to Roslyn helpers to make this easier to write.

Requires all types with dependencies to be partial and not have readonly dependency fields. An analyzer enforces this at warning level, the previous injection strategies have remained in the code *for now* as a fallback.

No fallback is available for [field: Dependency] properties, due to a Roslyn bug.

Code Fixes exist. We love Roslyn

* Apply dependencies generator changes to all code

* Release notes

* Preprocessor got hands

* Handle nullable dependencies

These are bad but gotta deal with it.

* Apply suggestions from code review

Co-authored-by: Moony <moony@hellomouse.net>

* Fine, let's not use collection expressions

---------

Co-authored-by: Moony <moony@hellomouse.net>
2026-05-08 12:38:33 +02:00
B_KirillandGitHub bbf199757c Fix VRAM leak in MapChunk edge rendering (#6441)
* Fix VRAM leak in MapChunk edge rendering

* Remove CheckGlError because it is called in each of the deletion methods

* Revert "Remove CheckGlError because it is called in each of the deletion methods"

This reverts commit a48ffd71aa.
2026-05-08 11:57:50 +02:00
448d202a16 Add deterministic disposal for textures in IResourceCache (#6483)
* Add deterministic disposal for textures in IResourceCache

* Review

* Thanks PJB

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Review

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2026-05-08 11:43:32 +02:00
PJB3005 47a1e63999 Fix broken XML doc on IKeyBinding.GetKeyString() 2026-05-07 17:53:50 +02:00
TriviaSolariandGitHub eb0f03596c Allow hex colour input (#6485)
* Allow entering hex codes for colour selection

* Clarify comment

* Use method groups, fix alpha channel
2026-05-05 18:56:21 +02:00
MoonyandGitHub 90259ffda7 Fix a violation of measure invariants in ScrollContainer (#6494)
* Fix a violation of measure invariants in ScrollContainer

* Poke

* Fix ReturnMeasure-using UIs.
2026-05-05 12:49:39 +02:00
f95a16cf2e Always clean up render handle state after overlay draws (#6508)
* Always clean up render handle state after overlay draws

* i just forgot to commit that part i guess

---------

Co-authored-by: mirrorcult <mirrorcult@pm.me>
2026-05-05 12:44:42 +02:00
53e1ec24d5 HRTF support through openal-soft (#6511)
* HRTF support through openal-soft

* a

* more correct

---------

Co-authored-by: mirrorcult <mirrorcult@pm.me>
2026-05-05 12:41:35 +02:00
mastermiller01andGitHub a0809b6112 fix ScrollContainer nullable bool logic (#6484) 2026-03-26 14:31:49 -04:00
TayrtahnandGitHub d2792926e5 Remove [Virtual] attributes from abstract/sealed classes (#6482)
Removed [Virtual] attributes that shouldn't be there
2026-03-24 23:41:58 -04:00
JohnJohnandGitHub 74c993cb1d Fix scroll containers not working properly (#6471) 2026-03-23 20:19:04 +01:00
mastermiller01andGitHub 8404008c60 improve ClientGameStateManager error logs (#6452)
* improve ClientGameStateManager error logs

* make it even better
2026-03-15 16:42:12 -04:00
AmyandGitHub 63f1d3b4a5 Report error string on create cursor failure (#6455)
report error string on create cursor failure
2026-03-14 22:28:29 -04:00
886df674fe allow hiding scroll bars in the scrollbox (#6451)
* add hiding scroll bar

* 14 billion dollars on this never being used once

* comments

* yes because what could VScrollBarHidden possibly MEAN?????????????

* Apply suggestions from code review

Co-authored-by: Moony <moony@hellomouse.net>

---------

Co-authored-by: Moony <moony@hellomouse.net>
2026-03-13 18:01:23 +01:00
MoonyandGitHub 745e3906f3 Prevent UI update limits from causing test flaking. (#6443) 2026-03-12 14:02:39 +01:00
eoineoineoinandGitHub 5393cfab85 Avoid crashing client when reloading a shader with syntax errors (#6425) 2026-02-27 08:20:19 -05:00
TayrtahnandGitHub 9c4dd7a5e7 Add entity ProtoId to spawn panel tooltip (#6424)
* Add entity ProtoId to spawn panel tooltip

* Add backup message for entities with no description

* Release notes
2026-02-22 15:23:48 -05:00
PJB3005 5d6dbc18e3 Remove swnfd from ClientDllMap 2026-01-31 22:21:36 +01:00
PJB3005 e7f75ab35d Fix size of OSWindows on macOS (& probably Wayland)
The way SDL handles window coordinates passes through the native platform API's behavior instead of trying to make a consistent API, so the way sizes are handled on macOS is different.
2026-01-31 08:13:19 +01:00
B_KirillandGitHub 446cf8c003 Cleanup warnings: CS0414 (#6396) 2026-01-24 23:41:10 -05:00
PJB3005 2afef1480e Add debug code to slow down transfer connections 2026-01-20 19:01:56 +01:00
PJB3005 ce96331ec4 Add completions to launchauth command 2026-01-20 01:14:56 +01:00
AtamanandGitHub 14b17aff6d Add events on animation starts (#6382)
* added AnimationStartedEvent

* added AnimationStarted event to Control

* reordered Control.AnimationStarted above Control.AnimationCompleted

* fixed comment

* switched to internal constructor and proxy method
2026-01-19 23:29:22 +01:00
17662baaf7 Fixed looped audio playback position calculation (#6325)
* fix: looped audio position calculation

* refactor: tiny clean up

* move comment

* fix: review changes

* remove `

* rerun tests

* Remove unecessary formatting changes

---------

Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
2026-01-19 21:05:44 +01:00
Pieter-Jan BriersandGitHub dc1464b462 High-bandwidth transfer system (#6373)
* WebSocket-based data transfer system

* Move resource downloads/uploads to the new transfer system

Should drastically increase the permitted practical size

* Transfer impl for Lidgren

* Async impl for receive stream

* Use unbounded channel for Lidgren

* Add metrics

* More comments

* Add serverside stream limit to avoid being a DoS vector

* Fix tests

* Oops forgot to actually implement sequence channels in NetMessage

* Doc comment for NetMessage.SequenceChannel

* Release notes
2026-01-19 20:44:44 +01:00
DrSmugleafandGitHub cb384b8242 Make VV work with structs in components (#6377)
* Make VV work with structs in components

* Fix missing imports
2026-01-19 20:41:24 +01:00
PJB3005 02b64b7386 Show task bar progress bar for loading progress
Using the new API in SDL 3.4.0
2026-01-18 23:30:15 +01:00
PJB3005 36e5f10511 Update SDL3 to 3.4.0 2026-01-18 23:30:15 +01:00
Richard Van TasselandGitHub 93d14d55c7 Let viewport clear when eye is missing (#6379)
* Adds option to viewport to allow render target clearing if eye is missing

* on->when and add to IClydeViewport

* add to ClydeHeadless
2026-01-18 21:17:31 +01:00
pathetic meowmeowandGitHub c20343601d Make tabs wrap to available size (#6387) 2026-01-18 21:16:44 +01:00
DinnerandGitHub aa5cca4c7f Fix Layer constructor in SpriteComponent not properly copying unshaded sprite layers (#6368)
* remove Layer() null check for Unshaded and ShaderPrototype variables

* remove comments
2026-01-11 04:03:05 +01:00
eoineoineoinandGitHub 5b06066fcb Make some Control properties animatable (#6376) 2026-01-10 23:35:08 +01:00
TGRCDevandGitHub 7b245260e3 SpriteView updates its size whenever the entity is set (#6362)
* SpriteView updates its size whenever the entity is set

* SpriteView recalculates its measure when the entity changes
2026-01-02 16:41:20 +01:00
PJB3005 af7f4ec8e7 Make RichTextLabel.Text allow all tags again
Fixes #6360

I debated doing this with a special case in Robust.Xaml instead, but decided against it. This is mostly used for static contents anyways.
2025-12-31 23:15:06 +01:00
PJB3005 d43c3f2caf Merge remote-tracking branch 'origin/master' into 25-11-01-cef-update 2025-12-27 01:50:23 +01:00
d78e3ce157 Extend AddMessage capabilites in RobustToolbox. (#6350)
push or w/e

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-24 15:42:40 +01:00
PJB3005 ad056e0b45 Add [NotContentImplementable] to client interfaces 2025-12-23 18:34:27 +01:00
PJB3005 6f2c45aab7 Remove unused IRand interface 2025-12-23 18:33:44 +01:00
PJB3005 9a3aad4630 Delete unused IRenderableComponent 2025-12-23 18:25:36 +01:00
B_KirillandGitHub 68609a94d8 Fix inverted clipboard error check in SDL3 (#6348) 2025-12-22 17:35:09 +01:00
PJB3005 9b02a4e718 Add game.time_scale cvar
Primary use case (other than silly) is to be a better way to speed up/slow down replays.
2025-12-20 16:32:06 +01:00
FruitsaladandGitHub 43337a3743 Fix layouting bug in SS14 ghost role menu (space-wizards/space-station-14#41434) (#6323) 2025-12-19 23:49:52 +01:00
PJB3005 0498036f1c Remove kdialog/nfd file dialog implementation
Purely rely on the SDL3 one now.
2025-12-17 20:03:15 +01:00
dd86bf980d Add MeansDataDefinition support to DataDefinitionAnalyzer (#5699)
* Add MeansDataDefinition support to DataDefinitionAnalyzer

* Poke tests

* Fix violations in engine

* Fix more lacking partials

* Fix tests

---------

Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
2025-12-17 19:47:30 +01:00
PJB3005 7f2ec17651 Okay, the Robust API thing didn't pan out. New plan.
It apparently broke clean builds, as the dependencies aren't in the project asset list or something anymore. I tried to fix this, but it seems impossible to do without relying on .NET SDK internals, as there's no point in the NuGet graph walk process that seems cleanly extensible.

Instead let's just do the much dumber thing: a bunch of .props files for content to import. Hooray!

This also means that I have to go through and *explicitly* disable transitive dependencies everywhere in RT. This thankfully isn't too hard.
2025-12-16 22:56:31 +01:00
PJB3005 788e9386fd Split up test project
Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests.

Tests are now split into separate projects as appropriate, and the API side has also been split off.
2025-12-16 01:36:53 +01:00
PJB3005 095c5f58d9 Obliterate GLFW with an orbital strike 2025-12-15 22:45:39 +01:00
PJB3005 95d5f7eec1 Add flag to block command bindings while UI focused
This means you can bind stuff to your numpad without it firing while you're *actually* typing stuff.
2025-12-14 21:48:20 +01:00
ad31ec64d3 Add some default Sanitization to RichTextEntry (#6333)
* PR time

* am dum dont make PRs at 3am

* file scoped. I pushed this to the wrong branch initially because I'm stupid

* Revert "file scoped. I pushed this to the wrong branch initially because I'm stupid"

This reverts commit 9a911caa77.

* Review

* Update API used by content to actually use the default values

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-10 19:09:51 +01:00
PJB3005 1a0dab4526 OkLAB test in uitest
I can just add whatever random shit I want in there, nobody will stop me
2025-12-05 17:34:20 +01:00