/* * This file is sublicensed under MIT License * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT */ using Content.Shared._CP14.Skill; using Content.Shared._CP14.Workbench; using Content.Shared.Placeable; namespace Content.Server._CP14.Workbench; public sealed partial class CP14WorkbenchSystem { [Dependency] private readonly CP14SharedSkillSystem _skill = default!; private void OnCraft(Entity entity, ref CP14WorkbenchUiCraftMessage args) { if (!entity.Comp.Recipes.Contains(args.Recipe)) return; if (!_proto.TryIndex(args.Recipe, out var prototype)) return; StartCraft(entity, args.Actor, prototype); } private void UpdateUIRecipes(Entity entity) { var getResource = new CP14WorkbenchGetResourcesEvent(); RaiseLocalEvent(entity, getResource); var resources = getResource.Resources; var recipes = new List(); foreach (var recipeId in entity.Comp.Recipes) { if (!_proto.TryIndex(recipeId, out var indexedRecipe)) continue; var canCraft = true; foreach (var requirement in indexedRecipe.Requirements) { if (!requirement.CheckRequirement(EntityManager, _proto, resources)) { canCraft = false; break; } } var entry = new CP14WorkbenchUiRecipesEntry(recipeId, canCraft); recipes.Add(entry); } _userInterface.SetUiState(entity.Owner, CP14WorkbenchUiKey.Key, new CP14WorkbenchUiRecipesState(recipes)); } }