* 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>
* alert cleanup and API
* I expect update loops to be at the top.
* Address review
* Address review x 2
* Merg my PR
* Fix
* Update Content.Shared/Alert/AlertsSystem.cs
webedit
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
* FIX THAT TEST FAIL!!!!
* Me when I forget to actually give you alerts
* Hammedborgar
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
* The only commit that matters
* I had to stop playing with my cat to push this change
* Yaml removal
* Proper drunk status effect and remove shitcode
* Review changes
* whoops
* Whoops x2
* Update master fix merge conflicts
* Fix merge conflicts
* Dunk Component kill
* MORE RELAYS
* Holy fucking breaking changes
* Ough
* 46 file diff
* Fix bad commits
* Erm what the test fail?
* Fix those last two
* Merge conflicts
* Me when I fix the merge conflicts
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@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...
* Use distinct action labels for toggling internals on and off.
* Implement specific actions for enabling/disabling internals
Avoids potential confusing race conditions where two people might perform the "Toggle Internals On" action an the same person,
which would have jsut toggled twice.
* If no gas tank, will give popup
---------
Co-authored-by: beck-thompson <beck314159@hotmail.com>
* Predicted gas pumps
I wanted to try out atmos and first thing I found.
* a
* Atmos device prediction
- Canisters
- Tanks
- Internals
AirMixes aren't predicted so nothing on that front but all the UIs should be a lot closer.
* Remove details range
* Gas tank prediction
* Even more sweeping changes
* Alerts
* rehg
* Popup fix
* Fix merge conflicts
* Fix
* Review
* Early merge of space-wizards/space-station-14/pull/36645
* Fixes for DeltaV
* minor formating fixes
---------
Co-authored-by: Sol <ewokgotswag222@gmail.com>
* automatically pick body part appearance from species
* automatically pick body part appearance from species when attaching
* make setting organs and children on parts yml work
* giant body part refactor
* refactor deltav species body parts
* ???
* ???
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* full fucking send
* ope forgot to remove the EE scripts
* fix test
* fix shitcode fail
* DELTA THAT VALUE IS NULLABLE
* whoopsie daysie
* fixed???
* chat is this real
* bugfixes
* more bugfixes
* goobmed
* Savepoint
* fixed yet more crap
* ymlops
* tests
* shitcode
* Update duffelbag.yml
* shoes fixed???
* bruhhhhhhhhhhhhh
* full fucking send
* ope forgot to remove the EE scripts
* fix test
* fix shitcode fail
* DELTA THAT VALUE IS NULLABLE
* whoopsie daysie
* fixed???
* chat is this real
* add breathing immunity and organ status effects
* they did surgery on a fish
* fix error for installing parts on non-humanoids
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* dont allow attaching invalid limbs
* add more surgeries for organs and limbs
* fix harpies being immune to surgery
* update organs and shit
* make a bunch of animals operatable
* malf ai
* fix slime
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Update vomit organ smite to not use Component.owner
* is this what you want...?
* am I winning, dad?
* update the comment
* we love entity<t>
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Fix test
* Kill float accumulators
* Use entity proxy methods
* DataField auto name generation where possible
* Kill comp properties
* Clean up server comps
* Make events record structs
* Clean up shared body code
* Clean up server body code
* Rename organ events to be same names as in med refactor
(cherry picked from commit 37b8d78dac047122fe77038bafb8e682132db3cd)
* Moving Gibbing rework out from medrefactor into it's own PR
* Re-enabled warning for missing gibbable on TryGibEntity
* Implemented better logic for gibbing failover and better logging
* Allowing audio params and drop scattering customization per component. Created UnGibbable organ base types and made brains ungibbable.
Removed delete brain from gibBody function. Artifact crusher does not destroy brains anymore. It only destroyed brains before not other organs which was wierd.
* Update Content.Shared/Body/Systems/SharedBodySystem.Body.cs
Fixing space for multiplication
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Added event raised when attempting to gib contained entities to allow modification of allowed and excluded container ids
* removing audioParams var from component (sound specifier includes it)
* Fixing signature
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
(cherry picked from commit 541d8f8715e4e74a77501863c2573aaa1eb33add)
* Fix gibbing & body system
Makes it so that bodies no longer have two sets of torso organs and that gibbed bodies get spread around on the floor again.
* Actually fix the double torso problem
* rootSlot in cameFrom
* Remove SetCoordinates inside GibBody()
* Don't use entity.RandomOffset() in GibBody()
* Gibbing now uses _random.NextVector2()