diff --git a/engine/Sandbox.Engine/Scene/Components/Mesh/MeshComponent.cs b/engine/Sandbox.Engine/Scene/Components/Mesh/MeshComponent.cs index c313c7eab..947aca020 100644 --- a/engine/Sandbox.Engine/Scene/Components/Mesh/MeshComponent.cs +++ b/engine/Sandbox.Engine/Scene/Components/Mesh/MeshComponent.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using Sandbox.Rendering; using static Sandbox.Component; using static Sandbox.ModelRenderer; @@ -127,6 +128,23 @@ public ShadowRenderType RenderType } } + RenderOptions _renderOptions; + + [Property, MakeDirty, Order( -100 ), InlineEditor( Label = false ), Group( "Advanced Rendering", StartFolded = true )] + public RenderOptions RenderOptions + { + get + { + _renderOptions ??= new( OnRenderOptionsChanged ); + return _renderOptions; + } + } + + private void OnRenderOptionsChanged() + { + UpdateSceneObject(); + } + [JsonIgnore, Hide] public Model Model { get; private set; } @@ -341,5 +359,6 @@ private void UpdateSceneObject() SceneObject.Tags.SetFrom( GameObject.Tags ); SceneObject.ColorTint = Color; SceneObject.Flags.CastShadows = RenderType == ShadowRenderType.On || RenderType == ShadowRenderType.ShadowsOnly; + RenderOptions.Apply( SceneObject ); } }