The primary function of this is a new button in the "Preferences" tab -
Set View Range. This functions similarly to the admin verb "Change View
Range", but it only allows you to set view ranges lower than the normal
world.view.
Full changelog:
- Added ViewMods system to clients.
- Everything that wants to change client.view should do it through
this system.
- Currently used by the Set View Range button and Marauders.
- Stretch mode is set to stretch when active, but the original
setting is preserved, as long as you set it with no ViewMods enabled.
- The basic way this works is that it keeps track of /datum/viewmods
on /clients, and whenever one is added or removed, it picks the
highest view range out of all of them and sets the client's vision to
that. This effectively means that, if you, say, set your view range
to 5x5, and get into a Marauder and use the "zoom" button, it will
always go to the marauder's zoom level.
- The HUD is set to minimal mode for any view ranges below
world.view, which means you only get absolutely critical buttons.
- It's set to invisible if you go down to view range 1 or 2,
because the buttons can't fit on the screen at those view
ranges.
- Removed canvas examine option. Just zoom in yourself!
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
This commit overhauls the examine system to baystation's latest system,
including a more efficient verb approach, and a new status panel tab,
which shows more information for pre-defined objects.