@@ -1337,10 +1337,7 @@ namespace FlaxEditor
|
||||
{
|
||||
var scenes = Level.Scenes;
|
||||
for (int i = 0; i < scenes.Length; i++)
|
||||
{
|
||||
scenes[i].ClearLightmaps();
|
||||
}
|
||||
|
||||
Scene.MarkSceneEdited(scenes);
|
||||
}
|
||||
|
||||
@@ -1384,6 +1381,7 @@ namespace FlaxEditor
|
||||
var scenes = Level.Scenes;
|
||||
Navigation.BuildNavMesh();
|
||||
Scene.MarkSceneEdited(scenes);
|
||||
ProgressReporting.NavMeshBuilding.DirtyScenesOnEnd = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -12,6 +12,8 @@ namespace FlaxEditor.Progress.Handlers
|
||||
{
|
||||
private bool _isActive;
|
||||
|
||||
internal bool DirtyScenesOnEnd;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="NavMeshBuildingProgress"/> class.
|
||||
/// </summary>
|
||||
@@ -34,6 +36,11 @@ namespace FlaxEditor.Progress.Handlers
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DirtyScenesOnEnd)
|
||||
{
|
||||
DirtyScenesOnEnd = false;
|
||||
Editor.Instance.Scene.MarkAllScenesEdited();
|
||||
}
|
||||
OnEnd();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,14 @@ namespace FlaxEditor.States
|
||||
{
|
||||
StateMachine.GoToState<EndState>();
|
||||
}
|
||||
|
||||
protected void ConditionalDirtyScenes()
|
||||
{
|
||||
if (((SubStateMachine)StateMachine).States.Any(x => ((SubState)x).DirtyScenes))
|
||||
{
|
||||
Editor.Instance.Scene.MarkAllScenesEdited();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private sealed class BeginState : SubState
|
||||
@@ -83,18 +91,12 @@ namespace FlaxEditor.States
|
||||
{
|
||||
public override void OnEnter()
|
||||
{
|
||||
var stateMachine = (SubStateMachine)StateMachine;
|
||||
var scenesDirty = false;
|
||||
foreach (var state in stateMachine.States)
|
||||
var states = ((SubStateMachine)StateMachine).States;
|
||||
foreach (var state in states)
|
||||
{
|
||||
((SubState)state).Before();
|
||||
scenesDirty |= ((SubState)state).DirtyScenes;
|
||||
}
|
||||
if (scenesDirty)
|
||||
{
|
||||
foreach (var scene in Level.Scenes)
|
||||
Editor.Instance.Scene.MarkSceneEdited(scene);
|
||||
}
|
||||
ConditionalDirtyScenes();
|
||||
Done();
|
||||
}
|
||||
}
|
||||
@@ -262,6 +264,7 @@ namespace FlaxEditor.States
|
||||
{
|
||||
public override void OnEnter()
|
||||
{
|
||||
ConditionalDirtyScenes();
|
||||
Editor.Instance.StateMachine.GoToState<EditingSceneState>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,8 +148,7 @@ namespace FlaxEditor.Actions
|
||||
// Prefab links are broken by the C++ backend on actor reparenting
|
||||
|
||||
// Mark scenes as edited
|
||||
foreach (var scene in scenes)
|
||||
Editor.Instance.Scene.MarkSceneEdited(scene);
|
||||
Editor.Instance.Scene.MarkSceneEdited(scenes);
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
|
||||
Reference in New Issue
Block a user