chore: add build artifacts, map assets, and routing data
This commit is contained in:
@@ -19,72 +19,73 @@ class TacticalCrosshair extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
children: [
|
||||
// Reticle Canvas
|
||||
CustomPaint(
|
||||
size: Size.infinite,
|
||||
painter: _CrosshairPainter(
|
||||
isLocked: isAimLocked,
|
||||
return IgnorePointer(
|
||||
child: Stack(
|
||||
children: [
|
||||
// Reticle Canvas
|
||||
CustomPaint(
|
||||
size: Size.infinite,
|
||||
painter: _CrosshairPainter(
|
||||
isLocked: isAimLocked,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
// Top Azimuth & Mils Telemetry Strip
|
||||
Positioned(
|
||||
top: 16,
|
||||
left: 20,
|
||||
right: 20,
|
||||
child: Center(
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 6),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.black.withAlpha(204),
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
border: Border.all(
|
||||
color: isAimLocked ? const Color(0xFF22C55E) : const Color(0xFF00F0FF),
|
||||
width: 1.5,
|
||||
// Top Azimuth & Mils Telemetry Strip
|
||||
Positioned(
|
||||
top: 16,
|
||||
left: 20,
|
||||
right: 20,
|
||||
child: Center(
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 6),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.black.withAlpha(204),
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
border: Border.all(
|
||||
color: isAimLocked ? const Color(0xFF22C55E) : const Color(0xFF00F0FF),
|
||||
width: 1.5,
|
||||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: isAimLocked
|
||||
? const Color(0xFF22C55E).withAlpha(102)
|
||||
: const Color(0xFF00F0FF).withAlpha(102),
|
||||
blurRadius: 12,
|
||||
),
|
||||
],
|
||||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: isAimLocked
|
||||
? const Color(0xFF22C55E).withAlpha(102)
|
||||
: const Color(0xFF00F0FF).withAlpha(102),
|
||||
blurRadius: 12,
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.explore,
|
||||
size: 16,
|
||||
color: isAimLocked ? const Color(0xFF4ADE80) : const Color(0xFF00F0FF),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'السمت: ${AngleFormatter.format(trueAzimuthDeg, angleUnit, includeLabel: false)}',
|
||||
style: TextStyle(
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.explore,
|
||||
size: 16,
|
||||
color: isAimLocked ? const Color(0xFF4ADE80) : const Color(0xFF00F0FF),
|
||||
fontSize: 12.5,
|
||||
fontWeight: FontWeight.w900,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Container(width: 1, height: 14, color: Colors.white24),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'مغناطيسي: ${headingDeg.toStringAsFixed(0).padLeft(3, '0')}°',
|
||||
style: const TextStyle(
|
||||
color: Color(0xFF94A3B8),
|
||||
fontSize: 10.5,
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'الاتجاه: ${AngleFormatter.format(trueAzimuthDeg, angleUnit, includeLabel: false)}',
|
||||
style: TextStyle(
|
||||
color: isAimLocked ? const Color(0xFF4ADE80) : const Color(0xFF00F0FF),
|
||||
fontSize: 12.5,
|
||||
fontWeight: FontWeight.w900,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
const SizedBox(width: 8),
|
||||
Container(width: 1, height: 14, color: Colors.white24),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'مغناطيسي: ${headingDeg.toStringAsFixed(0).padLeft(3, '0')}°',
|
||||
style: const TextStyle(
|
||||
color: Color(0xFF94A3B8),
|
||||
fontSize: 10.5,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
// Target Aiming Name Label under reticle
|
||||
if (targetName != null)
|
||||
@@ -128,6 +129,7 @@ class TacticalCrosshair extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user