|
|
|
@ -336,6 +336,7 @@ namespace Fungus.EditorUtils
|
|
|
|
|
if (flowchart == null) |
|
|
|
|
{ |
|
|
|
|
blocks = new Block[0]; |
|
|
|
|
filteredBlocks = new Block[0]; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
@ -347,6 +348,8 @@ namespace Fungus.EditorUtils
|
|
|
|
|
|
|
|
|
|
protected virtual void OnInspectorUpdate() |
|
|
|
|
{ |
|
|
|
|
if (HandleFlowchartSelectionChange()) return; |
|
|
|
|
|
|
|
|
|
// Ensure the Block Inspector is always showing the currently selected block |
|
|
|
|
var flowchart = GetFlowchart(); |
|
|
|
|
if (flowchart == null || AnyNullBLocks()) |
|
|
|
@ -450,13 +453,22 @@ namespace Fungus.EditorUtils
|
|
|
|
|
{ |
|
|
|
|
filterStale = false; |
|
|
|
|
//reset all |
|
|
|
|
foreach (var item in filteredBlocks) |
|
|
|
|
for (int i = 0; filteredBlocks != null && i < filteredBlocks.Length; i++) |
|
|
|
|
{ |
|
|
|
|
if(filteredBlocks[i] != null) |
|
|
|
|
{ |
|
|
|
|
filteredBlocks[i].IsFiltered = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var nullCount = filteredBlocks.Count(x => x == null); |
|
|
|
|
if (nullCount > 0 && nullCount != filteredBlocks.Length) |
|
|
|
|
{ |
|
|
|
|
item.IsFiltered = false; |
|
|
|
|
Debug.LogWarning("Null block found in filteredBlocks. May be a symptom of an underlying issue"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//gather new |
|
|
|
|
filteredBlocks = blocks.Where(block => block.BlockName.ToLower().Contains(searchString.ToLower())).ToArray(); |
|
|
|
|
filteredBlocks = blocks.Where(block => block.BlockName.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0).ToArray(); |
|
|
|
|
|
|
|
|
|
//update filteredness |
|
|
|
|
foreach (var item in filteredBlocks) |
|
|
|
@ -573,9 +585,16 @@ namespace Fungus.EditorUtils
|
|
|
|
|
{ |
|
|
|
|
mouseDownSelectionState.AddRange(flowchart.SelectedBlocks); |
|
|
|
|
flowchart.ClearSelectedBlocks(); |
|
|
|
|
foreach (var item in mouseDownSelectionState) |
|
|
|
|
for (int i = 0; i < mouseDownSelectionState.Count; i++) |
|
|
|
|
{ |
|
|
|
|
item.IsControlSelected = true; |
|
|
|
|
if (mouseDownSelectionState[i] != null) |
|
|
|
|
{ |
|
|
|
|
mouseDownSelectionState[i].IsControlSelected = true; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
Debug.LogWarning("Null block found in mouseDownSelectionState. May be a symptom of an underlying issue"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -633,6 +652,17 @@ namespace Fungus.EditorUtils
|
|
|
|
|
blockInspector = null; |
|
|
|
|
prevFlowchart = flowchart; |
|
|
|
|
executingBlocks.ClearAll(); |
|
|
|
|
|
|
|
|
|
//attempt to defilter previous, if due to scene change these will be null |
|
|
|
|
// the regular filter updates will still occur within UpdateBlockCollection |
|
|
|
|
for (int i = 0; i < filteredBlocks.Length; i++) |
|
|
|
|
{ |
|
|
|
|
if (filteredBlocks[i] != null) |
|
|
|
|
{ |
|
|
|
|
filteredBlocks[i].IsFiltered = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UpdateBlockCollection(); |
|
|
|
|
Repaint(); |
|
|
|
|
return true; |
|
|
|
|