1class PluginUniversalTemperatureSourceClient
extends PluginBase
3 const int MAX_SIMULTANEOUS_UTS = 10;
42 for (
int i = 0; i < MAX_SIMULTANEOUS_UTS; i++)
44 m_RootWidget[i] =
g_Game.GetWorkspace().CreateWidgets(
"gui/layouts/debug/day_z_debug_remoteinfo.layout");
54 float fullRange = utsd.GetValue(1).ToFloat();
55 float maxRange = utsd.GetValue(2).ToFloat();
56 float temp = utsd.GetValue(3).ToFloat();
57 vector sphPos = utsd.GetValue(0).ToVector();
68 fullRangeColor = 0x1fefefef;
69 maxRangeColor = 0x1fefefef;
81 DbgUI.Begin(
"Universal Temp Sources", 10, 300);
104 if (
vector.DistanceSq(m_Player.GetPosition(), utsd.GetValue(0).ToVector()) >
Math.SqrFloat(utsd.GetValue(2).ToFloat()))
110 float min = MiscGameplayFunctions.GetMinValue(utsTemperatures);
111 float max = MiscGameplayFunctions.GetMaxValue(utsTemperatures);
113 if (max > 0 && min < 0)
126 float distance =
vector.Distance(m_Player.GetPosition(), utsd.GetValue(0).ToVector());
127 distance =
Math.Max(distance, 0.1);
128 float temperature = 0;
131 if (distance > utsd.GetValue(1).ToFloat())
133 float distFactor =
Math.InverseLerp(utsd.GetValue(2).ToFloat(), utsd.GetValue(1).ToFloat(), distance);
134 distFactor =
Math.Max(distFactor, 0.0);
135 temperature = utsd.GetValue(3).ToFloat() * distFactor;
139 temperature = utsd.GetValue(3).ToFloat();
149 for (
int i = 0; i < MAX_SIMULTANEOUS_UTS; i++)
159 for (; i < utsDebugCount && i < MAX_SIMULTANEOUS_UTS; ++i)
162 vector pos = utsd.GetValue(0).ToVector();
163 vector screen_pos_stats =
g_Game.GetScreenPos(pos +
"0 0 0");
164 vector screen_pos_damage =
g_Game.GetScreenPos(pos +
"0 2 0");
165 m_RootWidget[i].SetPos(screen_pos_stats[0], screen_pos_stats[1]);
167 if (screen_pos_stats[2] > 0 && screen_pos_stats[0] > 0 && screen_pos_stats[1] > 0)
178 for (; i < MAX_SIMULTANEOUS_UTS; ++i)
193 int numPairs = utsd.PairsCount();
194 for (
int i = 0; i < numPairs; ++i)
202 m_StatListWidgets[rowIndex].SetItem(numPairs,
vector.Distance(m_Player.GetPosition(), utsd.GetValue(0).ToVector()).ToString(), null, 1);
219 rpc.Send(player,
ERPCs.DEV_REQUEST_UTS_DEBUG,
true, player.GetIdentity());
228 PrintString(
"-------------------------------------");
230 PrintString(
"-------------------------------------");
Plugin interface for controlling of agent pool system.
void UpdateStatWidget(int rowIndex, UTemperatureSourceDebug utsd)
void RequestUniversalTemperatureSources(PlayerBase player, int enable)
void PluginUniversalTemperatureSourceClient()
void ProcessUniversalTemperatureSources()
void PluginUniversalTemperatureSourceServer()
TextWidget m_HeaderWidget[MAX_SIMULTANEOUS_UTS]
ref array< ref UTemperatureSourceDebug > m_UTemperatureSourceDebugs
TextListboxWidget m_StatListWidgets[MAX_SIMULTANEOUS_UTS]
void OnRPC(ParamsReadContext ctx)
float CalcTemperatureFromTemperatureSource(notnull UTemperatureSourceDebug utsd)
float m_UTSAverageTemperature
override void OnUpdate(float delta_time)
void EnableWidgets(bool enable)
ref Widget m_RootWidget[MAX_SIMULTANEOUS_UTS]
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Serializer ParamsReadContext
class array< Class T > PrintString