using System; using System.Collections.Generic; using System.Linq; using Cthangover.Core.Audio; using Cthangover.Core.Factories.Impls; using Cthangover.Core.Items; using Cthangover.Core.Scenes; using Cthangover.Core.Settings; using Cthangover.Core.UI; using Cthangover.Core.UI.Tool; using Cthangover.Core.UI.Inventory; using Godot; namespace Mods.Cooking.Workbench { /// /// Main cooking workbench UI panel that lists available recipes, /// shows descriptions and output previews, and performs the actual /// cooking operation. Recipes are loaded from /// filtered by and sorted so that /// craftable recipes (all ingredients present) appear before /// un-craftable ones. Selecting a recipe displays its translated /// description and output items via an . /// Cooking consumes ingredients, produces output items, advances /// in-game time, and plays a sound effect. /// public class WorkbenchPanel : Widget { private Control content; private RichTextLabel txtDescription; private InventoryBagBehaviour outputContainer; private List recipes = new(); protected override void OnceConstruct() { MouseFilter = MouseFilterEnum.Ignore; var leftTitle = GetNode