Exemplo n.º 1
0
    /// <summary>
    /// Overwrite an existing save, or save a new one
    /// </summary>
    public void OnSavePressed()
    {
        CancelConfirmingDelete();
        if (Dropdown.options[Dropdown.value].text == NewString) // Start creating a new save
        {
            _savingNew = true;
            OnValueChanges();
        }
        else // Overwrite an existing save
        {
            PortalSettings settings;
            if (!PortalSettingsSaver.SavedProfiles.TryGetValue(Dropdown.options[Dropdown.value].text, out settings))
            {
                return;
            }
            Debug.Log("Overwriting saved settings " + Dropdown.options[Dropdown.value].text);
            settings.SaveFileVersion = PortalSettings.CurrentSaveVersion;

            settings.X  = OverlayToSave.AnchorOffset.x; settings.Y = OverlayToSave.AnchorOffset.y; settings.Z = OverlayToSave.AnchorOffset.z;
            settings.RX = RXSlider.Slider.value; settings.RY = RYSlider.Slider.value; settings.RZ = RZSlider.Slider.value;

            settings.Device    = OverlayToSave.AnchorDevice;
            settings.Point     = OverlayToSave.AnchorPoint;
            settings.Animation = OverlayToSave.AnimateOnGaze;

            settings.AlphaStart = OverlayToSave.Alpha;
            settings.AlphaEnd   = OverlayToSave.Alpha2;
            settings.AlphaSpeed = OverlayToSave.AlphaSpeed;
            settings.ScaleStart = OverlayToSave.Scale;
            settings.ScaleEnd   = OverlayToSave.Scale2;
            settings.ScaleSpeed = OverlayToSave.ScaleSpeed;

            settings.ScreenOffsetPerformed = DesktopPortalController.Instance.ScreenOffsetPerformed;

            settings.OutlineDefaultR  = DesktopPortalController.Instance.OutlineColorDefault.r;
            settings.OutlineDefaultG  = DesktopPortalController.Instance.OutlineColorDefault.g;
            settings.OutlineDefaultB  = DesktopPortalController.Instance.OutlineColorDefault.b;
            settings.OutlineDefaultA  = DesktopPortalController.Instance.OutlineColorDefault.a;
            settings.OutlineAimingR   = DesktopPortalController.Instance.OutlineColorAiming.r;
            settings.OutlineAimingG   = DesktopPortalController.Instance.OutlineColorAiming.g;
            settings.OutlineAimingB   = DesktopPortalController.Instance.OutlineColorAiming.b;
            settings.OutlineAimingA   = DesktopPortalController.Instance.OutlineColorAiming.a;
            settings.OutlineTouchingR = DesktopPortalController.Instance.OutlineColorTouching.r;
            settings.OutlineTouchingG = DesktopPortalController.Instance.OutlineColorTouching.g;
            settings.OutlineTouchingB = DesktopPortalController.Instance.OutlineColorTouching.b;
            settings.OutlineTouchingA = DesktopPortalController.Instance.OutlineColorTouching.a;
            settings.OutlineScalingR  = DesktopPortalController.Instance.OutlineColorScaling.r;
            settings.OutlineScalingG  = DesktopPortalController.Instance.OutlineColorScaling.g;
            settings.OutlineScalingB  = DesktopPortalController.Instance.OutlineColorScaling.b;
            settings.OutlineScalingA  = DesktopPortalController.Instance.OutlineColorScaling.a;

            settings.Backside = DesktopPortalController.Instance.CurrentBacksideTexture;

            settings.GrabEnabled    = DesktopPortalController.Instance.GrabEnabledToggle.isOn;
            settings.ScaleEnabled   = DesktopPortalController.Instance.ScaleEnabledToggle.isOn;
            settings.HapticsEnabled = DesktopPortalController.Instance.HapticsEnabledToggle.isOn;

            PortalSettingsSaver.SaveProfiles();
        }
    }
    /// <summary>
    /// Overwrite an existing save, or save a new one
    /// </summary>
    public void OnSavePressed()
    {
        CancelConfirmingDelete();
        if (Dropdown.options[Dropdown.value].text == NewString) // Start creating a new save
        {
            _savingNew = true;
            OnValueChanges();
        }
        else // Overwrite an existing save
        {
            PortalSettings settings;
            if (!PortalSettingsSaver.SavedProfiles.TryGetValue(Dropdown.options[Dropdown.value].text, out settings))
            {
                return;
            }
            Debug.Log("Overwriting saved settings " + Dropdown.options[Dropdown.value].text);
            settings.SaveFileVersion = PortalSettings.CurrentSaveVersion;

            settings.X  = OverlayToSave.AnchorOffset.x; settings.Y = OverlayToSave.AnchorOffset.y; settings.Z = OverlayToSave.AnchorOffset.z;
            settings.RX = RXSlider.Slider.value; settings.RY = RYSlider.Slider.value; settings.RZ = RZSlider.Slider.value;

            settings.Device    = OverlayToSave.AnchorDevice;
            settings.Point     = OverlayToSave.AnchorPoint;
            settings.Animation = OverlayToSave.AnimateOnGaze;

            settings.AlphaStart = OverlayToSave.Alpha; settings.AlphaEnd = OverlayToSave.Alpha2; settings.AlphaSpeed = OverlayToSave.AlphaSpeed;
            settings.ScaleStart = OverlayToSave.Scale; settings.ScaleEnd = OverlayToSave.Scale2; settings.ScaleSpeed = OverlayToSave.ScaleSpeed;
            PortalSettingsSaver.SaveProfiles();
        }
    }
Exemplo n.º 3
0
 public void OnEnable()
 {
     if (PortalSettingsSaver.CurrentProgramSettings == null)
     {
         PortalSettingsSaver.LoadProgramSettings();
     }
     ReloadOptions();
     if (PortalSettingsSaver.CurrentProgramSettings != null && !string.IsNullOrEmpty(PortalSettingsSaver.CurrentProgramSettings.LastProfile))
     {
         OnLoadPressed(true);
     }
 }
Exemplo n.º 4
0
 public void OnSaveNewPressed()
 {
     if (string.IsNullOrEmpty(SaveName.text) || PortalSettingsSaver.SavedProfiles.ContainsKey(SaveName.text))
     {
         return;
     }
     _savingNew = false;
     Debug.Log("Adding saved settings " + SaveName.text);
     PortalSettingsSaver.SavedProfiles.Add(SaveName.text, ConvertToPortalSettings(OverlayToSave));
     PortalSettingsSaver.SaveProfiles();
     PortalSettingsSaver.Current = SaveName.text;
     SaveName.text = "";
     ReloadOptions();
 }
 public void OnDeletePressed()
 {
     if (!_confirmingDelete)
     {
         _confirmingDelete      = true;
         DeleteButtonText.color = Color.red;
         OnDeleteButtonTooltip();
     }
     else
     {
         PortalSettingsSaver.DeleteProfile(Dropdown.options[Dropdown.value].text);
         CancelConfirmingDelete();
         ReloadOptions();
     }
 }
Exemplo n.º 6
0
    public void OnLoadPressed(bool startup = false) // Loads an existing save
    {
        if (startup)
        {
            HOTK_TrackedDeviceManager.Instance.FindControllers();
        }
        CancelConfirmingDelete();
        PortalSettings settings;

        if (!PortalSettingsSaver.SavedProfiles.TryGetValue(Dropdown.options[Dropdown.value].text, out settings))
        {
            return;
        }
        Debug.Log(startup ? "Loading last used settings " + Dropdown.options[Dropdown.value].text : "Loading saved settings " + Dropdown.options[Dropdown.value].text);
        PortalSettingsSaver.Current = Dropdown.options[Dropdown.value].text;
        if (!startup)
        {
            PortalSettingsSaver.SaveProgramSettings();
        }

        if (settings.SaveFileVersion < 2)
        {
            if (settings.Device == HOTK_Overlay.AttachmentDevice.Screen || settings.Device == HOTK_Overlay.AttachmentDevice.World)
            {
                settings.Z += 1;
            }
            if (settings.Device == HOTK_Overlay.AttachmentDevice.Screen)
            {
                settings.ScreenOffsetPerformed = true;
            }

            settings.OutlineDefaultR  = 0f; settings.OutlineDefaultG = 0f; settings.OutlineDefaultB = 0f; settings.OutlineDefaultA = 0f;
            settings.OutlineAimingR   = 1f; settings.OutlineAimingG = 0f; settings.OutlineAimingB = 0f; settings.OutlineAimingA = 1f;
            settings.OutlineTouchingR = 0f; settings.OutlineTouchingG = 1f; settings.OutlineTouchingB = 0f; settings.OutlineTouchingA = 1f;
            settings.OutlineScalingR  = 0f; settings.OutlineScalingG = 0f; settings.OutlineScalingB = 1f; settings.OutlineScalingA = 1f;
            settings.SaveFileVersion  = 2;
        }
        if (settings.SaveFileVersion == 2)
        {
            settings.Backside        = DesktopPortalController.BacksideTexture.Blue;
            settings.SaveFileVersion = 3;
        }
        if (settings.SaveFileVersion == 3)
        {
            settings.GrabEnabled     = true;
            settings.ScaleEnabled    = true;
            settings.SaveFileVersion = 4;
        }
        if (settings.SaveFileVersion == 4)
        {
            settings.HapticsEnabled  = true;
            settings.SaveFileVersion = 5;
        }
        if (settings.SaveFileVersion == 5)
        {
            settings.DodgeOffsetX     = 2f;
            settings.DodgeOffsetY     = 0f;
            settings.DodgeOffsetSpeed = 0.1f;
            settings.SaveFileVersion  = 6;
        }
        DesktopPortalController.Instance.ScreenOffsetPerformed = settings.ScreenOffsetPerformed;

        // Recenter XYZ Sliders
        XSlider.Slider.minValue = settings.X - 2f;
        XSlider.Slider.maxValue = settings.X + 2f;
        YSlider.Slider.minValue = settings.Y - 2f;
        YSlider.Slider.maxValue = settings.Y + 2f;
        ZSlider.Slider.minValue = settings.Z - 2f;
        ZSlider.Slider.maxValue = settings.Z + 2f;
        XSlider.Slider.value    = settings.X;
        YSlider.Slider.value    = settings.Y;
        ZSlider.Slider.value    = settings.Z;
        // Disable Rotation sliders so only one call to update the overlay occurs
        RXSlider.IgnoreNextUpdate();
        RYSlider.IgnoreNextUpdate();
        RZSlider.IgnoreNextUpdate();
        RXSlider.Slider.value = settings.RX;
        RYSlider.Slider.value = settings.RY;
        RZSlider.Slider.value = settings.RZ;
        RXSlider.OnSliderChanged();
        RYSlider.OnSliderChanged();
        RZSlider.OnSliderChanged();

        if (RXSlider.RotationField != null)
        {
            RXSlider.RotationField.SetSafeValue(settings.RX);
        }
        if (RYSlider.RotationField != null)
        {
            RYSlider.RotationField.SetSafeValue(settings.RY);
        }
        if (RZSlider.RotationField != null)
        {
            RZSlider.RotationField.SetSafeValue(settings.RZ);
        }

        // Swap Selected Controllers when Saved Controller is absent and the other Controller is present
        DeviceDropdown.SetToOption(((settings.Device == HOTK_Overlay.AttachmentDevice.LeftController && HOTK_TrackedDeviceManager.Instance.LeftIndex == OpenVR.k_unTrackedDeviceIndexInvalid && HOTK_TrackedDeviceManager.Instance.RightIndex != OpenVR.k_unTrackedDeviceIndexInvalid) ? HOTK_Overlay.AttachmentDevice.RightController :  // Left Controller not found but Right Controller found. Use Right Controller.
                                    ((settings.Device == HOTK_Overlay.AttachmentDevice.RightController && HOTK_TrackedDeviceManager.Instance.RightIndex == OpenVR.k_unTrackedDeviceIndexInvalid && HOTK_TrackedDeviceManager.Instance.LeftIndex != OpenVR.k_unTrackedDeviceIndexInvalid) ? HOTK_Overlay.AttachmentDevice.LeftController : // Right Controller not found but Left Controller found. Use Left Controller.
                                     settings.Device)).ToString());                                                                                                                                                                                                                                                                       // Use Device setting otherwise
        PointDropdown.SetToOption(settings.Point.ToString());
        AnimationDropdown.SetToOption(settings.Animation.ToString());

        AlphaStartField.text = settings.AlphaStart.ToString();
        AlphaEndField.text   = settings.AlphaEnd.ToString();
        AlphaSpeedField.text = settings.AlphaSpeed.ToString();
        ScaleStartField.text = settings.ScaleStart.ToString();
        ScaleEndField.text   = settings.ScaleEnd.ToString();
        ScaleSpeedField.text = settings.ScaleSpeed.ToString();

        AlphaDodgeField.text = settings.AlphaStart.ToString();
        ScaleDodgeField.text = settings.ScaleStart.ToString();
        AlphaNoneField.text  = settings.AlphaStart.ToString();
        ScaleNoneField.text  = settings.ScaleStart.ToString();

        DodgeXField.text     = settings.DodgeOffsetX.ToString();
        DodgeYField.text     = settings.DodgeOffsetY.ToString();
        DodgeSpeedField.text = settings.DodgeOffsetSpeed.ToString();

        AlphaStartField.onEndEdit.Invoke("");
        AlphaEndField.onEndEdit.Invoke("");
        AlphaSpeedField.onEndEdit.Invoke("");
        ScaleStartField.onEndEdit.Invoke("");
        ScaleEndField.onEndEdit.Invoke("");
        ScaleSpeedField.onEndEdit.Invoke("");

        AlphaDodgeField.onEndEdit.Invoke("");
        ScaleDodgeField.onEndEdit.Invoke("");
        AlphaNoneField.onEndEdit.Invoke("");
        ScaleNoneField.onEndEdit.Invoke("");

        DodgeXField.onEndEdit.Invoke("");
        DodgeYField.onEndEdit.Invoke("");
        DodgeSpeedField.onEndEdit.Invoke("");


        DesktopPortalController.Instance.OutlineColorDefault  = new Color(settings.OutlineDefaultR, settings.OutlineDefaultG, settings.OutlineDefaultB, settings.OutlineDefaultA);
        DesktopPortalController.Instance.OutlineColorAiming   = new Color(settings.OutlineAimingR, settings.OutlineAimingG, settings.OutlineAimingB, settings.OutlineAimingA);
        DesktopPortalController.Instance.OutlineColorTouching = new Color(settings.OutlineTouchingR, settings.OutlineTouchingG, settings.OutlineTouchingB, settings.OutlineTouchingA);
        DesktopPortalController.Instance.OutlineColorScaling  = new Color(settings.OutlineScalingR, settings.OutlineScalingG, settings.OutlineScalingB, settings.OutlineScalingA);

        DesktopPortalController.Instance.CurrentBacksideTexture = settings.Backside;

        DesktopPortalController.Instance.GrabEnabledToggle.isOn    = settings.GrabEnabled;
        DesktopPortalController.Instance.ScaleEnabledToggle.isOn   = settings.ScaleEnabled;
        DesktopPortalController.Instance.HapticsEnabledToggle.isOn = settings.HapticsEnabled;

        ColorPicker.LoadButtonColors();
    }
    public void OnLoadPressed(bool startup = false) // Loads an existing save
    {
        if (startup)
        {
            HOTK_TrackedDeviceManager.Instance.FindControllers();
        }
        CancelConfirmingDelete();
        PortalSettings settings;

        if (!PortalSettingsSaver.SavedProfiles.TryGetValue(Dropdown.options[Dropdown.value].text, out settings))
        {
            return;
        }
        Debug.Log(startup ? "Loading last used settings " + Dropdown.options[Dropdown.value].text : "Loading saved settings " + Dropdown.options[Dropdown.value].text);
        PortalSettingsSaver.Current = Dropdown.options[Dropdown.value].text;
        if (!startup)
        {
            PortalSettingsSaver.SaveProgramSettings();
        }
        // Disable X and Y sliders so only one call to update the overlay occurs
        XSlider.Slider.minValue = settings.X - 2f;
        XSlider.Slider.maxValue = settings.X + 2f;
        YSlider.Slider.minValue = settings.Y - 2f;
        YSlider.Slider.maxValue = settings.Y + 2f;
        ZSlider.Slider.minValue = settings.Z - 2f;
        ZSlider.Slider.maxValue = settings.Z + 2f;
        XSlider.Slider.value    = settings.X;
        YSlider.Slider.value    = settings.Y;
        ZSlider.Slider.value    = settings.Z;

        RXSlider.IgnoreNextUpdate();
        RYSlider.IgnoreNextUpdate();
        RZSlider.IgnoreNextUpdate();
        RXSlider.Slider.value = settings.RX;
        RYSlider.Slider.value = settings.RY;
        RZSlider.Slider.value = settings.RZ;
        RXSlider.OnSliderChanged();
        RYSlider.OnSliderChanged();
        RZSlider.OnSliderChanged();

        if (RXSlider.RotationField != null)
        {
            RXSlider.RotationField.SetSafeValue(settings.RX);
        }
        if (RYSlider.RotationField != null)
        {
            RYSlider.RotationField.SetSafeValue(settings.RY);
        }
        if (RZSlider.RotationField != null)
        {
            RZSlider.RotationField.SetSafeValue(settings.RZ);
        }

        DeviceDropdown.SetToOption(settings.Device.ToString());
        PointDropdown.SetToOption(settings.Point.ToString());
        AnimationDropdown.SetToOption(settings.Animation.ToString());

        AlphaStartField.text = settings.AlphaStart.ToString();
        AlphaEndField.text   = settings.AlphaEnd.ToString();
        AlphaSpeedField.text = settings.AlphaSpeed.ToString();
        ScaleStartField.text = settings.ScaleStart.ToString();
        ScaleEndField.text   = settings.ScaleEnd.ToString();
        ScaleSpeedField.text = settings.ScaleSpeed.ToString();

        AlphaStartField.onEndEdit.Invoke("");
        AlphaEndField.onEndEdit.Invoke("");
        AlphaSpeedField.onEndEdit.Invoke("");
        ScaleStartField.onEndEdit.Invoke("");
        ScaleEndField.onEndEdit.Invoke("");
        ScaleSpeedField.onEndEdit.Invoke("");
    }