* refactor: change cache-dependent commands to use _IPrototypeManager.Categories
* refactor: updated to use completion helper from RT
---------
Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
* feat: xeno artifact debug commands
* refactor: minor renaming + whitespaces
* refactor: do not allocate unless needed
* refactor: rename common xeno-artifact commands localization string
* refactor: extract reusable parts of code, change command to work with EntityUid and not with NetEntity
* refactor: renaming
* refactor: make all commands toolshed
* refactor: localization fix, command naming reverted to camelCase, xml-doc for new commands
* refactor: make toolshed tuple actually work
* refactor: remove unused code
* refactor: cache for EffectPrototypes
* refactor: fix unlcokNode command, remove engine copy-paste for TryParseEntity
* refactor: fix localization for toolshed
* refactor: remove unused dependency
* refactor: caching systems for XenoArtifactCommand where possible, comments clarification, whitespacing
* refactor: added readonly to SharedXenoArtifactSystem.EffectPrototypeIds
* refactor: use component to detect which proto is xenoarch effect
* refactor: fix missing partial for XenoArtifactCommand
* refactor: fix readonly on dependencies for XenoArtifactCommand
* refactor: fix missing partial for nested XenoArtifact related parsers
* refactor: cleanup after merge
* refactor: remove obsolete IPrototype.HasComponent call and unused using
* refactor: change xenoarch commands to lowercase (as convention dictates)
* refactor: XenoArtifactNodeParser and XenoArtifactTypeParser are now CustomCompletionParser (removed duplicate code)
* refactor: XenoArtifactNodeParser is now CustomCompletionParser, moved custom parsers to shared/toolshed/parsers
* refactor: todo for ent proto caching, moved XenoArtifactCommand to toolshed namespace
* refactor: fix xenoartifact:totalresearch command
* refactor: remove system caching, clean whitespaces
* fix: fix localization for xenoarch commands
* refactor: moved StatusEffectCompletionParser to shared, added same todo remark for cache of status effect entity prototypes.
* refactor: use proxy methods in command and _entityManager.System in all parsers
* refactor: mved commands and parsers into respective folders
* refactor: access restriction for cached EntityPrototypeIds
* refactor: todo link to issue, fixed DI in StatusEffectCompletionParser
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* Remove all IPrototypeManager instances
* Remove redundant IComponentFactory instances too
* Found some stragglers
* DestructibleSystem.PrototypeManager: no dependency
* not based
* part 1
* second pass
* final fix
* last fix i swear
* an even bigger genius
* regex missed this
* should be all of em?
* oops
* yeah
* Revert "should be all of em?"
This reverts commit 4dd54d1b9a76977b4cf8d6008358e4dacdee6eb1.
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Drunk moment
* push
* fix test fails + a smidge of cleanup
* two smidges of cleanup
* Unpredicted so don't need the workaround
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Initial commit
* Minor fix
* Why is this uncommented here? Hmmm
* No wait this can't be here, oops
* Do better time
* Also guidebook
* Review changes
* Add rejuvination, fix mispredicts
* 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>
* feat: add a component for rejuvenateable effects
* feat: let god mode'd entities get buffs
* fix: handle old status effect system
Didn't realize BeforeStatusEffectAddedEvent was called by both systems,
oops.
* refactor: rename to RejuvenateRemovedStatusEffect
* fix: make forced sleeping a debuff again
Missed in rebase.
* refactor: make BeforeStatusEffectAdded two events