* attempt at moving MainViewport to UIWidget
* oldchat (prototype)
* separate oldchat and default ss14 HUD into their own files
* restores original default game screen logic and adds that logic into separated chat game screen
* hand reloading, several tweaks to port oldchat to main ss14 branch
oldchat is currently not selectable
* screen type cvar, gameplay state screen reloading/loading
* reload screen on ui layout cvar change
* fixes up basic reloading (HUD switching is still very bad)
* some UI widget reloading for main UI screen switching
* alert sync on screen change
* inventory reload
* hotbar margin fix
* chat bubbles above viewport
* whoops
* fixes ordering of speech bubble root
* should fix the chat focus issue (at least in-game, not lobby yet)
* should fix up the lobby/game chat focus
* fixes chat for lobby, turns lobby into a UI state
* viewport UI controller
* viewport ratio selection
* whoops
* adds the /tg/ widescreen ratio
* removes warning from inventory UI controller, adds background to separated chat game screen's chat portion
* menu button reload
* unload menu buttons only from gameplay state shutdown
* bugfix
* character button fix
* adds config options for viewport width/UI layout
* variable naming changes, get or null instead of get to avoid exceptions
* moves entity system get into controller
From what I could tell whenever LobbyState is entered it makes a new Lobby + CharacterSetup GUI via Startup. These events are never disposed of under Shutdown + the lobby should be null whenever we're not in LobbyState (as the control ends up disposed).
The lobby == null checks could probably also be null asserts as they shouldn't be null when those methods are being called.
* UI is an abbreviation, in XAML.
* Chat improvements.
Changing the "selected" channel on the chat box is now only done via the tab cycle or clicking the button.
Prefix chars like [ will temporarily replace the active chat channel. This is based 100% on message box contents so there's no input eating garbage or anything.
Pressing specific channel focusing keys inserts the correct prefix character, potentially replacing an existing one. Existing chat contents are left in place just fine and selected so you can easily delete them (but are not forced to).
Channel focusing keys now match the QWERTY key codes.
Deadchat works now.
Console can no longer be selected as a chat channel, but you can still use it with the / prefix.
Refactored the connection between chat manager and chat box so that it's event based, reducing tons of spaghetti everywhere.
Main chat box control uses XAML now.
General cleanup.
Added focus hotkeys for deadchat/console. Also added prefix for deadchat.
Local chat is mapped to deadchat when a ghost.
Probably more stuff I can't think of right now.
* Add preferred channel system to chat box to automatically select local.
I can't actually test this works because the non-lobby chat box code is complete disastrous spaghetti and i need to refactor it.
* Move chatbox resizing and all that to a subclass.
Refine preferred channel & deadchat mapping code further.
* Don't do prefixes for channels you don't have access to.
* Change format on channel select popup.
* Clean up code with console handling somewhat.
* GameTicker turned into an EntitySystem
* Turns ClientGameTicker into an EntitySystem, turn NetMessages into events
* Change event names to be more consistent with the rest.
* YAML linter uses the dummy gameticker CVar override.
* Fix game ticker initialization order
* Dummy ticker won't spawn players.
* Fix character creation test