Code/CraftingStation.cs
using Sandbox;
using System;
using System.Collections.Generic;
/// <summary>
/// Place on any world object to make it a crafting station.
/// Press E to open the crafting panel with this station's recipes.
/// </summary>
public sealed class CraftingStation : Component
{
[Property] public string StationName { get; set; } = "Crafting Station";
[Property] public List<CraftingRecipe> Recipes { get; set; } = new();
/// <summary>
/// How far the player can be before the crafting panel auto-closes.
/// </summary>
[Property] public float CloseDistance { get; set; } = 200f;
/// <summary>
/// Fire this to open the crafting panel for this station.
/// PlayerPickupHandler calls it on E-press.
/// Subscribe in your HUD to handle it.
/// </summary>
public static Action<CraftingStation> OnStationOpened;
}