using Content.Shared.Database; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Botany.Components; /// /// Component for storing core plant data. /// Required as a component to store data specific to the plant type that should not be cloned when the plant's mutable state changes. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas: true)] public sealed partial class PlantDataComponent : Component { /// /// The noun for this type of seeds. E.g. for fungi this should probably be "spores" instead of "seeds". Also /// used to determine the name of seed packets. /// [DataField, AutoNetworkedField] public LocId Noun = "seeds-noun-seeds"; /// /// Name displayed when examining the hydroponics tray. Describes the actual plant, not the seed itself. /// [DataField(required: true), AutoNetworkedField] public LocId Name; /// /// The entity prototype that is spawned when this type of seed is extracted from produce using a seed extractor. /// [DataField(required: true), AutoNetworkedField] public EntProtoId PacketPrototype; /// /// The plant prototypes this plant may mutate into when prompted to. /// [DataField, AutoNetworkedField] public List MutationPrototypes = []; /// /// The entity prototypes that are spawned when this type of seed is harvested. /// [DataField(required: true), AutoNetworkedField] public List ProductPrototypes = []; /// /// Log impact for harvest operations. /// [DataField, AutoNetworkedField] public LogImpact? HarvestLogImpact; /// /// Log impact for plant operations. /// [DataField, AutoNetworkedField] public LogImpact? PlantLogImpact; }