* Fix usages of TryIndex()
Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)
This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)
This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.
Fixes#39115
Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.
* fix tests
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Add localization to the air alarms, wire panels, network configurator list menu and loadout window
* delete unused
* redo gas localization, delete unused
* removed the extra key
* Moved and renamed air-alarm-ui-thresholds-gas-name
* Moved localization to the XAML
* Use existing strings for gas names
* it just works
* Rename _atmosphereSystem in ScrubberControl.xaml.cs
_atmosphereSystem -> atmosphereSystem
* Rename _atmosphereSystem in SensorInfo.xaml.cs
_atmosphereSystem -> atmosphereSystem
* Add loadout names
Did it for AI, breaking change for pgsql + migrations in general. Nothing atm uses it.
* the box
* Spawning cherry pick
* Fix nit
* revert
* Final cleanup
* Real
* Name UI fix
* Migrations
* a
* Review
* Re-run migrations
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Merge SetDirty() with preview reload
People were forgetting to SetDirty() when changing a property; move SetDirty()
into preview reloading, since if the preview is being reloaded, some property
has definitely changed anyway.
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Character menu asks if you want to save your character on exit
* Fix
* Another fix, little mistake by me
* Update Content.Client/Lobby/UI/CharacterSetupGuiSavePanel.xaml.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Ensure trait groups get validated
The only validation being done was on the UI. I also made the "Default" group match the PascalCase naming schema so might be a slight breaking change but the original PR only got merged a few days ago.
* overwatch
* Don't use invalid defaults for loadouts
At the time it made more sense but now with species specific stuff it's better to have nothing.
* Loadout SetDefault only applies valid loadouts
* Vox stuff
* Species loadouts and lobby refactor
The control flow for lobby is all over the shop so I pulled it all up from the individual controls so now they handle the bare minimum required and LobbyUIController handles the rest.
* a
* Bulk changes
* a
* weh
* Character import / export
* finalise
* woops this stuff too
* Also datafield exporting
* comments
* Review