AtmosDebugOverlay fixes (#5099)
This commit is contained in:
@@ -62,8 +62,8 @@ namespace Content.Client.Atmos.EntitySystems
|
|||||||
base.Shutdown();
|
base.Shutdown();
|
||||||
_mapManager.OnGridRemoved -= OnGridRemoved;
|
_mapManager.OnGridRemoved -= OnGridRemoved;
|
||||||
var overlayManager = IoCManager.Resolve<IOverlayManager>();
|
var overlayManager = IoCManager.Resolve<IOverlayManager>();
|
||||||
if(!overlayManager.HasOverlay<GasTileOverlay>())
|
if (overlayManager.HasOverlay<AtmosDebugOverlay>())
|
||||||
overlayManager.RemoveOverlay<GasTileOverlay>();
|
overlayManager.RemoveOverlay<AtmosDebugOverlay>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset(RoundRestartCleanupEvent ev)
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
|
|||||||
@@ -32,10 +32,7 @@ namespace Content.Client.Atmos.Overlays
|
|||||||
var drawHandle = args.WorldHandle;
|
var drawHandle = args.WorldHandle;
|
||||||
|
|
||||||
var mapId = _eyeManager.CurrentMap;
|
var mapId = _eyeManager.CurrentMap;
|
||||||
var eye = _eyeManager.CurrentEye;
|
var worldBounds = _eyeManager.GetWorldViewbounds();
|
||||||
|
|
||||||
var worldBounds = Box2.CenteredAround(eye.Position.Position,
|
|
||||||
_clyde.ScreenSize / (float) EyeManager.PixelsPerMeter * eye.Zoom);
|
|
||||||
|
|
||||||
// IF YOU ARE ABOUT TO INTRODUCE CHUNKING OR SOME OTHER OPTIMIZATION INTO THIS CODE:
|
// IF YOU ARE ABOUT TO INTRODUCE CHUNKING OR SOME OTHER OPTIMIZATION INTO THIS CODE:
|
||||||
// -- THINK! --
|
// -- THINK! --
|
||||||
@@ -49,6 +46,8 @@ namespace Content.Client.Atmos.Overlays
|
|||||||
if (!_atmosDebugOverlaySystem.HasData(mapGrid.Index))
|
if (!_atmosDebugOverlaySystem.HasData(mapGrid.Index))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
drawHandle.SetTransform(mapGrid.WorldMatrix);
|
||||||
|
|
||||||
for (var pass = 0; pass < 2; pass++)
|
for (var pass = 0; pass < 2; pass++)
|
||||||
{
|
{
|
||||||
foreach (var tile in mapGrid.GetTilesIntersecting(worldBounds))
|
foreach (var tile in mapGrid.GetTilesIntersecting(worldBounds))
|
||||||
@@ -95,7 +94,7 @@ namespace Content.Client.Atmos.Overlays
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
res = res.WithAlpha(0.75f);
|
res = res.WithAlpha(0.75f);
|
||||||
drawHandle.DrawRect(Box2.FromDimensions(mapGrid.LocalToWorld(new Vector2(tile.X, tile.Y)), new Vector2(1, 1)), res);
|
drawHandle.DrawRect(Box2.FromDimensions(new Vector2(tile.X, tile.Y), new Vector2(1, 1)), res);
|
||||||
}
|
}
|
||||||
else if (pass == 1)
|
else if (pass == 1)
|
||||||
{
|
{
|
||||||
@@ -109,8 +108,8 @@ namespace Content.Client.Atmos.Overlays
|
|||||||
var atmosAngleOfs = atmosAngle.ToVec() * 0.45f;
|
var atmosAngleOfs = atmosAngle.ToVec() * 0.45f;
|
||||||
var atmosAngleOfsR90 = new Vector2(atmosAngleOfs.Y, -atmosAngleOfs.X);
|
var atmosAngleOfsR90 = new Vector2(atmosAngleOfs.Y, -atmosAngleOfs.X);
|
||||||
var tileCentre = new Vector2(tile.X + 0.5f, tile.Y + 0.5f);
|
var tileCentre = new Vector2(tile.X + 0.5f, tile.Y + 0.5f);
|
||||||
var basisA = mapGrid.LocalToWorld(tileCentre + atmosAngleOfs - atmosAngleOfsR90);
|
var basisA = tileCentre + atmosAngleOfs - atmosAngleOfsR90;
|
||||||
var basisB = mapGrid.LocalToWorld(tileCentre + atmosAngleOfs + atmosAngleOfsR90);
|
var basisB = tileCentre + atmosAngleOfs + atmosAngleOfsR90;
|
||||||
drawHandle.DrawLine(basisA, basisB, Color.Azure);
|
drawHandle.DrawLine(basisA, basisB, Color.Azure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -125,18 +124,18 @@ namespace Content.Client.Atmos.Overlays
|
|||||||
var atmosAngle = data.PressureDirection.ToAngle() - Angle.FromDegrees(90);
|
var atmosAngle = data.PressureDirection.ToAngle() - Angle.FromDegrees(90);
|
||||||
var atmosAngleOfs = atmosAngle.ToVec() * 0.4f;
|
var atmosAngleOfs = atmosAngle.ToVec() * 0.4f;
|
||||||
var tileCentre = new Vector2(tile.X + 0.5f, tile.Y + 0.5f);
|
var tileCentre = new Vector2(tile.X + 0.5f, tile.Y + 0.5f);
|
||||||
var basisA = mapGrid.LocalToWorld(tileCentre);
|
var basisA = tileCentre;
|
||||||
var basisB = mapGrid.LocalToWorld(tileCentre + atmosAngleOfs);
|
var basisB = tileCentre + atmosAngleOfs;
|
||||||
drawHandle.DrawLine(basisA, basisB, Color.Blue);
|
drawHandle.DrawLine(basisA, basisB, Color.Blue);
|
||||||
}
|
}
|
||||||
// -- Excited Groups --
|
// -- Excited Groups --
|
||||||
if (data.InExcitedGroup)
|
if (data.InExcitedGroup)
|
||||||
{
|
{
|
||||||
var tilePos = new Vector2(tile.X, tile.Y);
|
var tilePos = new Vector2(tile.X, tile.Y);
|
||||||
var basisA = mapGrid.LocalToWorld(tilePos);
|
var basisA = tilePos;
|
||||||
var basisB = mapGrid.LocalToWorld(tilePos + new Vector2(1.0f, 1.0f));
|
var basisB = tilePos + new Vector2(1.0f, 1.0f);
|
||||||
var basisC = mapGrid.LocalToWorld(tilePos + new Vector2(0.0f, 1.0f));
|
var basisC = tilePos + new Vector2(0.0f, 1.0f);
|
||||||
var basisD = mapGrid.LocalToWorld(tilePos + new Vector2(1.0f, 0.0f));
|
var basisD = tilePos + new Vector2(1.0f, 0.0f);
|
||||||
drawHandle.DrawLine(basisA, basisB, Color.Cyan);
|
drawHandle.DrawLine(basisA, basisB, Color.Cyan);
|
||||||
drawHandle.DrawLine(basisC, basisD, Color.Cyan);
|
drawHandle.DrawLine(basisC, basisD, Color.Cyan);
|
||||||
}
|
}
|
||||||
@@ -145,6 +144,8 @@ namespace Content.Client.Atmos.Overlays
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drawHandle.SetTransform(Matrix3.Identity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user