1
0

FlammableComponent.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using Content.Shared.Alert;
  2. using Content.Shared.Damage;
  3. using Robust.Shared.Physics.Collision.Shapes;
  4. using Robust.Shared.Prototypes;
  5. namespace Content.Server.Atmos.Components
  6. {
  7. [RegisterComponent]
  8. public sealed partial class FlammableComponent : Component
  9. {
  10. [DataField]
  11. public bool Resisting;
  12. [ViewVariables(VVAccess.ReadWrite)]
  13. [DataField]
  14. public bool OnFire;
  15. [ViewVariables(VVAccess.ReadWrite)]
  16. [DataField]
  17. public float FireStacks;
  18. [ViewVariables(VVAccess.ReadWrite)]
  19. [DataField]
  20. public float MaximumFireStacks = 10f;
  21. [ViewVariables(VVAccess.ReadWrite)]
  22. [DataField]
  23. public float MinimumFireStacks = -10f;
  24. [ViewVariables(VVAccess.ReadWrite)]
  25. [DataField]
  26. public string FlammableFixtureID = "flammable";
  27. [ViewVariables(VVAccess.ReadWrite)]
  28. [DataField]
  29. public float MinIgnitionTemperature = 373.15f;
  30. [ViewVariables(VVAccess.ReadWrite)]
  31. [DataField]
  32. public bool FireSpread { get; private set; } = false;
  33. [ViewVariables(VVAccess.ReadWrite)]
  34. [DataField]
  35. public bool CanResistFire { get; private set; } = false;
  36. [DataField(required: true)]
  37. [ViewVariables(VVAccess.ReadWrite)]
  38. public DamageSpecifier Damage = new(); // Empty by default, we don't want any funny NREs.
  39. /// <summary>
  40. /// Used for the fixture created to handle passing firestacks when two flammable objects collide.
  41. /// </summary>
  42. [DataField]
  43. public IPhysShape FlammableCollisionShape = new PhysShapeCircle(0.35f);
  44. /// <summary>
  45. /// Should the component be set on fire by interactions with isHot entities
  46. /// </summary>
  47. [ViewVariables(VVAccess.ReadWrite)]
  48. [DataField]
  49. public bool AlwaysCombustible = false;
  50. /// <summary>
  51. /// Can the component anyhow lose its FireStacks?
  52. /// </summary>
  53. [ViewVariables(VVAccess.ReadWrite)]
  54. [DataField]
  55. public bool CanExtinguish = true;
  56. /// <summary>
  57. /// How many firestacks should be applied to component when being set on fire?
  58. /// </summary>
  59. [ViewVariables(VVAccess.ReadWrite)]
  60. [DataField]
  61. public float FirestacksOnIgnite = 2.0f;
  62. /// <summary>
  63. /// Determines how quickly the object will fade out. With positive values, the object will flare up instead of going out.
  64. /// </summary>
  65. [DataField, ViewVariables(VVAccess.ReadWrite)]
  66. public float FirestackFade = -0.1f;
  67. [DataField]
  68. public ProtoId<AlertPrototype> FireAlert = "Fire";
  69. }
  70. }