3 [
Attribute(
"{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/BallisticTable.layout",
UIWidgets.ResourceNamePicker,
"Layout name",
"layout",
category:
"Layouts")]
6 [
Attribute(
"{F75FE2331AF70BF8}UI/layouts/Gadgets/BallisticTable/ContentRowLayout.layout",
UIWidgets.ResourceNamePicker,
"Layout name",
"layout",
category:
"Layouts")]
9 [
Attribute(
"{801F5CED215A1CFF}UI/layouts/Gadgets/BallisticTable/Content.layout",
UIWidgets.ResourceNamePicker,
"Layout name",
"layout",
category:
"Layouts")]
24 [
Attribute(
"0",
desc:
"Weights that will be applied to the grid of contents and thus impact how much space each cell will have in relation to other cells",
category:
"Layouts")]
27 [
Attribute(
"%1 m",
desc:
"Format for displaying average dispersion.")]
46 if (!super.GenerateBallisticData())
57 if (numberOfEntries < 1)
61 if (!resource.IsValid())
77 array<float> windageValues;
78 float distance, travelTime, aimHeight, angle, angleRad;
79 for (
int i; i < numberOfEntries; i++)
82 if (!values || values.IsEmpty())
89 if (travelTime > 0 && aimHeight > 0)
93 angle =
Math.Round(
Math.AbsFloat(angle - values[1]));
94 travelTime =
Math.AbsFloat(travelTime - values[2]);
95 travelTime = travelTime.ToString(0,1).ToFloat();
103 values.Insert(angle);
104 values.Insert(travelTime);
107 if (windageValues && !windageValues.IsEmpty())
109 values.Insert(
Math.Round(windageValues[2]));
110 values.Insert(
Math.Round(windageValues[5] * 10) * 0.1);
112 values.Insert(
Math.Round(windageValues[4]));
123 override void DrawPageData(notnull
Widget root, notnull
IEntity surfaceEntity, notnull SCR_DataDisplayGadgetComponent drawingGadget,
int pageID)
131 protected void LoadDataPage(notnull
Widget root, notnull SCR_DataDisplayGadgetComponent drawingGadget,
int pageID)
154 ammoTypeIcon.SetVisible(
false);
158 ammoTypeIcon.SetVisible(
true);
165 if (dispersionContainer)
179 for (
int i =
id; i <= lastEntry; i++)
181 contentHolder =
AddRow(rowHolder, i);
185 numberOfValues = ballisticData.
GetValues(i, values);
186 if (numberOfValues < 1)
189 for (
int valueId; valueId < maxNumberOfColumns; valueId++)
193 else if (valueId == 2)
194 cellText = values[valueId].ToString(0, 1);
196 cellText = values[valueId].ToString();
198 AddCell(contentHolder, cellText, valueId);
204 pageNumber.SetText(
string.Format(drawingGadget.PAGE_NUMBER_FORMAT, (pageID + 1), drawingGadget.GetNumberOfPages()));
215 Widget contentContaier = root.GetChildren();
218 contentContaier.RemoveFromHierarchy();
219 delete contentContaier;
223 if (!contentContaier)
231 Widget child = rowHolder.FindAnyWidgetById(0);
235 nextChild = child.GetSibling();
237 child.RemoveFromHierarchy();
255 layout.RemoveFromHierarchy();
261 contentHolder.SetColumnFillWeight(i, weight);
264 return contentHolder;
279 layout.RemoveFromHierarchy();
283 textWidget.SetText(text);
ArmaReforgerScripted GetGame()
UI layouts Menus CleanSweep CleanSweepAreaSelection layout
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Object holding reference to resource. In destructor release the resource.
int GetValues(int id, out array< float > values)
void SetValues(int id, notnull array< float > newValues)
array< float > GetBallisticValuesForClosestRange(int range, out int id=-1)
float m_fProjectileInitSpeedCoef
ResourceName m_sProjectilePrefab
SCR_EOpticsAngleUnits m_eUnitType
ResourceName m_sAmmoTypeImageSet
string m_sAmmoTypeQuadName
float m_fStandardDispersion
static float ConvertFromRadians(float radianAngleFrom, SCR_EOpticsAngleUnits toUnitType)
static float ConvertToRadians(float angleFrom, SCR_EOpticsAngleUnits fromUnitType)
static SCR_ProjectileWindTable GetProjectileWindageData(notnull IEntity projectile)
array< float > GetDataByAngle(float angle, float windSpeed=10, float initSpeedCoef=1)
override bool GenerateBallisticData()
void LoadDataPage(notnull Widget root, notnull SCR_DataDisplayGadgetComponent drawingGadget, int pageID)
Method used to add widgets with ballistic data for currently selected page.
bool m_bDataExtensionCompleted
bool m_bReplaceZerosWithDash
const string TITLE_LABEL_NAME
LocalizedString m_sAverageDispersionFormat
ResourceName m_sLayoutName
const string CONTENT_LABEL_NAME
const string ROW_HOLDER_NAME
const string CONTENT_HOLDER_NAME
ResourceName m_sCellPrefab
const string DISPERSION_VALUE_CONTAINER_NAME
ref array< float > m_aGridFillWeights
Widget AddCell(notnull Widget parentWidget, string text, int columnID=0)
Meant to add a single cell.
int m_iElevationChangeDownRange
const string EMPTY_CELL_TEXT
void ClearDataPage(notnull Widget root)
Widget AddRow(notnull Widget parentWidget, int rowID=0)
Meant to add a single row.
ResourceName m_sRowPrefab
override void DrawPageData(notnull Widget root, notnull IEntity surfaceEntity, notnull SCR_DataDisplayGadgetComponent drawingGadget, int pageID)
const string AMMO_TYPE_NAME
const string STATIC_WIDGET_INDICATOR
SCR_FieldOfViewSettings Attribute