using Content.Shared.Research.Prototypes; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; namespace Content.Client.Lathe.UI; [GenerateTypedNameReferences] public sealed partial class RecipeControl : Control { public Action? OnButtonPressed; public Func TooltipTextSupplier; public RecipeControl(LatheRecipePrototype recipe, Func tooltipTextSupplier, bool canProduce, List textures) { RobustXamlLoader.Load(this); RecipeName.Text = recipe.Name; RecipeTextures.Textures = textures; Button.Disabled = !canProduce; TooltipTextSupplier = tooltipTextSupplier; Button.TooltipSupplier = SupplyTooltip; Button.OnPressed += (_) => { OnButtonPressed?.Invoke(recipe.ID); }; } private Control? SupplyTooltip(Control sender) { return new RecipeTooltip(TooltipTextSupplier()); } }