Plasma fueled radiation collectors (#19598)
* Fixes issue with solution regenerators * Update Solution.cs Removed excess whitespace * Undid file scoping to make this easier to review * Initial prototype * Adjusted coefficients * Removed unintentional changes from another PR * Undid unintentional change * Undid unintentional change * Added temperature modifier to power production * Guidebook entry and radiation collector low pressure warning * Reviewer requested changes
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
using Content.Server.Singularity.EntitySystems;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Atmos.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
|
||||
namespace Content.Server.Singularity.Components
|
||||
{
|
||||
@@ -33,5 +36,55 @@ namespace Content.Server.Singularity.Components
|
||||
/// Timestamp when machine can be deactivated again.
|
||||
/// </summary>
|
||||
public TimeSpan CoolDownEnd;
|
||||
|
||||
/// <summary>
|
||||
/// List of gases that will react to the radiation passing through the collector
|
||||
/// </summary>
|
||||
[DataField("radiationReactiveGases")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public List<RadiationReactiveGas>? RadiationReactiveGases;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Describes how a gas reacts to the collected radiation
|
||||
/// </summary>
|
||||
[DataDefinition]
|
||||
public sealed partial class RadiationReactiveGas
|
||||
{
|
||||
/// <summary>
|
||||
/// The reactant gas
|
||||
/// </summary>
|
||||
[DataField("reactantPrototype", required: true)]
|
||||
public Gas Reactant = Gas.Plasma;
|
||||
|
||||
/// <summary>
|
||||
/// Multipier for the amount of power produced by the radiation collector when using this gas
|
||||
/// </summary>
|
||||
[DataField("powerGenerationEfficiency")]
|
||||
public float PowerGenerationEfficiency = 1f;
|
||||
|
||||
/// <summary>
|
||||
/// Controls the rate (molar percentage per rad) at which the reactant breaks down when exposed to radiation
|
||||
/// </summary>
|
||||
/// /// <remarks>
|
||||
/// Set to zero if the reactant does not deplete
|
||||
/// </remarks>
|
||||
[DataField("reactantBreakdownRate")]
|
||||
public float ReactantBreakdownRate = 1f;
|
||||
|
||||
/// <summary>
|
||||
/// A byproduct gas that is generated when the reactant breaks down
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Leave null if the reactant no byproduct gas is to be formed
|
||||
/// </remarks>
|
||||
[DataField("byproductPrototype")]
|
||||
public Gas? Byproduct = null;
|
||||
|
||||
/// <summary>
|
||||
/// The molar ratio of the byproduct gas generated from the reactant gas
|
||||
/// </summary>
|
||||
[DataField("molarRatio")]
|
||||
public float MolarRatio = 1f;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user