Merge branch 'cache-transform-snapping-state' of https://github.com/Tryibion/FlaxEngine into Tryibion-cache-transform-snapping-state
This commit is contained in:
@@ -223,6 +223,46 @@ namespace FlaxEditor.Viewport
|
||||
|
||||
editor.SceneEditing.SelectionChanged += OnSelectionChanged;
|
||||
|
||||
// initialize snapping enabled from cached values
|
||||
string cachedSnapState;
|
||||
if (_editor.ProjectCache.TryGetCustomData("TranslateSnapState", out cachedSnapState))
|
||||
{
|
||||
TransformGizmo.TranslationSnapEnable = Boolean.Parse(cachedSnapState);
|
||||
}
|
||||
if (_editor.ProjectCache.TryGetCustomData("RotationSnapState", out cachedSnapState))
|
||||
{
|
||||
TransformGizmo.RotationSnapEnabled = Boolean.Parse(cachedSnapState);
|
||||
}
|
||||
if (_editor.ProjectCache.TryGetCustomData("ScaleSnapState", out cachedSnapState))
|
||||
{
|
||||
TransformGizmo.ScaleSnapEnabled = Boolean.Parse(cachedSnapState);
|
||||
}
|
||||
|
||||
// initialize snap value if there is one cached
|
||||
string cachedSnapValue;
|
||||
if (_editor.ProjectCache.TryGetCustomData("TranslateSnapValue", out cachedSnapValue))
|
||||
{
|
||||
TransformGizmo.TranslationSnapValue = float.Parse(cachedSnapValue);
|
||||
}
|
||||
if (_editor.ProjectCache.TryGetCustomData("RotationSnapValue", out cachedSnapValue))
|
||||
{
|
||||
TransformGizmo.RotationSnapValue = float.Parse(cachedSnapValue);
|
||||
}
|
||||
if (_editor.ProjectCache.TryGetCustomData("ScaleSnapValue", out cachedSnapValue))
|
||||
{
|
||||
TransformGizmo.ScaleSnapValue = float.Parse(cachedSnapValue);
|
||||
}
|
||||
|
||||
// initialize transform space if one is cached
|
||||
string cachedTransformSpace;
|
||||
if (_editor.ProjectCache.TryGetCustomData("TransformSpaceState", out cachedTransformSpace))
|
||||
{
|
||||
if (Enum.TryParse(cachedTransformSpace, out TransformGizmoBase.TransformSpace space))
|
||||
{
|
||||
TransformGizmo.ActiveTransformSpace = space;
|
||||
}
|
||||
}
|
||||
|
||||
// Transform space widget
|
||||
var transformSpaceWidget = new ViewportWidgetsContainer(ViewportWidgetLocation.UpperRight);
|
||||
var transformSpaceToggle = new ViewportWidgetButton(string.Empty, editor.Icons.Globe32, null, true)
|
||||
@@ -523,21 +563,29 @@ namespace FlaxEditor.Viewport
|
||||
private void OnTranslateSnappingToggle(ViewportWidgetButton button)
|
||||
{
|
||||
TransformGizmo.TranslationSnapEnable = !TransformGizmo.TranslationSnapEnable;
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("TranslateSnapState", TransformGizmo.TranslationSnapEnable.ToString());
|
||||
}
|
||||
|
||||
private void OnRotateSnappingToggle(ViewportWidgetButton button)
|
||||
{
|
||||
TransformGizmo.RotationSnapEnabled = !TransformGizmo.RotationSnapEnabled;
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("RotationSnapState", TransformGizmo.RotationSnapEnabled.ToString());
|
||||
}
|
||||
|
||||
private void OnScaleSnappingToggle(ViewportWidgetButton button)
|
||||
{
|
||||
TransformGizmo.ScaleSnapEnabled = !TransformGizmo.ScaleSnapEnabled;
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("ScaleSnapState", TransformGizmo.ScaleSnapEnabled.ToString());
|
||||
}
|
||||
|
||||
private void OnTransformSpaceToggle(ViewportWidgetButton button)
|
||||
{
|
||||
TransformGizmo.ToggleTransformSpace();
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("TransformSpaceState", TransformGizmo.ActiveTransformSpace.ToString());
|
||||
}
|
||||
|
||||
private void OnGizmoModeChanged()
|
||||
@@ -567,6 +615,8 @@ namespace FlaxEditor.Viewport
|
||||
var v = (float)button.Tag;
|
||||
TransformGizmo.ScaleSnapValue = v;
|
||||
_scaleSnapping.Text = v.ToString();
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("ScaleSnapValue", TransformGizmo.ScaleSnapValue.ToString("N"));
|
||||
}
|
||||
|
||||
private void OnWidgetScaleSnapShowHide(Control control)
|
||||
@@ -604,6 +654,8 @@ namespace FlaxEditor.Viewport
|
||||
var v = (float)button.Tag;
|
||||
TransformGizmo.RotationSnapValue = v;
|
||||
_rotateSnapping.Text = v.ToString();
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("RotationSnapValue", TransformGizmo.RotationSnapValue.ToString("N"));
|
||||
}
|
||||
|
||||
private void OnWidgetRotateSnapShowHide(Control control)
|
||||
@@ -640,6 +692,8 @@ namespace FlaxEditor.Viewport
|
||||
var v = (float)button.Tag;
|
||||
TransformGizmo.TranslationSnapValue = v;
|
||||
_translateSnapping.Text = v.ToString();
|
||||
// cache value
|
||||
_editor.ProjectCache.SetCustomData("TranslateSnapValue", TransformGizmo.TranslationSnapValue.ToString("N"));
|
||||
}
|
||||
|
||||
private void OnWidgetTranslateSnapShowHide(Control control)
|
||||
|
||||
Reference in New Issue
Block a user