diff --git a/Source/Editor/Surface/Constants.cs b/Source/Editor/Surface/Constants.cs index 3310351bf..80aecd3ec 100644 --- a/Source/Editor/Surface/Constants.cs +++ b/Source/Editor/Surface/Constants.cs @@ -55,7 +55,7 @@ namespace FlaxEditor.Surface /// /// The box size (with and height). /// - public const float BoxSize = 12.0f; + public const float BoxSize = 13.0f; /// /// The node layout offset on the y axis (height of the boxes rows, etc.). It's used to make the design more consistent. diff --git a/Source/Editor/Surface/SurfaceStyle.cs b/Source/Editor/Surface/SurfaceStyle.cs index 86707efd3..8d547c14e 100644 --- a/Source/Editor/Surface/SurfaceStyle.cs +++ b/Source/Editor/Surface/SurfaceStyle.cs @@ -2,6 +2,7 @@ using System; using FlaxEditor.Scripting; +using FlaxEditor.Surface.Elements; using FlaxEngine; using FlaxEngine.Utilities; @@ -228,8 +229,9 @@ namespace FlaxEditor.Surface if (rect.Size.LengthSquared < minBoxSize * minBoxSize) return; - // Debugging boxes size + // Debugging boxes size and bounds //Render2D.DrawRectangle(rect, Color.Orange); return; + //Render2D.DrawRectangle(box.Bounds, Color.Green); // Draw icon bool hasConnections = box.HasAnyConnection; @@ -244,13 +246,23 @@ namespace FlaxEditor.Surface color *= box.ConnectionsHighlightIntensity + 1; Render2D.DrawSprite(icon, rect, color); + // Draw connected hint with color from connected output box + if (hasConnections && box.Connections[0] is OutputBox connectedOutputBox) + { + bool connectedSameColor = connectedOutputBox.CurrentTypeColor == box.CurrentTypeColor; + Color innerColor = connectedSameColor ? color.RGBMultiplied(0.4f) : connectedOutputBox.CurrentTypeColor; + innerColor = innerColor * alpha; + Render2D.DrawSprite(icon, rect.MakeExpanded(-5.0f), innerColor); + } + // Draw selection hint if (box.IsSelected) { float outlineAlpha = Mathf.Sin(Time.TimeSinceStartup * 4.0f) * 0.5f + 0.5f; float outlineWidth = Mathf.Lerp(1.5f, 4.0f, outlineAlpha); var outlineRect = new Rectangle(rect.X - outlineWidth, rect.Y - outlineWidth, rect.Width + outlineWidth * 2, rect.Height + outlineWidth * 2); - Render2D.DrawSprite(icon, outlineRect, FlaxEngine.GUI.Style.Current.BorderSelected.RGBMultiplied(1.0f + outlineAlpha * 0.4f)); + Color selectionColor = FlaxEngine.GUI.Style.Current.BorderSelected.RGBMultiplied(1.0f + outlineAlpha * 0.4f); + Render2D.DrawSprite(icon, outlineRect, selectionColor.AlphaMultiplied(0.4f)); } }