* 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>
* PaintableAirlockComponent and AirlockGroupPrototype have been replaced
* Slightly redesigned SprayPainterSystem for greater versatility
* Added handling of changes to the appearance of doors and storages
* PaintableGroup prototypes have been created
* Generating tabs with styles in the UI
* Fix error with undiscovered layer
* Slight improvement
* Removed unnecessary property
* The category for `PaintableGroup` was allocated to a separate prototype so that the engine itself would check if the category existed
* Added canisters, but repainting doesn't work
* Added localization to styles
* Fix sprite changing
* Added the ability to paint canisters
* slight ui improvement
* Fix yamllinter errors
* Fix test
* The UI now remembers which tab was open
* Fix build (?)
* Rename
* Charges have been added to the spray painter
* Added a charge texture for the spray painter
* Now spray painter can paint decals
* Increased number of charges
* Spawning dummy objects has been replaced by PrototypeManager
* added a signature about the painting of the object
* fix
* Code commenting
* Fix upstream
* Update Content.Shared/SprayPainter/Components/SprayPainterAmmo.cs
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
* review
* Now decals can only be painted if the corresponding tab in the menu is open.
* Fixed a bug with pipe and decal tabs not being remembered
* Update EntityStorageVisualizerSystem.cs
* record
* loc
* Cleanup
* Revert electrified visuals
* more cleanup, fix charges, del ammo4
* no empty file, remove meta component
* closet exceptions, storage visualizer fixes
* enable/disable decal through alt-verb
* Fix missed merge conflicts
* fix snap offset, button event handlers
* simpler order, fix snap loc string
* Remove PaintableViz.BaseRSI, no decal item, A-Z
* State-respecting UI, BUI updates, FTL fixes
* revert DecalPlacerWindow changes
* revert unwanted changes, cleanup function order
* Limit SprayPainterAmmo write access to AmmoSystem
* Remove PaintedSystem
* spray paint ammo lathe recipe, youtool listing
* category as a list, groups as subtabs
* Restore inhand copyright in meta.json
* empty spray painter, recipe produces an empty one
* allow alpha on spray painter decals
* add comments
* paintable wall lockers
* Restrict painting more objects
* Suggested event changes, event cleanup
* component comments, fix ammo inhands
* uncleanable decals, dirty styles on mapinit
* organize paintables, separate emergency/closet grp
* fix categories newline at EOF
* airlock group whitespace cleanup
* realphabetize
* Clean up EntityStorageViz merge conflict markers
* Apply requested changes
* Apply suggestions from sowelipililimute's review
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
* betrayal most foul
* Remove members from EntityPaintedEvent
* No emerg. group, steelsec to secure, locker/closet
* Enable repainting the medical wall locker
* comments, no flags on PaintableVisuals
* Remove locked variants from closets/wall closets
* removable decals
* off value consistency
* can't paint away those bones
* fix precedence
* Remove AirlockDepartment, AirlockGroup protos
Both unused.
* whitelist consistency re: ammo component
* add standing emergency closet styles
* alphabetize the spray painter listings
---------
Co-authored-by: Ertanic <black.ikra.14@gmail.com>
Co-authored-by: Эдуард <36124833+Ertanic@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
* LockVisualizer
* Fix state
* Clean some code
* Make it component, fix tests fail
* Fix for StateUnlocked
Now it is possible to manually set the unlocked state and it will work!
* Optimize LockVisualizer, add check for unlocked state
* No todo I guess