* 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>
* Fix the sensor monitoring console forcing a GC every 3 seconds (#38146)
* Optimize sensor monitoring window graph drawing
* Add shared static Vector2 pool for all GraphView instances
* Address requested changes
* remove lock
* Update submodule to 264.0.0 (#38629)
* Toy/Plushie Inhands and Wearables (#38514)
* Fixed dependency injection and some other issues in a few places.
* More issue fixes
* patchfor broken NetworkConfiguratorLinkMenu (#38632)
fix
* Fix solutions flickering when transferring contents (#34838)
* Use Solution clones when applying SolutionComponent states
* Revert "Use Solution clones when applying SolutionComponent states"
This reverts commit 013fd111cf92b22562e00f98a7aaa49bc4b4ed62.
* Make Solution implement ICloneable and rename Clone method.
* Copy CanReact value when cloning a Solution
* Convert to IRobustCloneable
* Fix typos in guidebook: Buisness → Business (#38636)
* Fix typo in `MinorAntagonists.xml`
Buisness → Business
* Fix typo in `YourFirstCharacter.xml`
Buisness → Business
* Various Headphones Fixes and Tweaks (#38479)
* sprites, wearables
* neck
* icon-on sprite
* Cleanup prototype instantiation in `DamageTest` (#38639)
Cleanup prototype instantiation in DamageTest
* Cleanup prototype instantiation in `ExplosionSystem` (#38642)
Cleanup prototype instantiation in ExplosionSystem
* AddBodyPartCommand localization. (#38612)
commit
* fix ItemSlotsSystem debug assert (#38655)
* Allow the Command & Super door remotes to use the access of their user. (Re-creation of PR due to changes to game balance) (#35536)
* Added directional beacons (#38284)
* Added directional beacons
Signed-off-by: Nox38 <nebulousnox38@gmail.com>
* Fixed names
Signed-off-by: Nox38 <nebulousnox38@gmail.com>
---------
Signed-off-by: Nox38 <nebulousnox38@gmail.com>
* Power stat and nuke codes commands get some LEC love. (#38585)
* commit
* requested changes.
* Dsay Dirty and Follow commands converted to LEC and localized. (#38666)
* commit
* whoopwhoopwhoop
* Retro laser sprite fix (#38676)
* Fixed everything except the icon
Signed-off-by: Nox38 <nebulousnox38@gmail.com>
* fixed icon
Signed-off-by: Nox38 <nebulousnox38@gmail.com>
---------
Signed-off-by: Nox38 <nebulousnox38@gmail.com>
* fix water coolers (#38681)
* Monochromacy typo fix (#38686)
* fixes the typo
* Fixed cloning looking for the trait, not the component, RE https://github.com/space-wizards/space-station-14/pull/38686#issuecomment-3025093504
* Apply suggestions from code review
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Validate `CloningSettingsPrototype`s (#38688)
* Validate CloningSettingsPrototypes
* Update Content.IntegrationTests/Tests/Cloning/CloningSettingsPrototypeTest.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Check EventComponents too
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Add test of objective-related console commands (#36400)
* Add test of objective add/list/remove commands
* Not sure why we're validating test prototypes, but sure
* We don't need a map
* Improvements and fixups for New Status Effect API (#38660)
* Predict healing and bloodstream (#38690)
* initial commit
* reapply 38126
* fix rootable
* someone missed an important minus sign here
* try this
* fix
* fix
* reenable crit hits
* cleanup
* fix status time dirtying
* fix
* camelCase
* Healing and bloodstream prediction fixes.
* Resolving Wizard casting recall on nuke disk making it impossible to disarm (#38661)
* Resolving Wizard Recall on Nuke disk making it impossible to disarm
- Adding a DisarmBomb case to nuke status update loop
- Changing a few methods and parameters to properly follow formatting standards
- Updating some names to follow camelCase
* Updating missed tag
* Reverting DataField change
Should prevent this preventative bugfix being a breaking change.
* Switch HSV to the default colorspace for character customization (#38434)
* Made HSV default for character editor
* Adds/fixes comments to HSV defaulting
* Added dropbox fix, potentially cursed
* Revert "Added dropbox fix, potentially cursed"
This reverts commit a709883366fbee813e839742125e70844672af29.
---------
Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
* Fix: Don't deploy foldables when clicking on items inside containers (#38709)
* Fix
* Apply suggestions from code review
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Pressure Relief Valve (#36708)
* initial system (this math is probably WRONG)
* General code cleanup and OnExamined support
(holy moly this code sucks)
* UICode and related events foundation
TODO:
- Actually write the XAML UI and the underlying system
- Un-shitcode the entire thing
- Actually test everything...
* Working UI code
TODO: Make predicted, as this certainly isn't predicted. Even though I said it was. It isn't.
* Remove one TODO for unshitcoding the examine code
* Add reminder
yea
* Make predicted (defenitely isn't)
(also defenitely isn't a copypaste from pressure pump code)
* It's predicted!
TODO:
- Give it snazzy predicted visuals!
- Have a different field for pressure entry, lest it gets bulldozed every UI update.
* Improve gas pressure relief valve UI
TODO: Reminder to reduce amount of dirties using deltafields
* Implement DirtyField prediction
* Entity<T> cleanup
A lot of Entity<T> conversions and lukewarm cleanup.
Also got caught copy pasting code in 4K UHD but it's not like you couldn't tell.
* More cleanup and comments
* Remove TODO comment on bulldozing window title
* """refactoring"""
- Move appearance out of shared and finally fix it. Pointless to predict appearance in this instance.
- More Entity<T> conversions because I like them.
- Move UI creation handling over entirely to the ActivatableUI system.
- Fix a hardcoded locale string (why????).
* Add visuals
* Revert debugging variable replacememt
yea
* Revert skissue
* Remove unused using directives and remove TODO
* Localize, cleanup, document
* Fix adminlogging discrepancy
* Add ability to construct, add guidebook entry
* Clear up comment
* Add guidebook tooltip to valve
* Convert GasPressureReliefValveBoundUserInterface declaration into primary constructor
* Adds more input handling and adds autofill on open
* Un-deepfry input validator shitcode
Genuinely what was I smoking
* improve visuals logic
* Refactor again
- Update math to the correct implementation
- Moved code that could be re-used in the future into a helper method under AtmosphereSystem.Gases.cs
* I'm sorry but I hate warnings
* Remove unused using directive in AtmosphereSystem.Gases.cs
* Review and cleanup
* Lukewarm UI glossup
* Maintainer for the upstream project btw
* Remove redundant state sets and messy logic
* Unduplicate valve updater code
* Redo UI (im sorry Slarti)
* run tests
* Test refactored UI messaging
* Second round of UI improvements
- God please find a way to improve this system. Feels bad.
* Update loop implementation
* Further predict UI
* Clear up SetToCurrentThreshold
* cleanup
* Update to master + pipe layers and bug fixes
want to run tests
* fixes
* Deploy rename pipebomb
* Documentation and requested changes
* Rename the method that wiggled away
* Undo rounding changes
* Fix comment
* Rename and cleanup
* Apply suggestions from code review
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Fix TextLinkTag (#32203)
* Adjust uplink buy button to be under item icon (#38596)
* Adjusted uplink buy button to be under item icon
* Put the discount subtext under the icon
* Indent fixes, added margin
---------
Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
* Scurrets - Audio Improvements (#38482)
* Scurret audio tuning
* Add new sfx
* Update sneezing sfx
* YAML support
* Rename a folder
* make telesci wreck easier (#37569)
rel
* Validate `ShaderPrototype` IDs (#38728)
* Convert all shader prototype string literals to protoids in overlays
* Convert more shader prototype literal strings to protoids
* Convert ValidatePrototypeId to ProtoId
* Later
* [BUGFIX] Fixed revenant malfunction ability not working properly only MediBots and Stasis bed (#38664)
* fixed
* clean up
* orks fix smart
* review fix 1
* more requested changes
* less cursed
* more descriptive description
* better wording
* Tiny Tiny Cleanup of the EyeClosingSystem. (#38734)
Update EyeClosingSystem.cs
* Fix human skin tone distribution (#38701)
* fix: Use PredictedQueueDel for gib spell (#38729)
* fix: don't default to uncharged sprite state for cells (#38730)
* Fix Hristov description - remove inaccurate technical specs (#38746)
- Removes inaccurate 'armor piercing 14.5mm shells' reference
- Replaces it with a more funny description, matching the style of the other snipers and guns
- Keeps ammunition type '.60 anti-materiel ammo' specification
- Fixes issue #38590
Co-authored-by: Arthur Fiorese de Andrade <aandrade@cmcxs.gov.br>
* feat: allow mopping evaporating puddles (#38743)
* Validate remaining `ProtoId` strings (#38747)
Validate remaining ProtoId strings
* Validate `ProtoId`s in tests (#38745)
* Convert string literals to protoids in Content.Tests
* Convert string literals to protoids or consts in Content.IntegrationTests
* Fix linter failures
Tricksy static using misled me
* Cleanup warning in StomachSystem (#38748)
you did not see this
* Vox scars (#38592)
* Added vox scars n'stuff, renamed vox_tattoos.ftl to just vox.ftl
* Revert "Added vox scars n'stuff, renamed vox_tattoos.ftl to just vox.ftl"
This reverts commit c73da55ba3b39ddf93b493aecd85604c54dd8a15.
* locale key fix
* Changed top surgery scar names to be more generalized
* Adjusted face scars
* Formatting fixes
---------
Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
* UnlockNode command to LEC. (#38751)
* commit
* Update UnlockNodeCommand.cs
* commit
* move command locale to its own file.
* Update Content.Server/Xenoarchaeology/Artifact/UnlockNodeCommand.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Typofixes for figurine dialogue (#38737)
* Typofixes for figurine dialogue
* Forgot two
* Janitor Tool: Wire Brush (#38667)
* Wow! It's -brush-
* spacing.
* Update Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* fixed changes
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Minor escape menu UX improvements (#38650)
* fix: spellbooks can have infinite charges (#38376)
* fix: spellbooks can have infinite charges
* refactor: indicate infinite spellbook charges with null
Not sure if I like this much better...
* Power stuff
- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.
* big update
* boing
* Added Jukebox, along with music for jukebox
* Fixed Jukebox meta.json copyright
* Removed songs I couldn't find a license for.
* Renamed files to solve check failures from spaces
* Added missing attributions.yml
* Fixed lack of description in Jukebox
* Jukebox is now constructable.
* Change Jukebox menu to FancyWindow
* Moved Jukebox messages out of jukebox component
* Removed Jukebox OnValueChanged.
* JukeboxComp now uses AutoGenerateComponentState
* Removed state code, since it's auto generated
* Fixed various Jukebox code to match conventions.
* Updated Standard.yml to match changed song list.
* fixes
* Jukebox workin
* Fix
* Polishing
* Finalising
* Revert
* bad
* jukey
* Reviews
* name
* Update submodule to 218.2.0
---------
Co-authored-by: iNVERTED <alextjorgensen@gmail.com>
(cherry picked from commit 2db374988c91c6ce5f932b9cee1ba251cbfb22e5)
The exact time when the Nuke Music starts is now derived from the music's duration
(cherry picked from commit 680cf5fec13b92f09355acec9892f2db51f3e80e)
* fix: lobby music volume will be changed on options change without restart (also lobby music not looped anymore)
* refactor: now lobby music is part of ContentAudioSystem. Lobby playlist is used instead of single track. Client now selects next lobby soundtrack after previous finished.
* refactor: incapsulated info on current lobby track in simple record
* refactor: fixed inconsistent naming between song and soundtrack for lobbymusic
* refactor: xml-doc for LobbyPlaylistChangedEvent
* fix: inverted invalid _audio.PlayGlobal check to return only if lobby soundtrack play call failed
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
(cherry picked from commit 4c87dcd3cb92855df1fa01dea52d2ddd09f2adce)
* Ambient sound system
Client-side system that plays audio from nearby objects that are randomly sampled.
* Decent
* Tweaks
* Tweaks
* Comment this out for now
* reduce VM sound
* Fix rolloff
* Fixes
* Volume tweak