CatStation/Content.Shared/Chemistry/Components/HarvestableSolutionComponent.cs
AndrewFenriz 6dc1aae3f2
Refactor animal reagent/entity production (#45019)
* port 35190

* HungerProduction

* SolutionProducer

* update

* move to server

* small tweak for Shearable

* fix

* ProductionAttemptEvent

* EntityProducer

* update EggLayer

* EntityTable

* no more actions on EggLayer

* move popups to comp

* kill EggLayer

* new locale

* rename field

* upd

* SatiationType

* rename to SatiationProduction and lil docs

* EntityQuery

* more docs for god of docs

* small fix

* more queries
2026-08-16 19:15:52 +00:00

49 lines
1.5 KiB
C#

using Content.Shared.Chemistry.EntitySystems;
using Robust.Shared.GameStates;
using Robust.Shared.Utility;
namespace Content.Shared.Chemistry.Components;
/// <summary>
/// Allows a solution on an entity to be transferred into a held refillable container.
/// </summary>
[RegisterComponent, NetworkedComponent, Access(typeof(HarvestableSolutionSystem))]
public sealed partial class HarvestableSolutionComponent : Component
{
/// <summary>
/// The name of the solution to harvest.
/// </summary>
[DataField]
public string SolutionName = "default";
/// <summary>
/// How long harvesting takes.
/// </summary>
[DataField]
public TimeSpan Duration = TimeSpan.FromSeconds(5);
[DataField]
public LocId VerbText = "harvestable-solution-verb";
[DataField]
public SpriteSpecifier VerbIcon =
new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/spill.svg.192dpi.png"));
/// <summary>
/// Popup shown when the source has no harvestable solution available.
/// </summary>
[DataField]
public LocId EmptyMessage = "harvestable-solution-empty";
/// <summary>
/// Popup shown when the target container cannot accept more solution.
/// </summary>
[DataField]
public LocId TargetFullMessage = "harvestable-solution-target-full";
/// <summary>
/// Popup shown after solution is successfully transferred.
/// </summary>
[DataField]
public LocId SuccessMessage = "harvestable-solution-success";
}