Change new anim port to TryGetBox.

This commit is contained in:
Chandler Cox
2023-10-11 15:57:02 -05:00
parent fa96707c57
commit 8eb9df9a18
2 changed files with 25 additions and 12 deletions

View File

@@ -59,8 +59,11 @@ namespace FlaxEditor.Surface.Archetypes
if (Surface != null)
{
_assetSelect = GetChild<AssetSelect>();
_assetBox = GetBox(8);
_assetSelect.Visible = !_assetBox.HasAnyConnection;
if (TryGetBox(8, out var box))
{
_assetBox = box;
_assetSelect.Visible = !_assetBox.HasAnyConnection;
}
UpdateTitle();
}
}
@@ -68,7 +71,11 @@ namespace FlaxEditor.Surface.Archetypes
private void UpdateTitle()
{
var asset = Editor.Instance.ContentDatabase.Find((Guid)Values[0]);
Title = _assetBox.HasAnyConnection || asset == null ? "Animation" : asset.ShortName;
if (_assetBox != null)
Title = _assetBox.HasAnyConnection || asset == null ? "Animation" : asset.ShortName;
else
Title = asset?.ShortName ?? "Animation";
var style = Style.Current;
Resize(Mathf.Max(230, style.FontLarge.MeasureText(Title).X + 30), 160);
}
@@ -78,8 +85,11 @@ namespace FlaxEditor.Surface.Archetypes
{
base.ConnectionTick(box);
if (box.ID != _assetBox.ID)
return;
if (_assetBox != null)
{
if (box.ID != _assetBox.ID)
return;
}
_assetSelect.Visible = !box.HasAnyConnection;
UpdateTitle();

View File

@@ -764,14 +764,17 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
const float startTimePos = (float)tryGetValue(node->GetBox(7), node->Values[3]);
// Override animation when animation reference box is connected
auto animationAssetBox = node->GetBox(8);
if (animationAssetBox->HasConnection())
auto animationAssetBox = node->TryGetBox(8);
if (animationAssetBox)
{
const Value assetBoxValue = tryGetValue(animationAssetBox, Value::Null);
if (assetBoxValue != Value::Null)
anim = (Animation*)assetBoxValue.AsAsset;
else
anim = nullptr;
if (animationAssetBox->HasConnection())
{
const Value assetBoxValue = tryGetValue(animationAssetBox, Value::Null);
if (assetBoxValue != Value::Null)
anim = (Animation*)assetBoxValue.AsAsset;
else
anim = nullptr;
}
}
const float length = anim ? anim->GetLength() : 0.0f;