CatStation/Content.Shared/Radiation/Components/RadiationSourceComponent.cs
Naxel ca95da6daa
Add parallelization to RadiationSystem.GridCast (#39173)
* add parallelization to RadiationSystem.GridCast

* change the preparation of sources receivers data

* failed integrationtest fix

* Update Content.Server/Radiation/Systems/RadiationSystem.GridCast.cs

Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>

* Change namespace to file-scoped

* Method signature changed

* null check changed

* null check changed. exactly

* Use TryComp instead of Resolve in UpdateSource

* replace TryComp with xform in UpdateSource

* replace DynamicTree with B2DynamicTree

* return comment

* Remove magic number

* Optimize radiation memory usage

* replace ThreadLocal to ArrayPool

* fix "false sharing" issue

* Revert "fix "false sharing" issue"

This reverts commit c0729f024f8e2df9d15f1cc9cc9bc1be4d4be312.

* cleanup

* inject entquery

---------

Co-authored-by: xNaxelx <46362288+xNaxelx@users.noreply.github.com>
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2026-04-05 04:39:00 +00:00

34 lines
1 KiB
C#

using Robust.Shared.Physics;
namespace Content.Shared.Radiation.Components;
/// <summary>
/// Irradiate all objects in range.
/// </summary>
[RegisterComponent]
public sealed partial class RadiationSourceComponent : Component
{
/// <summary>
/// Radiation intensity in center of the source in rads per second.
/// From there radiation rays will travel over distance and loose intensity
/// when hit radiation blocker.
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
[DataField("intensity")]
public float Intensity = 1;
/// <summary>
/// Defines how fast radiation rays will loose intensity
/// over distance. The bigger the value, the shorter range
/// of radiation source will be.
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
[DataField("slope")]
public float Slope = 0.5f;
[DataField, ViewVariables(VVAccess.ReadWrite)]
public bool Enabled = true;
[ViewVariables]
public DynamicTree.Proxy Proxy = DynamicTree.Proxy.Free;
}