Cleanup and improve #2045

This commit is contained in:
Wojtek Figat
2024-02-24 12:53:33 +01:00
parent de4ee1372f
commit 8bcf4fdaf0
15 changed files with 507 additions and 479 deletions

View File

@@ -10,21 +10,68 @@ namespace FlaxEditor.SceneGraph.Actors
[HideInEditor]
public sealed class FoliageNode : ActorNode
{
private FoliageInstance instance;
/// <summary>
/// The selected instance index
/// </summary>
public int SelectedInstanceIndex;
/// <inheritdoc />
public FoliageNode(Foliage actor, int selectedInstanceIndex = -1)
public FoliageNode(Actor actor)
: base(actor)
{
SelectedInstanceIndex = selectedInstanceIndex;
if (selectedInstanceIndex != -1)
}
}
/// <summary>
/// Scene tree node for instance of <see cref="Foliage"/>.
/// </summary>
[HideInEditor]
public sealed class FoliageInstanceNode : SceneGraphNode
{
/// <summary>
/// The foliage actor that owns this instance.
/// </summary>
public Foliage Actor;
/// <summary>
/// Index of the foliage instance.
/// </summary>
public int Index;
/// <inheritdoc />
public FoliageInstanceNode(Foliage actor, int index)
: base(GetSubID(actor.ID, index))
{
Actor = actor;
Index = index;
}
/// <inheritdoc />
public override string Name => "Foliage Instance";
/// <inheritdoc />
public override SceneNode ParentScene
{
get
{
instance = actor.GetInstance(selectedInstanceIndex);
var scene = Actor ? Actor.Scene : null;
return scene != null ? SceneGraphFactory.FindNode(scene.ID) as SceneNode : null;
}
}
/// <inheritdoc />
public override Transform Transform
{
get => Actor.GetInstance(Index).Transform;
set => Actor.SetInstanceTransform(Index, ref value);
}
/// <inheritdoc />
public override bool IsActive => Actor.IsActive;
/// <inheritdoc />
public override bool IsActiveInHierarchy => Actor.IsActiveInHierarchy;
/// <inheritdoc />
public override int OrderInParent
{
get => Index;
set { }
}
}
}