Debug visualization of docking port colliders
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
using Barotrauma.Networking;
|
||||
using FarseerPhysics;
|
||||
using FarseerPhysics.Collision;
|
||||
using FarseerPhysics.Dynamics;
|
||||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
|
||||
@@ -58,6 +61,41 @@ namespace Barotrauma.Items.Components
|
||||
rect.Width, (int)(rect.Height / 2 * dockingState)), Color.White);
|
||||
}
|
||||
}
|
||||
|
||||
if (bodies != null)
|
||||
{
|
||||
for (int i = 0; i < bodies.Length; i++)
|
||||
{
|
||||
var body = bodies[i];
|
||||
if (body == null) continue;
|
||||
|
||||
body.FixtureList[0].GetAABB(out AABB aabb, 0);
|
||||
|
||||
Vector2 bodyDrawPos = ConvertUnits.ToDisplayUnits(new Vector2(aabb.LowerBound.X, aabb.UpperBound.Y));
|
||||
if ((i == 1 || i == 3) && dockingTarget?.item?.Submarine != null) bodyDrawPos += dockingTarget.item.Submarine.Position;
|
||||
if ((i == 0 || i == 2) && item.Submarine != null) bodyDrawPos += item.Submarine.Position;
|
||||
bodyDrawPos.Y = -bodyDrawPos.Y;
|
||||
|
||||
GUI.DrawRectangle(spriteBatch,
|
||||
bodyDrawPos,
|
||||
ConvertUnits.ToDisplayUnits(aabb.Extents * 2),
|
||||
Color.Gray, false, 0.0f, 4);
|
||||
}
|
||||
}
|
||||
|
||||
if (doorBody != null && doorBody.Enabled)
|
||||
{
|
||||
doorBody.FixtureList[0].GetAABB(out AABB aabb, 0);
|
||||
|
||||
Vector2 bodyDrawPos = ConvertUnits.ToDisplayUnits(new Vector2(aabb.LowerBound.X, aabb.UpperBound.Y));
|
||||
if (item?.Submarine != null) bodyDrawPos += item.Submarine.Position;
|
||||
bodyDrawPos.Y = -bodyDrawPos.Y;
|
||||
|
||||
GUI.DrawRectangle(spriteBatch,
|
||||
bodyDrawPos,
|
||||
ConvertUnits.ToDisplayUnits(aabb.Extents * 2),
|
||||
Color.Gray, false, 0, 8);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user