sandpypi/Sand.Core/ParticleDef.cs

64 lines
2.7 KiB
C#

namespace Sand.Core;
public sealed class ParticleDef
{
public string Id { get; init; } = "";
public string Name { get; init; } = "";
public ParticleKind Kind { get; init; } = ParticleKind.Solid;
public bool IsStatic { get; init; }
public bool IsSpecial { get; init; }
public float Mass { get; init; } = 1f;
public float Hardness { get; init; } = 0.5f;
public float Velocity { get; init; }
public float Conductivity { get; init; }
public bool Conductive { get; init; }
public float Flamability { get; init; }
public float Durability { get; init; } = 100f;
public float HeatCapacity { get; init; } = 1f;
public float Friction { get; init; }
public float Viscosity { get; init; }
public float Pressure { get; init; }
public float Temperature { get; init; } = 22f;
public string? Melt { get; init; }
public float? MeltTemperature { get; init; }
public string? Evaporate { get; init; }
public float? EvaporateTemperature { get; init; }
public string? Solidify { get; init; }
public float? SolidifyTemperature { get; init; }
public string? Freeze { get; init; }
public float? FreezeTemperature { get; init; }
public float BurnDuration { get; init; }
public float BurnTemperature { get; init; }
public float BurnRate { get; init; } = 1f;
public bool Burning { get; init; }
public float? Lifetime { get; init; }
public bool Explosive { get; init; }
public int ExplosionRadius { get; init; }
public Rgb24? ExplosionColor { get; init; }
public float ExplosionForce { get; init; }
public int ExplosionDuration { get; init; }
public float PressureResistance { get; init; }
public float PressureTolerance { get; init; }
public float PressureThreshold { get; init; }
public int PressureThresholdDuration { get; init; }
public string? Broken { get; init; }
public string? Produces { get; init; }
public string? ProducesOnDeath { get; init; }
public float HeatEmission { get; init; }
public float EnergyTransfer { get; init; }
public float Radius { get; init; }
public float ForceFalloff { get; init; }
public float Turbulence { get; init; }
public string[] Affects { get; init; } = [];
public bool IsWind { get; init; }
public float WindStrength { get; init; }
public float[]? WindDirection { get; init; }
public bool IsGravity { get; init; }
public float GravityStrength { get; init; }
public string? PullDirection { get; init; }
public bool IsRepulsor { get; init; }
public float RepulsionStrength { get; init; }
public string? PushDirection { get; init; }
public Rgb24 Color { get; init; } = new(255, 255, 255);
}