Improves AirtightComponent.

- Atmos now nulls air in fully airblocked tiles ONLY if one of the airtight entities in it has NoAirWhenFullyAirBlocked to true.
- Fixes edge firelocks atmos airtight direction
- Fixes atmos debug overlay not accounting for angle 0 being south.
This commit is contained in:
Vera Aguilera Puerto
2021-03-08 14:57:05 +01:00
parent ca8a2e4502
commit d86623eed7
7 changed files with 35 additions and 10 deletions

View File

@@ -105,7 +105,8 @@ namespace Content.Client.Atmos
{
if (data.BlockDirection.HasFlag(dir))
{
var atmosAngle = dir.ToAngle();
// Account for South being 0.
var atmosAngle = dir.ToAngle() - Angle.FromDegrees(90);
var atmosAngleOfs = atmosAngle.ToVec() * 0.45f;
var atmosAngleOfsR90 = new Vector2(atmosAngleOfs.Y, -atmosAngleOfs.X);
var tileCentre = new Vector2(tile.X + 0.5f, tile.Y + 0.5f);
@@ -121,7 +122,8 @@ namespace Content.Client.Atmos
// -- Pressure Direction --
if (data.PressureDirection != AtmosDirection.Invalid)
{
var atmosAngle = data.PressureDirection.ToAngle();
// Account for South being 0.
var atmosAngle = data.PressureDirection.ToAngle() - Angle.FromDegrees(90);
var atmosAngleOfs = atmosAngle.ToVec() * 0.4f;
var tileCentre = new Vector2(tile.X + 0.5f, tile.Y + 0.5f);
var basisA = mapGrid.LocalToWorld(tileCentre);