Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using UnityEngine;
- using KSP;
- namespace Mastcam
- {
- public class mastcam : PartModule
- {
- private GameObject mountB;
- private GameObject mastCamera;
- private GameObject cam;
- private float[] rotation = new float[2];
- private FlightCamera flightCam;
- private bool camActive;
- [KSPField(isPersistant = false)]
- public float horizontalSensitivity;
- [KSPField(isPersistant = false)]
- public float verticalSensitivity;
- public void Start()
- {
- mountB = GameObject.Find("mountB");
- mastCamera = GameObject.Find("mastCamParent");
- cam = GameObject.Find("mastCamera");
- flightCam = FlightCamera.fetch;
- camActive = false;
- }
- public void Update()
- {
- if (HighLogic.LoadedSceneIsFlight)
- {
- camActive = !flightCam.updateActive;
- if (camActive) activateCamera();
- if (!camActive) deactivateCamera();
- if (camActive == true)
- {
- if (Input.GetKey(KeyCode.LeftArrow)) rotation[0] -= horizontalSensitivity;
- if (Input.GetKey(KeyCode.RightArrow)) rotation[0] += horizontalSensitivity;
- if (Input.GetKey(KeyCode.UpArrow)) rotation[1] -= verticalSensitivity;
- if (Input.GetKey(KeyCode.DownArrow)) rotation[1] += verticalSensitivity;
- rotation[1] = Mathf.Clamp(rotation[1], -80, 80);
- if (mountB != null) mountB.transform.localEulerAngles = new Vector3(0, 0, rotation[0]);
- else
- Debug.Log("no mountB");
- if (mastCamera != null) mastCamera.transform.localEulerAngles = new Vector3(0, rotation[1], 0);
- else
- Debug.Log("no mastCamera");
- flightCam.transform.position = cam.transform.position;
- flightCam.transform.rotation = cam.transform.rotation;
- }
- }
- }
- [KSPEvent(active = true, guiActive = true, guiActiveEditor = false, guiActiveUnfocused = false, guiName = "Activate Camera")]
- public void activateCamera()
- {
- flightCam.DeactivateUpdate();
- Events["activateCamera"].active = false;
- Events["deactivateCamera"].active = true;
- }
- [KSPEvent(active = false, guiActive = true, guiActiveEditor = false, guiActiveUnfocused = false, guiName = "Deactivate Camera")]
- public void deactivateCamera()
- {
- flightCam.ActivateUpdate();
- Events["activateCamera"].active = true;
- Events["deactivateCamera"].active = false;
- }
- [KSPAction("Activate Camera")]
- public void activateCamera(KSPActionParam param)
- {
- activateCamera();
- Actions["activateCamera"].active = false;
- Actions["deactivateCamera"].active = true;
- }
- [KSPAction("Deactivate Camera")]
- public void deactivateCamera(KSPActionParam param)
- {
- deactivateCamera();
- Actions["activateCamera"].active = true;
- Actions["deactivateCamera"].active = false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement