51 layoutRoot =
GetGame().GetWorkspace().CreateWidgets(
"gui/layouts/day_z_map.layout");
63 m_MapToolsContainer = layoutRoot.FindAnyWidget(
"Map_Tools_Container");
64 m_MapToolsContainer.GetScript(m_LegendResizer);
66 m_MapWidgetInstance =
MapWidget.Cast(layoutRoot.FindAnyWidget(
"Map"));
67 m_GPSMarker = layoutRoot.FindAnyWidget(
"GPSMarkerCircle");
68 m_GPSMarkerArrow = ImageWidget.Cast(layoutRoot.FindAnyWidget(
"GPSMarkerArrow"));
69 m_UpperLegendContainer = layoutRoot.FindAnyWidget(
"Tools_Extra");
71 m_ToolsCompassBase = layoutRoot.FindAnyWidget(
"Tools_Compass_Base");
72 m_ToolsCompassArrow = ImageWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_Compass_Arrow"));
73 m_ToolsCompassAzimuth = TextWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_Compass_Azimuth"));
74 m_ToolsGPSXText = TextWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_GPS_X_Value"));
75 m_ToolsGPSYText = TextWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_GPS_Y_Value"));
76 m_ToolsGPSElevationText = TextWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_GPS_Elevation_Value"));
77 m_ToolsScaleContourText = TextWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_Scale_Contour_Value"));
78 m_ToolsScaleCellSizeText = TextWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_Scale_CellSize_Value"));
79 m_ToolsScaleCellSizeCanvas = CanvasWidget.Cast(layoutRoot.FindAnyWidget(
"Tools_Scale_CellSize_Canvas"));
80 m_ToolbarPanel = layoutRoot.FindAnyWidget(
"toolbar_bg");
82 float canvasHeight = 0;
83 m_ToolsScaleCellSizeCanvas.GetSize(m_ToolScaleCellSizeCanvasWidth, canvasHeight);
85 if (m_MapWidgetInstance)
90 if (player && !player.GetLastMapInfo(scale, mapPosition))
92 vector tempPosition =
GetGame().ConfigGetVector(
string.Format(
"CfgWorlds %1 centerPosition",
GetGame().GetWorldName()));
94 mapPosition =
Vector(tempPosition[0], tempPosition[1], tempPosition[2]);
97 m_MapWidgetInstance.SetScale(scale);
98 m_MapWidgetInstance.SetMapPos(mapPosition);
100 m_HasCompass =
false;
110 m_MapNavigationBehaviour = player.GetMapNavigationBehaviour();
111 if (m_MapNavigationBehaviour)
126 m_MapWidgetInstance.SetMapPos(m_MapNavigationBehaviour.GetPositionReal());
141 if ((!m_HasGPS && !m_HasCompass) || !
CfgGameplayHandler.GetMapDisplayNavigationInfo())
148 m_MapMenuHandler =
new MapHandler(m_MapWidgetInstance);
152 m_Hud.ShowHudUI(
false);
153 m_Hud.ShowQuickbarUI(
false);
158 m_MapToolsContainer.GetScreenPos(
x,
y);
159 m_ToolsContainerPos0[0] =
x;
160 m_ToolsContainerPos0[1] =
y;
221 super.Update(timeslice);
222 m_ToolsScaleCellSizeCanvas.Clear();
226 if (m_MapWidgetInstance)
230 m_MapWidgetInstance.RemoveChild(m_Images);
235 m_ToolsScaleContourText.SetText(
string.Format(
"%1 m", m_MapWidgetInstance.GetContourInterval()));
237 float rulerMaxDistance;
239 ProcessDistanceAndUnits(m_MapWidgetInstance.GetCellSize(m_ToolScaleCellSizeCanvasWidth), rulerMaxDistance, rulerUnits);
240 m_ToolsScaleCellSizeText.SetText(
string.Format(
"%1%2", rulerMaxDistance, rulerUnits));
242 if (m_MapNavigationBehaviour)
244 vector mapPos = m_MapWidgetInstance.MapToScreen(m_MapNavigationBehaviour.GetPositionReal());
245 float scale = 1 - m_MapWidgetInstance.GetScale();
249 vector rot = player.GetYawPitchRoll();
250 float angle =
Math.Round(rot[0]);
256 m_GPSMarkerArrow.SetRotation(0, 0, angle);
257 m_ToolsCompassArrow.SetRotation(0, 0, angle);
258 m_ToolsCompassAzimuth.SetText(
string.Format(
"%1°", angle));
264 m_GPSMarker.SetSize(scale * 100, scale * 100);
265 m_GPSMarkerArrow.SetSize(scale * 100, scale * 100);
267 m_GPSMarker.GetSize(sizeX, sizeY);
268 sizeX =
Math.Round(sizeX);
269 sizeY =
Math.Round(sizeY);
270 m_GPSMarker.SetPos(mapPos[0] - sizeX/2, mapPos[1] - sizeY/2);
271 m_GPSMarkerArrow.SetPos(mapPos[0] - sizeX/2, mapPos[1] - sizeY/2);
273 if (coords.Count() == m_MapNavigationBehaviour.DISPLAY_GRID_POS_MAX_CHARS_COUNT * 2 && coords[0] >= 0)
275 m_ToolsGPSXText.SetText(
string.Format(COORD_FORMAT, coords[0], coords[1], coords[2]));
276 m_ToolsGPSYText.SetText(
string.Format(COORD_FORMAT, coords[3], coords[4], coords[5]));
280 m_ToolsGPSXText.SetText(
"-.--");
281 m_ToolsGPSYText.SetText(
"-.--");
284 m_ToolsGPSElevationText.SetText(
string.Format(
"%1m",
Math.Round(player.GetPosition()[1])));
288 m_ToolsGPSXText.SetText(
"-.--");
289 m_ToolsGPSYText.SetText(
"-.--");
290 m_ToolsGPSElevationText.SetText(
"----m");
295 bool isClosedWithShortcut =
CfgGameplayHandler.GetMapIgnoreMapOwnership() &&
GetUApi().GetInputByID(UAMapToggle).LocalPress();
296 if (!m_IsOpenning && (
GetUApi().GetInputByID(UAUIBack).LocalPress() || isClosedWithShortcut))
300 player.SetLastMapInfo(m_MapWidgetInstance.GetScale(), m_MapWidgetInstance.GetMapPos());
306 m_IsOpenning =
false;
413 float sizeYShift = 8;
415 int lineColor = FadeColors.BLACK;
419 lineColor = FadeColors.BLACK;
422 lineColor = FadeColors.LIGHT_GREY;
427 m_ToolsScaleCellSizeCanvas.DrawLine(0, sizeYShift, segmentLength, sizeYShift, SCALE_RULER_LINE_WIDTH, lineColor);
429 else if (i == SCALE_RULER_NUM_SEGMENTS)
431 m_ToolsScaleCellSizeCanvas.DrawLine(segmentLength * (SCALE_RULER_NUM_SEGMENTS - 1), sizeYShift, segmentLength * SCALE_RULER_NUM_SEGMENTS, sizeYShift, SCALE_RULER_LINE_WIDTH, lineColor);
435 m_ToolsScaleCellSizeCanvas.DrawLine(segmentLength * (i - 1), sizeYShift, segmentLength * i, sizeYShift, SCALE_RULER_LINE_WIDTH, lineColor);
494 if (m_ToolbarPanel.IsVisible())
497 m_ToolbarPanel.GetScreenSize(sizeX,sizeY);
498 m_MapToolsContainer.SetScreenPos(m_ToolsContainerPos0[0],m_ToolsContainerPos0[1] - sizeY);
501 m_MapToolsContainer.SetScreenPos(m_ToolsContainerPos0[0],m_ToolsContainerPos0[1]);
proto native vector Vector(float x, float y, float z)
Vector constructor from components.