Files
crystall-punk-14/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs
Red 14b0fc5b4a Workbench and crystals (#1502)
* solutionResource

* fuck research system + QoL workbench update

* colorful quartz returns

* Refactor workbench skill requirements handling

Replaces the SkillRequired requirement with a direct RequiredSkills field on CP14WorkbenchRecipePrototype. Updates client and server logic to check skills directly, simplifying recipe skill checks and related UI logic.

* Initial commit

Add initial project files and setup.
2025-07-05 20:44:38 +03:00

72 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* This file is sublicensed under MIT License
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
*/
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Shared._CP14.Workbench;
[ImplicitDataDefinitionForInheritors]
[MeansImplicitUse]
public abstract partial class CP14WorkbenchCraftRequirement
{
/// <summary>
/// Here a check is made that the recipe as a whole can be fulfilled at the current moment. Do not add anything that affects gameplay here, and only perform checks here.
/// </summary>
/// <returns></returns>
public abstract bool CheckRequirement(EntityManager entManager,
IPrototypeManager protoManager,
HashSet<EntityUid> placedEntities);
/// <summary>
/// An event that is triggered after crafting. This is the place to put important things like removing items, spending stacks or other things.
/// </summary>
public virtual void PostCraft(EntityManager entManager,
IPrototypeManager protoManager,
HashSet<EntityUid> placedEntities)
{
}
public virtual double GetPrice(EntityManager entManager,
IPrototypeManager protoManager)
{
return 0;
}
/// <summary>
/// This text will be displayed in the description of the craft recipe. Write something like Wooden planks: х10 here
/// </summary>
public virtual string GetRequirementTitle(IPrototypeManager protoManager)
{
return string.Empty;
}
/// <summary>
/// You can specify an icon generated from an entity. It will support layering, colour changes and other layer options. Return null to disable.
/// </summary>
public virtual EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager)
{
return null;
}
/// <summary>
/// You can specify the texture directly. Return null to disable.
/// </summary>
public virtual SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager)
{
return null;
}
/// <summary>
/// Optional, allows you to repaint the icon.
/// </summary>
public virtual Color GetRequirementColor(IPrototypeManager protoManager)
{
return Color.White;
}
}