* Scope creep my ass
* why was this shit not pushed????
* gone...
* fix that
* review plus buildd
* asfsafsafsafsafas
* grug
* burber
* I'll fix this later
* shrimply die
* also this
* it's snerf or snuthin
* assaads
* round snend
* aaaa
* fix this shit for real
* actually, don't start GameRules until MapInit now that I think aboot it.
* forgot u
* don't actually need this part nullable
* Deffer comp removal
* one liner
* do that too
* chungus
* Honestly makes more sense here, plus WHY are we doing all that shit on "GameRuleAdded" rather than GameRuleStarted(?)
* deferred removal :V
* aaaaaaaaaaaaaaa
* whhop
* Whoop
* better
* landmine that I placed for myself then forgot about lmao
* cleanup
* FUCKING `!`
* gotovo
* amogus
* please don't check by metadata I beg
* waawsasfdfsasfa
* sfafsasfafsas
* fdsaasffsasfa
* code
* fix
* fasasffasfasfsad
* chungaas
* I may be stupid
* gra
* graaaaaaaaaaaaaaaaa
* comment
* gra
* clearing is not predicted and would require major refactors, so don't cache on client.
* lame shit :P
* last holes
* nukeopsfsafsasafsfafsa
* why was that shit public bruh
* bubrbgwahrghfaka
* dynamic
* revert change that did nothing lmao
* preliminary porting
* weighting
* cleaning up after myself
* literally forgot to include this. oops
* apply more defaults and fix oversight that guaranteed humans would always be bald
* skincoloration
* did not actually mean to include vox in there oops!
* bugfix & performance
* macrocosm edits
* my yaml slop
* clean up some stuff i missed
* OOPS!
* ah fuck that should be further down shouldnt it
* yo mama
* req changes
* req changes 2
* yo mama
* my joker moment
* fixes
* move shit to engine
* wtf how did you get in there!!!
* array
* my dante's hell cosplay
* schmoovin
* adding portfiend cologne
* yep
* god dammit
* oops again
* uno mas
* req changes
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* fix clamping logic
* test fix
---------
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* cvar for job priority
* add captain to dev build serverconfig
* new characters created via the UI will now also read the cvar
* removed a testing change
* feat: separate sex from voice
* wip: tried to make it use voice collection directly
* fix: yaml
* fix: migrations
* fix: ensure valid now validates correctly
* fix: unisex mobs wouldn't have voice
* chore: fix RT version
* refactor: clean up code into subfunctions
* refactor: swap name and protoId in voice
also rename sounds to voice
* chore: add comment
* fix: fallback sounds for non-humanoid characters
* fix: tests
* fix: tests
* refactor: change requests
* refactor: convert sheepers
* refactor: move Voice to SpeciesPrototype
* chore: add tests
* fix: test IoC error
* refactor: use null coalesing in ConvertProfiles
* refactor: move vocal sex association to speciesPrototype
* style: remove space from new()
* refactor: use name from emoteSoundsPrototype for UI
* refactor: no more null Voice on profile
* refactor: make DefaultVoice a static readonly property
* fix: add default voice to HumanoidProfileComponent
* chore: remove repeated vocal component from species yaml
It's inherited from BaseSpeciesMob
* style: correct comments for refactor
* fix: add missing locale for FemaleVulpkanin
* refactor: simplify logic based off surounding code
* test: add test to make sure that sexes are properly enumerated for the voices
* fix: add back urist sounds
* style: clarify comments again
* style: last thing im changing before I sleep
* refactor: battling programming semantics
* refactor: Name on EmoteSoundsPrototype.cs to VoiceSelectorName for clarity
* revert: isDirty change
* Fix HumanoidProfileTest.EnsureValidLoading.
The profile's voice wasnt being updated, thus the voiceChanged event was never raised and that meant that the voice component had old EmoteSounds
* oops
* refactor: do the easy change requests
* refactor: use an array for indexing sex conversion for performance
* fix master
* mistakes were made
* chore: redo migrations
---------
Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
* initial visual nubody
* oops overlay
* im so pheeming rn
* conversion...
* tests
* comeback of the underwear
* oops eyes
* blabbl
* zeds
* yaml linted
* search and visible count constraints
* reordering
* preserve previously selected markings colors
* fix test
* some ui niceties
* ordering
* make DB changes backwards-compatible/downgrade-friendly
* fix things again
* fix migration
* vulpkanin markings limit increase
* wrapping
* code cleanup and more code cleanup and more code cleanup and more code cleanup and
* fix slop ports
* better sampling API
* make filter work + use the method i made for its intended purpose
* fix test fails real quick
* magic mirror cleanup, remove TODO
* don't 0-init the organ profile data
* remove deltastates
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Make ServerPackaging automatically get extra server assemblies
* Make the switch
* Use Content.Server.deps.json instead
* Remove debug
* Rewrite
Now recursively fetches dependencies from Content.Server
Only copies dependencies not covered by Robust
This removes the need to manually specify most of the dependencies, even the content ones!
Also look at runtime key properly to figure out the proper dll name.
This actually removes some assemblies that were duplicated between the main directory and assemblies (various Microsoft.Extensions stuff)
* Fix test compile errors when updating dependencies
Ran across this while updating dependencies on the RT .NET 10 update. Should be fine to merge immediately.
* More .NET 10 prep
* Convert to SLNX
Hell yeah
* slnx now has size-2 indents
* Update SLNX with new RT system
* Remove reference to RT test in toolshed test
* Remove accidental usage of transitive RT dependencies
* Move Robust project references to RobustApi
* Update solution file
* Fix warnings in pow3r
* Fix nullable warnings in integration tests
idk where these came from
* gitignore binlog files
* Fix transitive dependency warnings in Content.Benchmarks
* Update slnx
* 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.
* Update RT to 269.0.0
* One last solution update
* Fix more data definition issues
* Update RT to 269.0.1
* Fix it again
---------
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
* Implemented parenting and minimum default for loadouts
* Fix a mistake
* Apply suggestion from @iaada
Co-authored-by: āda <ss.adasts@gmail.com>
* Implement @iaada's suggestion to rename MinDefault to DefaultSelected
* happy little accidents
* Moved Parents and Abstract fields to under ID, added inheritdoc
---------
Co-authored-by: āda <ss.adasts@gmail.com>
fix so that all default Urist entities don't spawn with the same default human skin tone (cursed skin tone Urist McSlime)
(cherry picked from commit 8d9564c23856c342bc3a35834c462e659f5ebd5b)
Co-authored-by: Quantum-cross <7065792+Quantum-cross@users.noreply.github.com>
* 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>
* Persist construction menu favorites to player profile
* Use `ProtoId`s for construction favorites
* Validate construction favorites updates from the client
* Actually await the async database call