2024-01-24 12:58:57 +07:00
|
|
|
|
using System.Numerics;
|
2024-01-28 18:37:24 +07:00
|
|
|
|
using Content.Shared._White.Spline;
|
2024-01-24 12:58:57 +07:00
|
|
|
|
using Robust.Shared.GameStates;
|
|
|
|
|
|
using Robust.Shared.Serialization;
|
|
|
|
|
|
using Vector4 = Robust.Shared.Maths.Vector4;
|
|
|
|
|
|
|
2024-01-28 18:37:24 +07:00
|
|
|
|
namespace Content.Shared._White.Trail;
|
2024-01-24 12:58:57 +07:00
|
|
|
|
|
|
|
|
|
|
[NetworkedComponent]
|
|
|
|
|
|
public abstract partial class SharedTrailComponent : Component, ITrailSettings
|
|
|
|
|
|
{
|
|
|
|
|
|
[DataField("gravity")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Vector2 Gravity { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("lifetime", required: true)]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual float Lifetime { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("lengthStep")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual float LengthStep { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("randomWalk")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Vector2 MaxRandomWalk { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("scale", required: true)]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Vector2 Scale { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("texturePath")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual string? TexurePath { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("creationOffset")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Vector2 CreationOffset { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("сreationDistanceThresholdSquared")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual float СreationDistanceThresholdSquared { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("creationMethod")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual SegmentCreationMethod СreationMethod { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("gradient", required: true)]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Vector4[] Gradient { get; set; } = new[] { Vector4.One, new Vector4(1f, 1f, 1f, 0f) };
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("gradientIteratorType")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Spline4DType GradientIteratorType { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("splineIteratorType")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual Spline2DType SplineIteratorType { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[DataField("splineRendererType")]
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual TrailSplineRendererType SplineRendererType { get; set; }
|
2024-06-04 11:00:48 +00:00
|
|
|
|
|
|
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public virtual bool OptionsConcealable { get; set; }
|
2024-01-24 12:58:57 +07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Serializable, NetSerializable]
|
|
|
|
|
|
public sealed class TrailComponentState : ComponentState
|
|
|
|
|
|
{
|
|
|
|
|
|
public TrailSettings Settings;
|
|
|
|
|
|
|
|
|
|
|
|
public TrailComponentState(TrailSettings settings)
|
|
|
|
|
|
{
|
|
|
|
|
|
Settings = settings;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|