Files
tbd-station-14/Content.Server/Botany/Components/PlantHolderComponent.cs
TemporalOroboros d75e743dd7 Solution Entities (#21916)
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class

* Switches over to the Solutions.Solution Solution

* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions

* Switches over to the Containers.XYZ namespace

* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods

* Start using SolutionSystem for Solution manipulation

* EnumerateSolutions

* Move TryGetMixableSolution

* Move EnsureSolution to Server

* Create Solution Entities

* Stop using obsolete solution system methods

* Fix prototype component tests

* Add using ..Audio.Systems; back

* Wrap solution container slots in ContainerSlots

* Actually add the slot to the solution container map

* Dirty SolutionContainerComponent when ensuring solutions

* Revert namespace changes

* Remerge SolutionSystem and SolutionContainerSystem

* SolutionContainerManagerComponent refactor

* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release

* Readd examine reagent sorting

* Fix errors

* Poke tests

* Fix solution names not being applied

* Fix WoolyComponent including statement

* Fix merge skew

* Fix compile errors

* Make reactions use solntities

* Reindent solution class namespace

* Field attribute changes

* AutoGenerateComponentState for SolutionContainerComponent

* SolutionContainerComponent -> ContainedSolutionComponent

* ref ReactionAttemptEvent

* Denetwork preinit solutions

* Misc 1

* Nullable TryGetSolution out vars

* Cache associated solutions

* Fix merge skew

* Use explicit regions in SharedSolutionContainerSystem.Capabilities

* Add debug assert

* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent

* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName

* SolutionComponent doc comments

* Implicit DataField names and property purge

* ReagentEffect DataField names

* Local variables for readability

* Sort using statements + Entity<T> event handlers

* Fix compile erros

* Fix compile errors

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2023-12-28 17:58:14 -08:00

98 lines
3.1 KiB
C#

using Content.Shared.Chemistry.Components;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Server.Botany.Components;
[RegisterComponent]
public sealed partial class PlantHolderComponent : Component
{
[DataField("nextUpdate", customTypeSerializer: typeof(TimeOffsetSerializer))]
public TimeSpan NextUpdate = TimeSpan.Zero;
[ViewVariables(VVAccess.ReadWrite), DataField("updateDelay")]
public TimeSpan UpdateDelay = TimeSpan.FromSeconds(3);
[DataField("lastProduce")]
public int LastProduce;
[ViewVariables(VVAccess.ReadWrite), DataField("missingGas")]
public int MissingGas;
[DataField("cycleDelay")]
public TimeSpan CycleDelay = TimeSpan.FromSeconds(15f);
[DataField("lastCycle", customTypeSerializer: typeof(TimeOffsetSerializer))]
public TimeSpan LastCycle = TimeSpan.Zero;
[ViewVariables(VVAccess.ReadWrite), DataField("updateSpriteAfterUpdate")]
public bool UpdateSpriteAfterUpdate;
[ViewVariables(VVAccess.ReadWrite), DataField("drawWarnings")]
public bool DrawWarnings = false;
[ViewVariables(VVAccess.ReadWrite), DataField("waterLevel")]
public float WaterLevel = 100f;
[ViewVariables(VVAccess.ReadWrite), DataField("nutritionLevel")]
public float NutritionLevel = 100f;
[ViewVariables(VVAccess.ReadWrite), DataField("pestLevel")]
public float PestLevel;
[ViewVariables(VVAccess.ReadWrite), DataField("weedLevel")]
public float WeedLevel;
[ViewVariables(VVAccess.ReadWrite), DataField("toxins")]
public float Toxins;
[ViewVariables(VVAccess.ReadWrite), DataField("age")]
public int Age;
[ViewVariables(VVAccess.ReadWrite), DataField("skipAging")]
public int SkipAging;
[ViewVariables(VVAccess.ReadWrite), DataField("dead")]
public bool Dead;
[ViewVariables(VVAccess.ReadWrite), DataField("harvest")]
public bool Harvest;
[ViewVariables(VVAccess.ReadWrite), DataField("sampled")]
public bool Sampled;
[ViewVariables(VVAccess.ReadWrite), DataField("yieldMod")]
public int YieldMod = 1;
[ViewVariables(VVAccess.ReadWrite), DataField("mutationMod")]
public float MutationMod = 1f;
[ViewVariables(VVAccess.ReadWrite), DataField("mutationLevel")]
public float MutationLevel;
[ViewVariables(VVAccess.ReadWrite), DataField("health")]
public float Health;
[ViewVariables(VVAccess.ReadWrite), DataField("weedCoefficient")]
public float WeedCoefficient = 1f;
[ViewVariables(VVAccess.ReadWrite), DataField("seed")]
public SeedData? Seed;
[ViewVariables(VVAccess.ReadWrite), DataField("improperHeat")]
public bool ImproperHeat;
[ViewVariables(VVAccess.ReadWrite), DataField("improperPressure")]
public bool ImproperPressure;
[ViewVariables(VVAccess.ReadWrite), DataField("improperLight")]
public bool ImproperLight;
[ViewVariables(VVAccess.ReadWrite), DataField("forceUpdate")]
public bool ForceUpdate;
[ViewVariables(VVAccess.ReadWrite), DataField("solution")]
public string SoilSolutionName = "soil";
[DataField]
public Entity<SolutionComponent>? SoilSolution = null;
}