+------------------------------+
|Beat Saber Camera Mover       |
|Created by: Reality Quintupled|
+------------------------------+

This plugin allows you to cycle through preset camera positions from inside Beat Saber.
These positions can also be configured to only work in the menu, during songs, or in both situations.
It is possible to automatically cycle through positions, or manually change them.
Any key can be assigned to a specific custom position with the key- group.
Default fallback configs for the menu and songs can be set.

CAMERA PLUS IS REQUIRED FOR THIS MOD TO WORK

+------------+
|Instructions|
+------------+
1) Generate a config file for each position you want to use ***BEFORE*** installing the plugin. (Simply move the camera in-game, then exit Beat Saber)
2) Drag in CameraMover.dll from this .zip into your Beat Saber Plugins folder.
3) Name your configs according to the naming convention in the next section.
4) Place these configs inside the CustomCameras folder.
5) Run the game. A cameramover.cfg file, and CustomCamera folder, will be generated in the Beat Saber folder.
6) Put in the settings that best suit your needs/hmd (further explanation in the settings section below).
7) Run the game and enjoy.

*READ*: People have kept asking about KeyCode.cs and where to put it. It doesn't need to go anywhere! It's just a reference file for every keycode in existence.

+-----------------+
|Naming Convention|
+-----------------+
Introduction:
 There are a lot of types of configs you can make.
 These bullets explain what each one does and how to make it.
How to:
 make the config menu only:
  - Start the config file name with "menu-". For example, "menu-position1.cfg".
 make the config song only:
  - Start the config file name with "song-". For example, "song-position1.cfg".
 make the config always included:
  - Start the config file name with "both-". For example, "both-position1.cfg".
 make the config active when a certain key is pressed:
  - Start the config file name with "key-###", replace the ### with any of the keycodes listed below. If the keycode is less than 3 digits, put in placeholder zeros. For example, "key-081.cfg" would be set active if you pressed the left bracket key.
 make the config automatically activated when you go to the menu:
  - Name the config file "defaultmenu.cfg".
 make the config automatically activated when you play a song:
  - Name the config file "defaultsong.cfg".

+--------+
|Settings|
+--------+
"auto-cycle": Can be "true" or "false". Should the camera automatically cycle between positions?
"cycle-speed": Can be any rational number (decimals alowed). The amount of time in seconds that the camera spends in each position.
"cycle-toggle-button": Can be any of the keycodes listed below. The button used to toggle auto-cycle on or off in-game.
"manual-cycle-button": Can be any of the keycodes listed below. The button used to manually move the camera to the next position.
"stop-auto-on-keybind": Can be "true" or "false". Should auto cycle be disabled when a keybound config is activated?
"verbose-console": Can be "true" or "false". If true, the console will blow-up with output from the plugin.

+--------+
|Keycodes|
+--------+
Controller Buttons:
	*Format for each code:
	*Keycode:Headset 1: Button
	*        Headset 2: Button
	*        ...
	330:Vive: Right Menu Button
  	    Oculus: A Button
	331:Oculus: B Button
	332:Vive: Left Menu Button
	    Oculus: X Button
	333:Oculus: Y Button
	336:WinMR: Left Menu Button
	337:Oculus: Start Button
	    WinMR: Right Menu Button
	338:Vive: Left  Trackpad Pressed
	    Oculus: Left Thumbstick Pressed
	    WinMR: Left Thumbstick Pressed
	339:Vive: Right Trackpad Pressed
	    Oculus: Right Thumbstick Pressed
	    WinMR: Right Thumbstick Pressed
	344:Vive: Left Trigger Pulled
	    Oculus: Left Trigger Pulled
	    WinMR: Left Trigger Pulled
	345:Vive: Right Trigger Pulled
	    Oculus: Right Trigger Pulled
	    WinMR: Right Trigger Pulled
	346:Vive: Left Trackpad Touched
	    Oculus: Left Thumbstick Touched
	    WinMR: Left Touchpad Pressed
	347:Vive: Right Trackpad Touched
	    Oculus: Right Thumbstick Touched
	    WinMR: Right Touchpad Pressed
	348:Oculus: Left Thumb Rest Touched
	    WinMR: Left Touchpad Touched
	349:Oculus: Right Thumb Rest Touched
	    WinMR: Right Touchpad Touched
Keyboard Buttons:
	[ = 91,
	] = 93,
	A = 97,
	B = 98,
	...
	Y = 121,
	Z = 122
Remaining codes in KeyCode.cs