| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- class DebugMonitor
- {
- protected bool m_IsUsingKBM;
-
- private Widget m_WidgetRoot;
- private TextWidget m_pWindowLabelText;
- private TextListboxWidget m_pNamesListboxWidget;
- private TextListboxWidget m_pValuesListboxWidget;
- private MultilineTextWidget m_pModifiersMultiTextWidget;
-
- void DebugMonitor()
- {
- m_WidgetRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/debug/day_z_debug_monitor.layout");
- m_WidgetRoot.Show(false);
-
- m_pWindowLabelText = TextWidget.Cast( m_WidgetRoot.FindAnyWidget("WindowLabel") );
- m_pNamesListboxWidget = TextListboxWidget.Cast( m_WidgetRoot.FindAnyWidget("NamesListboxWidget") );
- m_pValuesListboxWidget = TextListboxWidget.Cast( m_WidgetRoot.FindAnyWidget("ValuesListboxWidget") );
- m_pModifiersMultiTextWidget = MultilineTextWidget.Cast( m_WidgetRoot.FindAnyWidget("ModifiersMultilineTextWidget") );
- }
-
- void Init()
- {
- string version;
- g_Game.GetVersion(version);
-
- m_pNamesListboxWidget.AddItem("EXECUTABLE: ", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
- m_pValuesListboxWidget.SetItem(0, " " + version, NULL, 0);
-
- m_pNamesListboxWidget.AddItem("SCRIPTS: ", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
- m_pValuesListboxWidget.SetItem(1, " " + GetPBOAPI().GetPBOVersion("dta\\scripts.pbo"), NULL, 0);
- m_pNamesListboxWidget.AddItem("HEALTH:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
- m_pNamesListboxWidget.AddItem("BLOOD:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
- /*m_pNamesListboxWidget.AddItem("BODY TEMP:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);*/
-
- m_pNamesListboxWidget.AddItem("LAST DAMAGE:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
-
- m_pNamesListboxWidget.AddItem("MAP TILE:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
-
- m_pNamesListboxWidget.AddItem("POSITION:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
-
- m_pNamesListboxWidget.AddItem("", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);
-
- GetGame().GetMission().GetOnInputDeviceChanged().Insert(OnInputDeviceChanged);
- if (GetGame().GetInput().IsKeyboardConnected())
- m_IsUsingKBM = true;
- /*m_pNamesListboxWidget.AddItem("MODIFIERS:", NULL, 0);
- m_pValuesListboxWidget.AddItem("", NULL, 0);*/
-
- //m_DebugFloatsListWidget.AddItem(key,NULL,0);
- //m_DebugFloatsListWidget.SetItem(i,value.ToString(),NULL,1);
-
- m_WidgetRoot.Show(true);
- }
- void SetHealth(float value)
- {
- string health = string.Format(" %1", value.ToString());
- m_pValuesListboxWidget.SetItem(2, health, NULL, 0);
- }
- void SetBlood(float value)
- {
- string blood = string.Format(" %1", value.ToString());
- m_pValuesListboxWidget.SetItem(3, blood, NULL, 0);
- }
-
- void SetLastDamage(string value)
- {
- string lastDamage = string.Format(" %1", value);
- m_pValuesListboxWidget.SetItem(4, lastDamage, NULL, 0);
- }
-
- void SetPosition(vector value)
- {
- m_pValuesListboxWidget.SetItem(5, " " + CalculateMapTile(value), NULL, 0);
-
- string position = string.Format(" %1 %2 %3", value[0].ToString(), value[1].ToString(), value[2].ToString());
- m_pValuesListboxWidget.SetItem(6, position, NULL, 0);
-
- if (GetUApi().GetInputByID(UAUICopyDebugMonitorPos).LocalPress())
- {
- string adjusted = (value[0] + 200000).ToString() + " " + value[2].ToString();
- GetGame().CopyToClipboard(adjusted);
- }
-
- if (m_IsUsingKBM)
- m_pValuesListboxWidget.SetItem(7," (P to clipboard)", NULL, 0);
- else
- m_pValuesListboxWidget.SetItem(7,"", NULL, 0);
- }
-
- void Show()
- {
- m_WidgetRoot.Show(true);
- }
-
- void Hide()
- {
- m_WidgetRoot.Show(false);
- }
-
- string CalculateMapTile(vector pos)
- {
- string tile;
- float worldSize = GetGame().GetWorld().GetWorldSize();
-
- float tileX = Math.InverseLerp(0, worldSize, pos[0]);
- float tileY = Math.InverseLerp(0, worldSize, pos[2]);
-
- tile = GetTileFomFraction(tileX).ToString() + GetTileFomFraction(tileY).ToString();
-
- return tile;
- }
-
- int GetTileFomFraction(float fraction)
- {
- if (fraction < 0.25)
- return 0;
- else if (fraction < 0.5)
- return 1;
- else if (fraction < 0.75)
- return 2;
- else
- return 3;
-
- }
-
- void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
- {
- if (pInputDeviceType == EInputDeviceType.MOUSE_AND_KEYBOARD)
- m_IsUsingKBM = true;
- else
- m_IsUsingKBM = false;
- }
- };
-
|