using Content.Shared.EntityList;
using Content.Shared.Whitelist;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.Farming;
///
/// Means that the plant can be harvested.
///
[RegisterComponent]
public sealed partial class CP14PlantGatherableComponent : Component
{
///
/// Whitelist for specifying the kind of tools can be used on a resource
/// Supports multiple tags.
///
[DataField(required: true)]
public EntityWhitelist ToolWhitelist = new();
///
/// YAML example below
/// (Tag1, Tag2, LootTableID1, LootTableID2 are placeholders for example)
/// --------------------
/// useMappedLoot: true
/// toolWhitelist:
/// tags:
/// - Tag1
/// - Tag2
/// loot:
/// Tag1: LootTableID1
/// Tag2: LootTableID2
///
[DataField]
public Dictionary>? Loot = new();
///
/// Random shift of the appearing entity during gathering
///
[DataField]
public float GatherOffset = 0.3f;
[DataField]
public TimeSpan Time = TimeSpan.FromSeconds(1f);
///
/// after harvesting, should the plant be completely removed?
///
[DataField]
public bool DeleteAfterHarvest = false;
///
/// after harvest, the growth level of the plant will be reduced by the specified value
///
[DataField]
public float GrowthCostHarvest = 0.4f;
///
/// what level of growth does a plant need to have before it can be harvested?
///
[DataField]
public float GrowthLevelToHarvest = 0.9f;
}