Add Picture in Picture & AI Multivis support

tgstation/tgstation#28360
tgstation/tgstation#37695

This commit adds a system for picture-in-picture UI windows using
vis_contents, a new feature to BYOND 512. Essentially, it allows you to
make UI windows that show an area of turfs. It also refactors how
cameranet visibility works, and makes the Adv. Camera Console code a bit
cleaner and more inheritance-based, especially with it's action buttons.

Currently, this is hesitantly implemented on AIs. They gain two new
UI buttons - "Enter Multicam Mode", and "Create Multicam". When they go
into Multicam Mode, they see a background of animated binary numbers,
and they are allowed to create an infinite amount of these picture in
picture windows, which subsequently creates an aiEye for each one. They
are able to control each AI eye individually, by first clicking on the
PIP window to select it as "active" and then using the normal arrow key
controls. The PIP windows can be freely resized and moved around the
area.

The AI implementation may be considered controversial; Thus, it's locked
by default, requiring an administrator to var-edit "multicam_allowed" on
the AI before it is able to use the function. Otherwise, the buttons
just do nothing and alert the user to "Contact an administrator to use
these". There's not really any easy way to completely hide the UI
elements until they are available.

As this relies on 512 features, Travis has been bumped up to use 512.
This commit is contained in:
tigercat2000
2018-06-05 22:37:28 -07:00
parent 141d8487ca
commit a6ebad6b18
22 changed files with 650 additions and 124 deletions
@@ -64,7 +64,6 @@
actions += monkey_recycle_action
/obj/machinery/computer/camera_advanced/xenobio/attack_hand(mob/user)
if(!ishuman(user)) //AIs using it might be weird
return