* Created Debug Version Panel and Version Info Printer similar to DebugSystemPanel
* dependency injection
* remove VersionInformationPrinter
* Fix sorting
* Find PlacementModes by attribute
* Let modes specify priority
* Make some PlacementManager dependencies public so Content can use them
* Space out the priorities a bit more
* xmldoc for attribute
* Revert "xmldoc for attribute"
This reverts commit f1f0299c55.
* Revert "Space out the priorities a bit more"
This reverts commit 549eac1eb2.
* Revert "Make some PlacementManager dependencies public so Content can use them"
This reverts commit c060f6cb2d.
* Revert "Let modes specify priority"
This reverts commit f113b40c7f.
* Revert "Find PlacementModes by attribute"
This reverts commit 27efb6c5cf.
* Completely redo to use PlacementManager's mode dictionary
* Backwards compat
* Cache the value of AllModeNames
* Fix incorrect saved window positions
As of however many UI PRs ago windows store their last position on the client and it re-opens windows at that position.
The issue is that the code to avoid windows being able to go off-screen was immediately bulldozing this value, at least if the x <= 0. Now we just don't run it until we have a valid measure (probably the frame after) and avoid unnecessarily having an incorrect position applied.
* Explainer
* Initial commit
* Add tile rotation/mirror perms
* Nicer UI for the rotation
* Review fixes (also seemed to have missed applying the serialization reading oops)
* One less byte, one less struct size!
* Pretty sure it goes here too
* Fix error
* Add button to jump to live chat when scrolled up
* Expose scroll button class name as a public constant
* Add localisation string to engine
* Make enabling the OutputPanel scroll button opt-in
* Enable scroll button for the debug console
* De-duplicate visibility logic
* Update scroll button visibility when the enabling property is changed
* Add Erase button for TileSpawnWindow
Small QoL for mappers. Basically, it just selects space tile on "Erase" button toggled.
* Remove copy paste. Conevrt this into method
* Add MapSystem.GetMapOrInvalid
This is effectively the same exact behavior as IMapManager.GetMapEntityId. Adding this so I don't have to consider whether warning fixes using MapSystem.GetMap() instead would change behavior.
* Warning fixes around IMapManager.GetMapEntityId
* Fix tests
* Add VisibilityChanged virtual to Control
* Defer updating invisible OutputPanels on UIScale change
DebugConsole falls under this when not hidden, and it significantly improves perf of e.g. resizing the window when there's a lot of stuff in there.
* Avoid redundant UI Scale updates on window resize.
Window resizing can change the UI scale, due to the auto-scaling system. This system had multiple perf issues:
UI scale was set and propagated even if it didn't change (system disabled, not effective, etc). This was just wasted processing.
UI scale was updated for every window resize event. When the game is lagging (due to the aforementioned UI scale updates being expensive...) this means multiple window resize events in a single frame ALL cause a UI scale update, which is useless.
UI scale updates from resizing now avoid doing *nothing* and are deferred until later in the frame for natural batching.
* Reduce allocations/memory usage of various rich-text related things
Just allocate a buncha dictionaries what could possibly go wrong.
I kept to non-breaking-changes which means this couldn't as effective as it should be.
There's some truly repulsive stuff here. Ugh.
* Cap debug console content size.
It's a CVar.
OutputPanel has been switched to use a new RingBufferList datastructure to make removal of the oldest entry efficient.
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
It would bail out of the entire update logic if you aren't hovering over a map position, which isn't great when the control displays far more than in-simulation mouse position info.
IPostInjectInit does not run through IoCManager.InjectDependencies(). This meant the logger was not initialized, and loading failures in the console history would crash the client startup due to an NRE while trying to log a warning.
See https://github.com/space-wizards/space-station-14/issues/23624
* Saving work
* Move shit to engine
* lord
* merg
* awa
* bql is kill
* forgot the fucking bike rack
* bql is kill for real
* pjb will kill me
* aughfhbdj
* yo ho here we go on my way to the MINES
* a
* adgddf
* gdsgvfvxshngfgh
* b
* hfsjhghj
* hbfdjjh
* tf you mean i have to document it
* follow C# standards
* Assorted cleanup and documentation pass, minor bugfix in ValueRefParser.
* Start porting old commands, remove that pesky prefix in favor of integrating with the shell.
* Fix valueref up a bit, improve autocomplete for it.
* e
* Toolshed type system adventure.
* a log
* a
* a e i o u
* awa
* fix tests
* Arithmetic commands.
* a
* parse improvements
---------
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>