public void Render(WorldRenderer wr) { if (!actor.IsInWorld || actor.IsDead) { return; } var health = actor.TraitOrDefault <IHealth>(); var screenPos = wr.Screen3DPxPosition(pos); var bounds = actor.VisualBounds; bounds.Offset((int)screenPos.X, (int)screenPos.Y); var start = new float3(bounds.Left + 1, bounds.Top, screenPos.Z); var end = new float3(bounds.Right - 1, bounds.Top, screenPos.Z); if (DisplayHealth) { DrawHealthBar(wr, health, start, end); } if (DisplayExtra) { DrawExtraBars(wr, start, end); } }
public void Render(WorldRenderer wr) { if (!actor.IsInWorld || actor.IsDead) return; var health = actor.TraitOrDefault<IHealth>(); var screenPos = wr.Screen3DPxPosition(pos); var bounds = actor.VisualBounds; bounds.Offset((int)screenPos.X, (int)screenPos.Y); var start = new float3(bounds.Left + 1, bounds.Top, screenPos.Z); var end = new float3(bounds.Right - 1, bounds.Top, screenPos.Z); if (DisplayHealth) DrawHealthBar(wr, health, start, end); if (DisplayExtra) DrawExtraBars(wr, start, end); }
public void Render(WorldRenderer wr) { var iz = 1 / wr.Viewport.Zoom; var screenPos = wr.Screen3DPxPosition(pos); var tl = screenPos + new float2(visualBounds.Left, visualBounds.Top); var br = screenPos + new float2(visualBounds.Right, visualBounds.Bottom); var tr = new float3(br.X, tl.Y, screenPos.Z); var bl = new float3(tl.X, br.Y, screenPos.Z); var u = new float2(4 * iz, 0); var v = new float2(0, 4 * iz); var wcr = Game.Renderer.WorldRgbaColorRenderer; wcr.DrawLine(new[] { tl + u, tl, tl + v }, iz, color, true); wcr.DrawLine(new[] { tr - u, tr, tr + v }, iz, color, true); wcr.DrawLine(new[] { br - u, br, br - v }, iz, color, true); wcr.DrawLine(new[] { bl + u, bl, bl - v }, iz, color, true); }
public void RenderDebugGeometry(WorldRenderer wr) { var size = font.Measure(text).ToFloat2(); var offset = wr.Screen3DPxPosition(pos) - 0.5f * size; Game.Renderer.WorldRgbaColorRenderer.DrawRect(offset, offset + size, 1 / wr.Viewport.Zoom, Color.Red); }