3 float m_UpdateInterval = 1.0;
4 float m_TemperatureItemCap =
GameConstants.ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE;
6 float m_TemperatureCap =
float.MAX;
10 bool m_EnableOnTemperatureControl =
false;
11 float m_ActiveTemperatureThreshold = 0.0;
12 float m_InactiveTemperatureThreshold = 0.0;
14 bool m_Updateable =
false;
15 bool m_ManualUpdate =
false;
16 bool m_IsWorldOverriden =
true;
22 bool m_AffectStat =
false;
23 float m_TemperatureMin = 0;
24 float m_TemperatureMax = 100;
27class UniversalTemperatureSourceResult
37class UniversalTemperatureSourceTimer :
Timer
43 GetGame().GameScript.CallFunctionParams(m_target, m_function, null, m_params);
47 GetGame().GameScript.CallFunction(m_target, m_function, null, 0);
57 void SetParams(
Param params)
67 private float m_ParentTemperaturePrevious;
69 protected bool m_Active
70 protected ref UniversalTemperatureSourceTimer
m_Timer;
80 m_ResultValues =
new UniversalTemperatureSourceResult();
81 m_Timer =
new UniversalTemperatureSourceTimer();
92 pParent.SetUniversalTemperatureSource(
this);
107 m_Settings.m_TemperatureCap +=
g_Game.GetMission().GetWorldData().GetUniversalTemperatureSourceCapModifier();
163 m_Lambda.OnUTSActivate();
165 m_Lambda.OnUTSDeactivate();
173 if (pActive && !
m_Timer.IsRunning())
195 if (settings.m_EnableOnTemperatureControl)
197 float parentTemperature = GetParent().GetTemperature();
198 float temperatureDifference = parentTemperature - m_ParentTemperaturePrevious;
200 if (parentTemperature >= settings.m_ActiveTemperatureThreshold && temperatureDifference > 0)
203 if (parentTemperature < settings.m_InactiveTemperatureThreshold && temperatureDifference < 0)
206 m_ParentTemperaturePrevious = parentTemperature;
214 settings.m_Position = settings.m_Parent.GetUniversalTemperatureSourcePosition();
216 lambda.
Execute(settings, m_ResultValues);
237 return GetTemperatureRaw();
243 return m_ResultValues.m_Temperature;
253 const string DELIMITER_DATA =
"|";
297 string GetName(
int pIndex)
299 if (
m_Names.Count() - 1 < pIndex)
301 Debug.Log(
string.Format(
"GetName index: %1 from data of length: %2", pIndex,
m_Names.Count()),
"UniversalTemperatureSourceDebug");
312 Debug.Log(
string.Format(
"GetValue index: %1 from data of length: %2", pIndex,
m_Values.Count()),
"UniversalTemperatureSourceDebug");
325 m_Data.Split(DELIMITER_DATA, parsed);
338 for (
int i = 0; i <
m_Pairs.Count(); i++)
351 for (
int i = 0; i <
m_Names.Count(); i++)
353 Debug.Log(
string.Format(
"%1: %2",
m_Names.Get(i),
m_Values.Get(i)),
"UniversalTemperatureSourceDebug");
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
float GetTemperatureMax()
float GetTemperatureItemCap()
void Init(EntityAI pParent)
void UniversalTemperatureSource(EntityAI pParent, UniversalTemperatureSourceSettings pSettings, UniversalTemperatureSourceLambdaBase pLambda)
float GetTemperatureCap()
void ~UniversalTemperatureSource()
UniversalTemperatureSourceLambdaBase GetLambda()
void SetDefferedActive(bool pActive, float pSeconds)
ref UniversalTemperatureSourceTimer m_Timer
UniversalTemperatureSourceSettings m_Settings
float GetTemperatureItemCoef()
float GetTemperatureRaw()
void ChangeSettings(UniversalTemperatureSourceSettings pSettings)
void SetActive(bool pActive)
ref UniversalTemperatureSourceLambdaBase m_Lambda
void Update(UniversalTemperatureSourceSettings settings, UniversalTemperatureSourceLambdaBase lambda)
float GetTemperatureMin()
ref UniversalTemperatureSourceResult m_ResultValues
original Timer deletes m_params which is unwanted
void Execute(UniversalTemperatureSourceSettings pSettings, UniversalTemperatureSourceResult resultValues)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
void Stop()
Stops all elements this effect consists of.
ref UnderObjectDecalSpawnSettings m_Settings
float m_Temperature
Player HC target(?) value.
class UniversalTemperatureSourceSettings m_TemperatureItem
ref array< string > m_Pairs
values parsed from m_Pairs
ref array< string > m_Names
float m_TemperatureHeatcomfort
Item target temperature.
array< string > ParseData()
void AddHeader(string header)
void Add(string name, string value)
const string DELIMITER_KEYPAIR
ref array< string > m_Values
names parsed from m_Pairs
void UniversalTemperatureSourceDebug()
keeps first iteration of parsed data from the m_Data