Merge remote-tracking branch 'origin/master' into linux-editor

# Conflicts:
#	Source/Engine/Core/Math/Color.cs
#	Source/Engine/Navigation/Navigation.cpp
#	Source/Engine/Platform/Win32/Win32Platform.cpp
This commit is contained in:
Wojtek Figat
2021-02-23 22:29:07 +01:00
147 changed files with 1740 additions and 1311 deletions

View File

@@ -125,9 +125,8 @@ namespace FlaxEditor.SceneGraph.GUI
}
else
{
QueryFilterHelper.Range[] ranges;
var text = Text;
if (QueryFilterHelper.Match(filterText, text, out ranges))
if (QueryFilterHelper.Match(filterText, text, out QueryFilterHelper.Range[] ranges))
{
// Update highlights
if (_highlights == null)
@@ -386,15 +385,14 @@ namespace FlaxEditor.SceneGraph.GUI
public ReparentAction(List<Actor> actors)
{
var allActors = new List<Actor>();
allActors.Capacity = Mathf.NextPowerOfTwo(actors.Count);
var allActors = new List<Actor>(Mathf.NextPowerOfTwo(actors.Count));
for (int i = 0; i < actors.Count; i++)
{
GetAllActors(allActors, actors[i]);
}
var allScripts = new List<Script>();
allScripts.Capacity = allActors.Capacity;
var allScripts = new List<Script>(allActors.Capacity);
GetAllScripts(allActors, allScripts);
int allCount = allActors.Count + allScripts.Count;
@@ -409,6 +407,7 @@ namespace FlaxEditor.SceneGraph.GUI
_prefabIds[i] = allActors[i].PrefabID;
_prefabObjectIds[i] = allActors[i].PrefabObjectID;
}
for (int i = 0; i < allScripts.Count; i++)
{
int j = _actorsCount + i;
@@ -570,11 +569,14 @@ namespace FlaxEditor.SceneGraph.GUI
{
// Create actor
var model = FlaxEngine.Content.LoadAsync<SkinnedModel>(assetItem.ID);
var actor = new AnimatedModel();
actor.StaticFlags = Actor.StaticFlags;
actor.Name = assetItem.ShortName;
actor.SkinnedModel = model;
actor.Transform = Actor.Transform;
var actor = new AnimatedModel
{
StaticFlags = Actor.StaticFlags,
Name = assetItem.ShortName,
SkinnedModel = model,
Transform = Actor.Transform
};
// Spawn
ActorNode.Root.Spawn(actor, Actor);
@@ -583,11 +585,14 @@ namespace FlaxEditor.SceneGraph.GUI
{
// Create actor
var model = FlaxEngine.Content.LoadAsync<Model>(assetItem.ID);
var actor = new StaticModel();
actor.StaticFlags = Actor.StaticFlags;
actor.Name = assetItem.ShortName;
actor.Model = model;
actor.Transform = Actor.Transform;
var actor = new StaticModel
{
StaticFlags = Actor.StaticFlags,
Name = assetItem.ShortName,
Model = model,
Transform = Actor.Transform
};
// Spawn
ActorNode.Root.Spawn(actor, Actor);
@@ -595,11 +600,13 @@ namespace FlaxEditor.SceneGraph.GUI
else if (assetItem.IsOfType<CollisionData>())
{
// Create actor
var actor = new MeshCollider();
actor.StaticFlags = Actor.StaticFlags;
actor.Name = assetItem.ShortName;
actor.CollisionData = FlaxEngine.Content.LoadAsync<CollisionData>(assetItem.ID);
actor.Transform = Actor.Transform;
var actor = new MeshCollider
{
StaticFlags = Actor.StaticFlags,
Name = assetItem.ShortName,
CollisionData = FlaxEngine.Content.LoadAsync<CollisionData>(assetItem.ID),
Transform = Actor.Transform
};
// Spawn
ActorNode.Root.Spawn(actor, Actor);
@@ -607,11 +614,13 @@ namespace FlaxEditor.SceneGraph.GUI
else if (assetItem.IsOfType<ParticleSystem>())
{
// Create actor
var actor = new ParticleEffect();
actor.StaticFlags = Actor.StaticFlags;
actor.Name = assetItem.ShortName;
actor.ParticleSystem = FlaxEngine.Content.LoadAsync<ParticleSystem>(assetItem.ID);
actor.Transform = Actor.Transform;
var actor = new ParticleEffect
{
StaticFlags = Actor.StaticFlags,
Name = assetItem.ShortName,
ParticleSystem = FlaxEngine.Content.LoadAsync<ParticleSystem>(assetItem.ID),
Transform = Actor.Transform
};
// Spawn
ActorNode.Root.Spawn(actor, Actor);
@@ -619,11 +628,13 @@ namespace FlaxEditor.SceneGraph.GUI
else if (assetItem.IsOfType<SceneAnimation>())
{
// Create actor
var actor = new SceneAnimationPlayer();
actor.StaticFlags = Actor.StaticFlags;
actor.Name = assetItem.ShortName;
actor.Animation = FlaxEngine.Content.LoadAsync<SceneAnimation>(assetItem.ID);
actor.Transform = Actor.Transform;
var actor = new SceneAnimationPlayer
{
StaticFlags = Actor.StaticFlags,
Name = assetItem.ShortName,
Animation = FlaxEngine.Content.LoadAsync<SceneAnimation>(assetItem.ID),
Transform = Actor.Transform
};
// Spawn
ActorNode.Root.Spawn(actor, Actor);
@@ -631,11 +642,13 @@ namespace FlaxEditor.SceneGraph.GUI
else if (assetItem.IsOfType<AudioClip>())
{
// Create actor
var actor = new AudioSource();
actor.StaticFlags = Actor.StaticFlags;
actor.Name = assetItem.ShortName;
actor.Clip = FlaxEngine.Content.LoadAsync<AudioClip>(assetItem.ID);
actor.Transform = Actor.Transform;
var actor = new AudioSource
{
StaticFlags = Actor.StaticFlags,
Name = assetItem.ShortName,
Clip = FlaxEngine.Content.LoadAsync<AudioClip>(assetItem.ID),
Transform = Actor.Transform
};
// Spawn
ActorNode.Root.Spawn(actor, Actor);
@@ -728,20 +741,28 @@ namespace FlaxEditor.SceneGraph.GUI
{
if (assetItem.IsOfType<SkinnedModel>())
return true;
if (assetItem.IsOfType<Model>())
return true;
if (assetItem.IsOfType<AudioClip>())
return true;
if (assetItem.IsOfType<Prefab>())
return true;
if (assetItem.IsOfType<CollisionData>())
return true;
if (assetItem.IsOfType<ParticleSystem>())
return true;
if (assetItem.IsOfType<SceneAnimation>())
return true;
if (assetItem is VisualScriptItem visualScriptItem && new ScriptType(typeof(Actor)).IsAssignableFrom(visualScriptItem.ScriptType) && visualScriptItem.ScriptType.CanCreateInstance)
return true;
return false;
}

View File

@@ -82,8 +82,7 @@ namespace FlaxEditor.SceneGraph
if (id == Guid.Empty)
return null;
SceneGraphNode result;
Nodes.TryGetValue(id, out result);
Nodes.TryGetValue(id, out SceneGraphNode result);
return result;
}
@@ -94,8 +93,7 @@ namespace FlaxEditor.SceneGraph
/// <returns>The result node.</returns>
public static SceneGraphNode GetNode(Guid id)
{
SceneGraphNode result;
Nodes.TryGetValue(id, out result);
Nodes.TryGetValue(id, out SceneGraphNode result);
if (result == null)
{
var actor = Object.TryFind<Actor>(ref id);