Files
OldThink/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideSystem.cs
Aviu00 c0cb414f17 Всякое (#104)
* - tweak: Revert mistakes.

* - tweak: Limit tempgun max temperature.

* - tweak: Gamemode tweaks.

* - tweak: Shuttle aren't messy anymore.

* - tweak: Vent critters spawn tweaks.

* - tweak: No stamina cost for mining weapons.

* - tweak: Better block.

* - add: Cool attack animations.

* - fix: Fix sprite.

* - add: Stun baton now shows charge.

* - tweak: Add cult to all in once.
2024-02-21 07:52:25 +00:00

39 lines
1.3 KiB
C#

using Content.Server.Temperature.Components;
using Content.Server.Temperature.Systems;
using Robust.Shared.Physics.Events;
namespace Content.Server._White.ChangeTemperatureOnCollide;
public sealed class ChangeTemperatureOnCollideSystem : EntitySystem
{
[Dependency] private readonly TemperatureSystem _temperature = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ChangeTemperatureOnCollideComponent, StartCollideEvent>(OnCollide);
}
private void OnCollide(EntityUid uid, ChangeTemperatureOnCollideComponent component, ref StartCollideEvent args)
{
if (args.OurFixtureId != component.FixtureID)
return;
if (!TryComp(args.OtherEntity, out TemperatureComponent? temperature))
return;
var curTemp = temperature.CurrentTemperature;
var newTemp = curTemp + component.Temperature;
if (curTemp < component.MinTemperature)
newTemp = MathF.Max(curTemp, newTemp);
else if (curTemp > component.MaxTemperature)
newTemp = MathF.Min(curTemp, newTemp);
else
newTemp = Math.Clamp(newTemp, component.MinTemperature, component.MaxTemperature);
_temperature.ForceChangeTemperature(args.OtherEntity, newTemp, temperature);
}
}