Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл PPERequestPlatformsBase.c

См. исходные тексты.

Структуры данных

class  PPERequesterBase
 

Функции

class PPERequesterBase GetCategoryMask ()
 mask for mass-handling methods like 'StopAllEffects'
 
void PPERequesterBase (int requester_IDX)
 
void SetRequesterUpdating (bool state)
 Has to be set for the requester to be handled.
 
void Start (Param par=null)
 
void Stop (Param par=null)
 
bool IsRequesterRunning ()
 
void SetRequesterIDX (int idx)
 automatically assigned by PPERequesterBank
 
int GetRequesterIDX ()
 Returns requester index.
 
void SetTargetValueBool (int mat_id, int param_idx, bool val, int priority_layer, int operator=PPOperators.SET)
 
void SetTargetValueBoolDefault (int mat_id, int param_idx)
 
void SetTargetValueInt (int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator=PPOperators.SET)
 
void SetTargetValueIntDefault (int mat_id, int param_idx)
 
void SetTargetValueFloat (int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
 
void SetTargetValueFloatDefault (int mat_id, int param_idx)
 
void SetTargetValueColor (int mat_id, int param_idx, ref array< float > val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
 
void SetTargetValueColorDefault (int mat_id, int param_idx)
 
void QueueValuesSend ()
 Sets this requester to update in the manager.
 
PPERequestParamDataBase GetRequestData (int mat_id, int param_idx, int type)
 returns request data for specific parameter, or creates one if one does not exist in this request yet (singletons)
 
PPERequestParamDataBase PrepareData (int mat_id, int param_idx, int type)
 
map< int, ref map< int, ref PPERequestParamDataBase > > GetActiveRequestStructure ()
 
void ClearRequesterData ()
 
void SendCurrentValueData (PPERequestParamDataBase data)
 
void OnUpdate (float delta)
 
void OnStart (Param par=null)
 
void OnStop (Param par=null)
 automatically resets all material parameters of this requester to defaults
 
float RelativizeValue (float value, int var_type, int mat_id, int param_id, bool relative)
 converts all values used to relative values (if not relative already)
 
void SetDefaultValuesAll ()
 Sets all requested values to default, ignoring them in further calculations.
 
void DbgPrnt (string text)
 

Переменные

bool m_IsRunning
 
bool m_ValuesSent
 
int m_IDX
 
bool m_Valid = false
 
ref map< int, ref map< int, ref PPERequestParamDataBase > > m_RequestDataStructure
 

Функции

◆ ClearRequesterData()

void ClearRequesterData ( )
protected

◆ DbgPrnt()

void DbgPrnt ( string text)
protected
859{
860 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
861 protected bool m_ValuesSent;
862 protected int m_IDX;
863
864 protected bool m_Valid = false;
865
866 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
867
869 {
870 m_Valid = PPERequesterBank.VerifyRequester(this);
871
873 m_ValuesSent = true;
874 m_IsRunning = false;
876 }
877
879 void SetRequesterUpdating(bool state)
880 {
881 if (!m_Valid)
882 {
883 Debug.Log("" + this + " not valid!");
884 return;
885 }
886
887 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
888
889 //TODO - separate into its own function?
890 if (state)
891 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
892 }
893
894 void Start(Param par = null)
895 {
896 OnStart(par);
897 m_IsRunning = true;
898 }
899
900 void Stop(Param par = null)
901 {
903 return;
904
905 OnStop(par);
906 m_IsRunning = false;
907 }
908
909 bool IsRequesterRunning()
910 {
911 return m_IsRunning;
912 }
913
915 void SetRequesterIDX(int idx)
916 {
917 m_IDX = idx;
918 }
919
921 int GetRequesterIDX()
922 {
923 return m_IDX;
924 }
925
927 int GetCategoryMask()
928 {
929 return PPERequesterCategory.NONE;
930 }
931
932 //SETTERS//
933 //vvvvvvv//
934 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
935 {
937 return;
938
940 data.SetPriorityLayer(priority_layer);
941 data.SetInteractionMask(operator);
942
943 data.m_BoolTarget = val;
944 data.m_BoolLast = data.m_BoolCurrent;
945
946 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
947 {
948 data.SetSettingDefaultValues(false);
949 data.SetDataActive(true);
950
952 }
953 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
954 }
955
956 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
957 {
958 //TODO - running check and cleanup rework (elsewhere!)
960 return;
961
963 data.m_BoolLast = data.m_BoolCurrent;
964 if (!data.IsSettingDefaultValues())
965 {
966 data.SetSettingDefaultValues(true);
967
969 }
970 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
971 }
972
973 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
974 {
976 return;
977
978 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
979 data.SetPriorityLayer(priority_layer);
980 data.SetInteractionMask(operator);
981
982 data.m_IntTarget = val;
983 data.m_IntLast = data.m_IntCurrent;
984 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
985 {
986 data.SetSettingDefaultValues(false);
987 data.SetDataActive(true);
988
990 }
991 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
992 }
993
994 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
995 {
996 //TODO - running check and cleanup rework (elsewhere!)
998 return;
999
1000 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
1001 data.m_IntLast = data.m_IntCurrent;
1002 if (!data.IsSettingDefaultValues())
1003 {
1004 data.SetSettingDefaultValues(true);
1005
1007 }
1008 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1009 }
1010
1011 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1012 {
1014 return;
1015
1017 data.SetPriorityLayer(priority_layer);
1018 data.SetInteractionMask(operator);
1019
1020 data.m_FloatFormerTarget = data.m_FloatTarget;
1021 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
1022 data.m_FloatLast = data.m_FloatCurrent;
1023 data.m_FloatStart = data.m_FloatCurrent;
1024 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
1025 {
1026 data.SetSettingDefaultValues(false);
1027 data.SetDataActive(true);
1028
1030 }
1031 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1032 }
1033
1034 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
1035 {
1036 //TODO - running check and cleanup rework (elsewhere!)
1038 return;
1039
1041 data.m_FloatFormerTarget = data.m_FloatTarget;
1042 data.m_FloatLast = data.m_FloatCurrent;
1043 data.m_FloatStart = data.m_FloatCurrent;
1044 if (!data.IsSettingDefaultValues())
1045 {
1046 data.SetSettingDefaultValues(true);
1047
1049 }
1050 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1051 }
1052
1053 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1054 {
1056 return;
1057
1058 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1059 data.SetPriorityLayer(priority_layer);
1060 data.SetInteractionMask(operator);
1061 data.m_ColorFormerTarget = data.m_ColorTarget;
1062
1063 data.m_ColorTarget.Copy(val);
1064
1065 data.m_ColorLast = data.m_ColorCurrent;
1066 data.m_ColorStart = data.m_ColorCurrent;
1067 //if (data.m_ColorTarget != data.m_ColorCurrent)
1068 {
1069 data.SetSettingDefaultValues(false);
1070 data.SetDataActive(true);
1071
1073 }
1074 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1075 }
1076
1077 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
1078 {
1079 //TODO - running check and cleanup rework (elsewhere!)
1081 return;
1082
1083 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1084 data.m_ColorFormerTarget = data.m_ColorTarget;
1085 data.m_ColorLast = data.m_ColorCurrent;
1086 data.m_ColorStart = data.m_ColorCurrent;
1087 if (!data.IsSettingDefaultValues())
1088 {
1089 data.SetSettingDefaultValues(true);
1090
1092 }
1093 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1094 }
1095
1096 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1097 {
1098 }
1099
1100 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1101 {
1102 }*/
1103
1104 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1105 {
1106 }*/
1107
1109 protected void QueueValuesSend()
1110 {
1111 m_ValuesSent = false;
1112 //m_IsRunning = true;
1114 }
1115
1118 {
1120 if ( m_RequestDataStructure.Get(mat_id) )
1121 {
1123 {
1125 }
1126 else
1127 {
1130 }
1131 }
1132 else
1133 {
1136 temp_map.Set(param_idx,data);
1138 }
1139
1140 if (!data)
1141 {
1142 Error("GetRequestData | no data found in the structure");
1143 }
1144
1145 data.m_Requester = this;
1146
1147 return data;
1148 }
1149
1150 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1151 {
1153 switch (type)
1154 {
1155 case PPEConstants.VAR_TYPE_BOOL:
1157 break;
1158
1159 case PPEConstants.VAR_TYPE_INT:
1160 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1161 break;
1162
1163 case PPEConstants.VAR_TYPE_FLOAT:
1165 break;
1166
1167 case PPEConstants.VAR_TYPE_COLOR:
1168 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1169 break;
1170 }
1171 return data;
1172 }
1173
1174 // unused?
1176 {
1178 }
1179
1180 protected void ClearRequesterData()
1181 {
1182 m_RequestDataStructure.Clear();
1183 }
1184
1186 {
1187 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1188 }
1189
1190 //EVENTS//
1191 //vvvvvv//
1192 void OnUpdate(float delta)
1193 {
1194 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1195
1196 if ( !m_ValuesSent )
1197 {
1198 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1199 {
1200 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1201 {
1202 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1203 }
1204 }
1205 m_ValuesSent = true;
1206 }
1207 SetRequesterUpdating(false);
1208 }
1209
1210 protected void OnStart(Param par = null)
1211 {
1213 }
1214
1216 protected void OnStop(Param par = null)
1217 {
1218 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1221 }
1222
1224 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1225 {
1226 float ret = value;
1227 if (!relative) //if not already relative...
1228 {
1229 switch (var_type)
1230 {
1231 case PPEConstants.VAR_TYPE_FLOAT:
1233 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1234 ret = Math.Clamp(ret,0.0,1.0);
1235 break;
1236 }
1237 }
1238 //Print("RelativizeValue: " + ret);
1239
1240 return ret;
1241 }
1242
1244 protected void SetDefaultValuesAll()
1245 {
1246 //<material<param_id,data>>
1248
1249 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1250 {
1251 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1252 {
1253 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1254
1255 if (!req_data.IsDataActive())
1256 continue;
1257
1258 switch (req_data.GetVarType())
1259 {
1260 case PPEConstants.VAR_TYPE_BOOL:
1261 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1262 break;
1263
1264 case PPEConstants.VAR_TYPE_INT:
1265 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1266 break;
1267
1268 case PPEConstants.VAR_TYPE_FLOAT:
1269 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1270 break;
1271
1272 case PPEConstants.VAR_TYPE_COLOR:
1273 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1274 break;
1275 }
1276 }
1277 }
1278 }
1279
1280 void DbgPrnt(string text)
1281 {
1282 //Debug.Log(""+text);
1283 }
1284}
1285
1287// Base requester platforms //
1289
1291{
1292 override int GetCategoryMask()
1293 {
1294 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1295 }
1296}
1297
1299{
1300 override int GetCategoryMask()
1301 {
1302 return PPERequesterCategory.MENU_EFFECTS;
1303 }
1304}
void Start()
Plays all elements this effects consists of.
Definition Effect.c:153
void Stop()
Stops all elements this effect consists of.
Definition Effect.c:179
PPOperators
PP operators, specify operation between subsequent layers.
Definition PPEConstants.c:52
PPERequesterCategory
Definition PPEConstants.c:28
void PPERequestParamDataBool(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)
Definition PPERequestData.c:111
void PPERequestParamDataFloat(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)
Definition PPERequestData.c:142
map< int, ref map< int, ref PPERequestParamDataBase > > GetActiveRequestStructure()
Definition PPERequestPlatformsBase.c:752
bool m_IsRunning
Definition PPERequestPlatformsBase.c:437
void SetDefaultValuesAll()
Sets all requested values to default, ignoring them in further calculations.
Definition PPERequestPlatformsBase.c:821
void DbgPrnt(string text)
Definition PPERequestPlatformsBase.c:857
void OnStop(Param par=null)
automatically resets all material parameters of this requester to defaults
Definition PPERequestPlatformsBase.c:793
void SendCurrentValueData(PPERequestParamDataBase data)
Definition PPERequestPlatformsBase.c:762
void ClearRequesterData()
Definition PPERequestPlatformsBase.c:757
ref map< int, ref map< int, ref PPERequestParamDataBase > > m_RequestDataStructure
Definition PPERequestPlatformsBase.c:443
void OnStart(Param par=null)
Definition PPERequestPlatformsBase.c:787
bool IsRequesterRunning()
Definition PPERequestPlatformsBase.c:486
void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Definition PPERequestPlatformsBase.c:588
float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
converts all values used to relative values (if not relative already)
Definition PPERequestPlatformsBase.c:801
void SetRequesterUpdating(bool state)
Has to be set for the requester to be handled.
Definition PPERequestPlatformsBase.c:456
void QueueValuesSend()
Sets this requester to update in the manager.
Definition PPERequestPlatformsBase.c:686
void SetTargetValueIntDefault(int mat_id, int param_idx)
Definition PPERequestPlatformsBase.c:571
int m_IDX
Definition PPERequestPlatformsBase.c:439
void SetTargetValueBoolDefault(int mat_id, int param_idx)
Definition PPERequestPlatformsBase.c:533
void SetTargetValueColorDefault(int mat_id, int param_idx)
Definition PPERequestPlatformsBase.c:654
void SetRequesterIDX(int idx)
automatically assigned by PPERequesterBank
Definition PPERequestPlatformsBase.c:492
void SetTargetValueFloatDefault(int mat_id, int param_idx)
Definition PPERequestPlatformsBase.c:611
void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator=PPOperators.SET)
Definition PPERequestPlatformsBase.c:550
bool m_Valid
Definition PPERequestPlatformsBase.c:441
PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
Definition PPERequestPlatformsBase.c:727
void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator=PPOperators.SET)
Definition PPERequestPlatformsBase.c:511
class PPERequesterBase GetCategoryMask()
mask for mass-handling methods like 'StopAllEffects'
Definition PPERequestPlatformsBase.c:436
int GetRequesterIDX()
Returns requester index.
Definition PPERequestPlatformsBase.c:498
PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
returns request data for specific parameter, or creates one if one does not exist in this request yet...
Definition PPERequestPlatformsBase.c:694
bool m_ValuesSent
Definition PPERequestPlatformsBase.c:438
void PPERequesterBase(int requester_IDX)
Definition PPERequestPlatformsBase.c:445
void SetTargetValueColor(int mat_id, int param_idx, ref array< float > val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Definition PPERequestPlatformsBase.c:630
@ Count
Definition RandomGeneratorSyncManager.c:7
Definition Debug.c:14
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Definition Debug.c:136
Definition EnMath.c:7
Static component of PPE manager, used to hold the instance.
Definition PPEManager.c:3
static PPEManager GetPPEManager()
Returns the manager instance singleton.
Definition PPEManager.c:27
Data for one material parameter, requester side.
Definition PPERequestData.c:3
base, not to be used directly, would lead to layering collisions!
Definition PPERBloodLoss.c:2
Definition PPERControllerDisconnectBlur.c:2
Definition PPERequestPlatformsBase.c:3
Definition EntityAI.c:95
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition param.c:12
void Error(string err)
Messagebox with error message.
Definition EnDebug.c:90
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
proto native void OnUpdate()
Definition tools.c:349

◆ GetActiveRequestStructure()

map< int, ref map< int, ref PPERequestParamDataBase > > GetActiveRequestStructure ( )
protected
754{
755 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
756 protected bool m_ValuesSent;
757 protected int m_IDX;
758
759 protected bool m_Valid = false;
760
761 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
762
764 {
765 m_Valid = PPERequesterBank.VerifyRequester(this);
766
768 m_ValuesSent = true;
769 m_IsRunning = false;
771 }
772
774 void SetRequesterUpdating(bool state)
775 {
776 if (!m_Valid)
777 {
778 Debug.Log("" + this + " not valid!");
779 return;
780 }
781
782 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
783
784 //TODO - separate into its own function?
785 if (state)
786 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
787 }
788
789 void Start(Param par = null)
790 {
791 OnStart(par);
792 m_IsRunning = true;
793 }
794
795 void Stop(Param par = null)
796 {
798 return;
799
800 OnStop(par);
801 m_IsRunning = false;
802 }
803
804 bool IsRequesterRunning()
805 {
806 return m_IsRunning;
807 }
808
810 void SetRequesterIDX(int idx)
811 {
812 m_IDX = idx;
813 }
814
816 int GetRequesterIDX()
817 {
818 return m_IDX;
819 }
820
822 int GetCategoryMask()
823 {
824 return PPERequesterCategory.NONE;
825 }
826
827 //SETTERS//
828 //vvvvvvv//
829 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
830 {
832 return;
833
835 data.SetPriorityLayer(priority_layer);
836 data.SetInteractionMask(operator);
837
838 data.m_BoolTarget = val;
839 data.m_BoolLast = data.m_BoolCurrent;
840
841 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
842 {
843 data.SetSettingDefaultValues(false);
844 data.SetDataActive(true);
845
847 }
848 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
849 }
850
851 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
852 {
853 //TODO - running check and cleanup rework (elsewhere!)
855 return;
856
858 data.m_BoolLast = data.m_BoolCurrent;
859 if (!data.IsSettingDefaultValues())
860 {
861 data.SetSettingDefaultValues(true);
862
864 }
865 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
866 }
867
868 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
869 {
871 return;
872
873 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
874 data.SetPriorityLayer(priority_layer);
875 data.SetInteractionMask(operator);
876
877 data.m_IntTarget = val;
878 data.m_IntLast = data.m_IntCurrent;
879 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
880 {
881 data.SetSettingDefaultValues(false);
882 data.SetDataActive(true);
883
885 }
886 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
887 }
888
889 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
890 {
891 //TODO - running check and cleanup rework (elsewhere!)
893 return;
894
895 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
896 data.m_IntLast = data.m_IntCurrent;
897 if (!data.IsSettingDefaultValues())
898 {
899 data.SetSettingDefaultValues(true);
900
902 }
903 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
904 }
905
906 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
907 {
909 return;
910
912 data.SetPriorityLayer(priority_layer);
913 data.SetInteractionMask(operator);
914
915 data.m_FloatFormerTarget = data.m_FloatTarget;
916 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
917 data.m_FloatLast = data.m_FloatCurrent;
918 data.m_FloatStart = data.m_FloatCurrent;
919 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
920 {
921 data.SetSettingDefaultValues(false);
922 data.SetDataActive(true);
923
925 }
926 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
927 }
928
929 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
930 {
931 //TODO - running check and cleanup rework (elsewhere!)
933 return;
934
936 data.m_FloatFormerTarget = data.m_FloatTarget;
937 data.m_FloatLast = data.m_FloatCurrent;
938 data.m_FloatStart = data.m_FloatCurrent;
939 if (!data.IsSettingDefaultValues())
940 {
941 data.SetSettingDefaultValues(true);
942
944 }
945 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
946 }
947
948 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
949 {
951 return;
952
953 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
954 data.SetPriorityLayer(priority_layer);
955 data.SetInteractionMask(operator);
956 data.m_ColorFormerTarget = data.m_ColorTarget;
957
958 data.m_ColorTarget.Copy(val);
959
960 data.m_ColorLast = data.m_ColorCurrent;
961 data.m_ColorStart = data.m_ColorCurrent;
962 //if (data.m_ColorTarget != data.m_ColorCurrent)
963 {
964 data.SetSettingDefaultValues(false);
965 data.SetDataActive(true);
966
968 }
969 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
970 }
971
972 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
973 {
974 //TODO - running check and cleanup rework (elsewhere!)
976 return;
977
978 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
979 data.m_ColorFormerTarget = data.m_ColorTarget;
980 data.m_ColorLast = data.m_ColorCurrent;
981 data.m_ColorStart = data.m_ColorCurrent;
982 if (!data.IsSettingDefaultValues())
983 {
984 data.SetSettingDefaultValues(true);
985
987 }
988 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
989 }
990
991 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
992 {
993 }
994
995 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
996 {
997 }*/
998
999 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1000 {
1001 }*/
1002
1004 protected void QueueValuesSend()
1005 {
1006 m_ValuesSent = false;
1007 //m_IsRunning = true;
1009 }
1010
1013 {
1015 if ( m_RequestDataStructure.Get(mat_id) )
1016 {
1018 {
1020 }
1021 else
1022 {
1025 }
1026 }
1027 else
1028 {
1031 temp_map.Set(param_idx,data);
1033 }
1034
1035 if (!data)
1036 {
1037 Error("GetRequestData | no data found in the structure");
1038 }
1039
1040 data.m_Requester = this;
1041
1042 return data;
1043 }
1044
1045 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1046 {
1048 switch (type)
1049 {
1050 case PPEConstants.VAR_TYPE_BOOL:
1052 break;
1053
1054 case PPEConstants.VAR_TYPE_INT:
1055 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1056 break;
1057
1058 case PPEConstants.VAR_TYPE_FLOAT:
1060 break;
1061
1062 case PPEConstants.VAR_TYPE_COLOR:
1063 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1064 break;
1065 }
1066 return data;
1067 }
1068
1069 // unused?
1071 {
1073 }
1074
1075 protected void ClearRequesterData()
1076 {
1077 m_RequestDataStructure.Clear();
1078 }
1079
1081 {
1082 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1083 }
1084
1085 //EVENTS//
1086 //vvvvvv//
1087 void OnUpdate(float delta)
1088 {
1089 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1090
1091 if ( !m_ValuesSent )
1092 {
1093 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1094 {
1095 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1096 {
1097 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1098 }
1099 }
1100 m_ValuesSent = true;
1101 }
1102 SetRequesterUpdating(false);
1103 }
1104
1105 protected void OnStart(Param par = null)
1106 {
1108 }
1109
1111 protected void OnStop(Param par = null)
1112 {
1113 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1116 }
1117
1119 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1120 {
1121 float ret = value;
1122 if (!relative) //if not already relative...
1123 {
1124 switch (var_type)
1125 {
1126 case PPEConstants.VAR_TYPE_FLOAT:
1128 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1129 ret = Math.Clamp(ret,0.0,1.0);
1130 break;
1131 }
1132 }
1133 //Print("RelativizeValue: " + ret);
1134
1135 return ret;
1136 }
1137
1139 protected void SetDefaultValuesAll()
1140 {
1141 //<material<param_id,data>>
1143
1144 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1145 {
1146 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1147 {
1148 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1149
1150 if (!req_data.IsDataActive())
1151 continue;
1152
1153 switch (req_data.GetVarType())
1154 {
1155 case PPEConstants.VAR_TYPE_BOOL:
1156 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1157 break;
1158
1159 case PPEConstants.VAR_TYPE_INT:
1160 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1161 break;
1162
1163 case PPEConstants.VAR_TYPE_FLOAT:
1164 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1165 break;
1166
1167 case PPEConstants.VAR_TYPE_COLOR:
1168 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1169 break;
1170 }
1171 }
1172 }
1173 }
1174
1175 void DbgPrnt(string text)
1176 {
1177 //Debug.Log(""+text);
1178 }
1179}
1180
1182// Base requester platforms //
1184
1186{
1187 override int GetCategoryMask()
1188 {
1189 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1190 }
1191}
1192
1194{
1195 override int GetCategoryMask()
1196 {
1197 return PPERequesterCategory.MENU_EFFECTS;
1198 }
1199}

◆ GetCategoryMask()

int GetCategoryMask ( )

mask for mass-handling methods like 'StopAllEffects'

437 {
438 return PPERequesterCategory.GAMEPLAY_EFFECTS;
439 }

◆ GetRequestData()

PPERequestParamDataBase GetRequestData ( int mat_id,
int param_idx,
int type )
protected

returns request data for specific parameter, or creates one if one does not exist in this request yet (singletons)

696{
697 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
698 protected bool m_ValuesSent;
699 protected int m_IDX;
700
701 protected bool m_Valid = false;
702
703 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
704
706 {
707 m_Valid = PPERequesterBank.VerifyRequester(this);
708
710 m_ValuesSent = true;
711 m_IsRunning = false;
713 }
714
716 void SetRequesterUpdating(bool state)
717 {
718 if (!m_Valid)
719 {
720 Debug.Log("" + this + " not valid!");
721 return;
722 }
723
724 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
725
726 //TODO - separate into its own function?
727 if (state)
728 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
729 }
730
731 void Start(Param par = null)
732 {
733 OnStart(par);
734 m_IsRunning = true;
735 }
736
737 void Stop(Param par = null)
738 {
740 return;
741
742 OnStop(par);
743 m_IsRunning = false;
744 }
745
746 bool IsRequesterRunning()
747 {
748 return m_IsRunning;
749 }
750
752 void SetRequesterIDX(int idx)
753 {
754 m_IDX = idx;
755 }
756
758 int GetRequesterIDX()
759 {
760 return m_IDX;
761 }
762
764 int GetCategoryMask()
765 {
766 return PPERequesterCategory.NONE;
767 }
768
769 //SETTERS//
770 //vvvvvvv//
771 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
772 {
774 return;
775
777 data.SetPriorityLayer(priority_layer);
778 data.SetInteractionMask(operator);
779
780 data.m_BoolTarget = val;
781 data.m_BoolLast = data.m_BoolCurrent;
782
783 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
784 {
785 data.SetSettingDefaultValues(false);
786 data.SetDataActive(true);
787
789 }
790 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
791 }
792
793 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
794 {
795 //TODO - running check and cleanup rework (elsewhere!)
797 return;
798
800 data.m_BoolLast = data.m_BoolCurrent;
801 if (!data.IsSettingDefaultValues())
802 {
803 data.SetSettingDefaultValues(true);
804
806 }
807 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
808 }
809
810 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
811 {
813 return;
814
815 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
816 data.SetPriorityLayer(priority_layer);
817 data.SetInteractionMask(operator);
818
819 data.m_IntTarget = val;
820 data.m_IntLast = data.m_IntCurrent;
821 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
822 {
823 data.SetSettingDefaultValues(false);
824 data.SetDataActive(true);
825
827 }
828 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
829 }
830
831 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
832 {
833 //TODO - running check and cleanup rework (elsewhere!)
835 return;
836
837 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
838 data.m_IntLast = data.m_IntCurrent;
839 if (!data.IsSettingDefaultValues())
840 {
841 data.SetSettingDefaultValues(true);
842
844 }
845 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
846 }
847
848 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
849 {
851 return;
852
854 data.SetPriorityLayer(priority_layer);
855 data.SetInteractionMask(operator);
856
857 data.m_FloatFormerTarget = data.m_FloatTarget;
858 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
859 data.m_FloatLast = data.m_FloatCurrent;
860 data.m_FloatStart = data.m_FloatCurrent;
861 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
862 {
863 data.SetSettingDefaultValues(false);
864 data.SetDataActive(true);
865
867 }
868 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
869 }
870
871 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
872 {
873 //TODO - running check and cleanup rework (elsewhere!)
875 return;
876
878 data.m_FloatFormerTarget = data.m_FloatTarget;
879 data.m_FloatLast = data.m_FloatCurrent;
880 data.m_FloatStart = data.m_FloatCurrent;
881 if (!data.IsSettingDefaultValues())
882 {
883 data.SetSettingDefaultValues(true);
884
886 }
887 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
888 }
889
890 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
891 {
893 return;
894
895 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
896 data.SetPriorityLayer(priority_layer);
897 data.SetInteractionMask(operator);
898 data.m_ColorFormerTarget = data.m_ColorTarget;
899
900 data.m_ColorTarget.Copy(val);
901
902 data.m_ColorLast = data.m_ColorCurrent;
903 data.m_ColorStart = data.m_ColorCurrent;
904 //if (data.m_ColorTarget != data.m_ColorCurrent)
905 {
906 data.SetSettingDefaultValues(false);
907 data.SetDataActive(true);
908
910 }
911 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
912 }
913
914 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
915 {
916 //TODO - running check and cleanup rework (elsewhere!)
918 return;
919
920 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
921 data.m_ColorFormerTarget = data.m_ColorTarget;
922 data.m_ColorLast = data.m_ColorCurrent;
923 data.m_ColorStart = data.m_ColorCurrent;
924 if (!data.IsSettingDefaultValues())
925 {
926 data.SetSettingDefaultValues(true);
927
929 }
930 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
931 }
932
933 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
934 {
935 }
936
937 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
938 {
939 }*/
940
941 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
942 {
943 }*/
944
946 protected void QueueValuesSend()
947 {
948 m_ValuesSent = false;
949 //m_IsRunning = true;
951 }
952
955 {
958 {
960 {
962 }
963 else
964 {
967 }
968 }
969 else
970 {
975 }
976
977 if (!data)
978 {
979 Error("GetRequestData | no data found in the structure");
980 }
981
982 data.m_Requester = this;
983
984 return data;
985 }
986
987 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
988 {
990 switch (type)
991 {
992 case PPEConstants.VAR_TYPE_BOOL:
994 break;
995
996 case PPEConstants.VAR_TYPE_INT:
997 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
998 break;
999
1000 case PPEConstants.VAR_TYPE_FLOAT:
1002 break;
1003
1004 case PPEConstants.VAR_TYPE_COLOR:
1005 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1006 break;
1007 }
1008 return data;
1009 }
1010
1011 // unused?
1013 {
1015 }
1016
1017 protected void ClearRequesterData()
1018 {
1019 m_RequestDataStructure.Clear();
1020 }
1021
1023 {
1024 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1025 }
1026
1027 //EVENTS//
1028 //vvvvvv//
1029 void OnUpdate(float delta)
1030 {
1031 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1032
1033 if ( !m_ValuesSent )
1034 {
1035 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1036 {
1037 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1038 {
1039 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1040 }
1041 }
1042 m_ValuesSent = true;
1043 }
1044 SetRequesterUpdating(false);
1045 }
1046
1047 protected void OnStart(Param par = null)
1048 {
1050 }
1051
1053 protected void OnStop(Param par = null)
1054 {
1055 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1058 }
1059
1061 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1062 {
1063 float ret = value;
1064 if (!relative) //if not already relative...
1065 {
1066 switch (var_type)
1067 {
1068 case PPEConstants.VAR_TYPE_FLOAT:
1070 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1071 ret = Math.Clamp(ret,0.0,1.0);
1072 break;
1073 }
1074 }
1075 //Print("RelativizeValue: " + ret);
1076
1077 return ret;
1078 }
1079
1081 protected void SetDefaultValuesAll()
1082 {
1083 //<material<param_id,data>>
1085
1086 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1087 {
1088 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1089 {
1090 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1091
1092 if (!req_data.IsDataActive())
1093 continue;
1094
1095 switch (req_data.GetVarType())
1096 {
1097 case PPEConstants.VAR_TYPE_BOOL:
1098 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1099 break;
1100
1101 case PPEConstants.VAR_TYPE_INT:
1102 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1103 break;
1104
1105 case PPEConstants.VAR_TYPE_FLOAT:
1106 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1107 break;
1108
1109 case PPEConstants.VAR_TYPE_COLOR:
1110 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1111 break;
1112 }
1113 }
1114 }
1115 }
1116
1117 void DbgPrnt(string text)
1118 {
1119 //Debug.Log(""+text);
1120 }
1121}
1122
1124// Base requester platforms //
1126
1128{
1129 override int GetCategoryMask()
1130 {
1131 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1132 }
1133}
1134
1136{
1137 override int GetCategoryMask()
1138 {
1139 return PPERequesterCategory.MENU_EFFECTS;
1140 }
1141}

◆ GetRequesterIDX()

int GetRequesterIDX ( )
protected

Returns requester index.

500{
501 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
502 protected bool m_ValuesSent;
503 protected int m_IDX;
504
505 protected bool m_Valid = false;
506
507 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
508
510 {
511 m_Valid = PPERequesterBank.VerifyRequester(this);
512
514 m_ValuesSent = true;
515 m_IsRunning = false;
517 }
518
520 void SetRequesterUpdating(bool state)
521 {
522 if (!m_Valid)
523 {
524 Debug.Log("" + this + " not valid!");
525 return;
526 }
527
528 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
529
530 //TODO - separate into its own function?
531 if (state)
532 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
533 }
534
535 void Start(Param par = null)
536 {
537 OnStart(par);
538 m_IsRunning = true;
539 }
540
541 void Stop(Param par = null)
542 {
544 return;
545
546 OnStop(par);
547 m_IsRunning = false;
548 }
549
550 bool IsRequesterRunning()
551 {
552 return m_IsRunning;
553 }
554
556 void SetRequesterIDX(int idx)
557 {
558 m_IDX = idx;
559 }
560
562 int GetRequesterIDX()
563 {
564 return m_IDX;
565 }
566
568 int GetCategoryMask()
569 {
570 return PPERequesterCategory.NONE;
571 }
572
573 //SETTERS//
574 //vvvvvvv//
575 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
576 {
578 return;
579
581 data.SetPriorityLayer(priority_layer);
582 data.SetInteractionMask(operator);
583
584 data.m_BoolTarget = val;
585 data.m_BoolLast = data.m_BoolCurrent;
586
587 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
588 {
589 data.SetSettingDefaultValues(false);
590 data.SetDataActive(true);
591
593 }
594 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
595 }
596
597 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
598 {
599 //TODO - running check and cleanup rework (elsewhere!)
601 return;
602
604 data.m_BoolLast = data.m_BoolCurrent;
605 if (!data.IsSettingDefaultValues())
606 {
607 data.SetSettingDefaultValues(true);
608
610 }
611 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
612 }
613
614 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
615 {
617 return;
618
619 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
620 data.SetPriorityLayer(priority_layer);
621 data.SetInteractionMask(operator);
622
623 data.m_IntTarget = val;
624 data.m_IntLast = data.m_IntCurrent;
625 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
626 {
627 data.SetSettingDefaultValues(false);
628 data.SetDataActive(true);
629
631 }
632 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
633 }
634
635 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
636 {
637 //TODO - running check and cleanup rework (elsewhere!)
639 return;
640
641 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
642 data.m_IntLast = data.m_IntCurrent;
643 if (!data.IsSettingDefaultValues())
644 {
645 data.SetSettingDefaultValues(true);
646
648 }
649 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
650 }
651
652 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
653 {
655 return;
656
658 data.SetPriorityLayer(priority_layer);
659 data.SetInteractionMask(operator);
660
661 data.m_FloatFormerTarget = data.m_FloatTarget;
662 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
663 data.m_FloatLast = data.m_FloatCurrent;
664 data.m_FloatStart = data.m_FloatCurrent;
665 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
666 {
667 data.SetSettingDefaultValues(false);
668 data.SetDataActive(true);
669
671 }
672 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
673 }
674
675 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
676 {
677 //TODO - running check and cleanup rework (elsewhere!)
679 return;
680
682 data.m_FloatFormerTarget = data.m_FloatTarget;
683 data.m_FloatLast = data.m_FloatCurrent;
684 data.m_FloatStart = data.m_FloatCurrent;
685 if (!data.IsSettingDefaultValues())
686 {
687 data.SetSettingDefaultValues(true);
688
690 }
691 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
692 }
693
694 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
695 {
697 return;
698
699 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
700 data.SetPriorityLayer(priority_layer);
701 data.SetInteractionMask(operator);
702 data.m_ColorFormerTarget = data.m_ColorTarget;
703
704 data.m_ColorTarget.Copy(val);
705
706 data.m_ColorLast = data.m_ColorCurrent;
707 data.m_ColorStart = data.m_ColorCurrent;
708 //if (data.m_ColorTarget != data.m_ColorCurrent)
709 {
710 data.SetSettingDefaultValues(false);
711 data.SetDataActive(true);
712
714 }
715 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
716 }
717
718 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
719 {
720 //TODO - running check and cleanup rework (elsewhere!)
722 return;
723
724 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
725 data.m_ColorFormerTarget = data.m_ColorTarget;
726 data.m_ColorLast = data.m_ColorCurrent;
727 data.m_ColorStart = data.m_ColorCurrent;
728 if (!data.IsSettingDefaultValues())
729 {
730 data.SetSettingDefaultValues(true);
731
733 }
734 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
735 }
736
737 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
738 {
739 }
740
741 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
742 {
743 }*/
744
745 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
746 {
747 }*/
748
750 protected void QueueValuesSend()
751 {
752 m_ValuesSent = false;
753 //m_IsRunning = true;
755 }
756
759 {
762 {
764 {
766 }
767 else
768 {
771 }
772 }
773 else
774 {
779 }
780
781 if (!data)
782 {
783 Error("GetRequestData | no data found in the structure");
784 }
785
786 data.m_Requester = this;
787
788 return data;
789 }
790
791 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
792 {
794 switch (type)
795 {
796 case PPEConstants.VAR_TYPE_BOOL:
798 break;
799
800 case PPEConstants.VAR_TYPE_INT:
801 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
802 break;
803
804 case PPEConstants.VAR_TYPE_FLOAT:
806 break;
807
808 case PPEConstants.VAR_TYPE_COLOR:
809 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
810 break;
811 }
812 return data;
813 }
814
815 // unused?
817 {
819 }
820
821 protected void ClearRequesterData()
822 {
824 }
825
827 {
828 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
829 }
830
831 //EVENTS//
832 //vvvvvv//
833 void OnUpdate(float delta)
834 {
835 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
836
837 if ( !m_ValuesSent )
838 {
839 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
840 {
841 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
842 {
843 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
844 }
845 }
846 m_ValuesSent = true;
847 }
849 }
850
851 protected void OnStart(Param par = null)
852 {
854 }
855
857 protected void OnStop(Param par = null)
858 {
859 //DbgPrnt("PPEDebug | " + this + " | OnStop");
862 }
863
865 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
866 {
867 float ret = value;
868 if (!relative) //if not already relative...
869 {
870 switch (var_type)
871 {
872 case PPEConstants.VAR_TYPE_FLOAT:
874 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
875 ret = Math.Clamp(ret,0.0,1.0);
876 break;
877 }
878 }
879 //Print("RelativizeValue: " + ret);
880
881 return ret;
882 }
883
885 protected void SetDefaultValuesAll()
886 {
887 //<material<param_id,data>>
889
890 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
891 {
892 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
893 {
894 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
895
896 if (!req_data.IsDataActive())
897 continue;
898
899 switch (req_data.GetVarType())
900 {
901 case PPEConstants.VAR_TYPE_BOOL:
902 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
903 break;
904
905 case PPEConstants.VAR_TYPE_INT:
906 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
907 break;
908
909 case PPEConstants.VAR_TYPE_FLOAT:
910 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
911 break;
912
913 case PPEConstants.VAR_TYPE_COLOR:
914 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
915 break;
916 }
917 }
918 }
919 }
920
921 void DbgPrnt(string text)
922 {
923 //Debug.Log(""+text);
924 }
925}
926
928// Base requester platforms //
930
932{
933 override int GetCategoryMask()
934 {
935 return PPERequesterCategory.GAMEPLAY_EFFECTS;
936 }
937}
938
940{
941 override int GetCategoryMask()
942 {
943 return PPERequesterCategory.MENU_EFFECTS;
944 }
945}

◆ IsRequesterRunning()

bool IsRequesterRunning ( )
protected
488{
489 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
490 protected bool m_ValuesSent;
491 protected int m_IDX;
492
493 protected bool m_Valid = false;
494
495 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
496
498 {
499 m_Valid = PPERequesterBank.VerifyRequester(this);
500
502 m_ValuesSent = true;
503 m_IsRunning = false;
505 }
506
508 void SetRequesterUpdating(bool state)
509 {
510 if (!m_Valid)
511 {
512 Debug.Log("" + this + " not valid!");
513 return;
514 }
515
516 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
517
518 //TODO - separate into its own function?
519 if (state)
520 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
521 }
522
523 void Start(Param par = null)
524 {
525 OnStart(par);
526 m_IsRunning = true;
527 }
528
529 void Stop(Param par = null)
530 {
532 return;
533
534 OnStop(par);
535 m_IsRunning = false;
536 }
537
538 bool IsRequesterRunning()
539 {
540 return m_IsRunning;
541 }
542
544 void SetRequesterIDX(int idx)
545 {
546 m_IDX = idx;
547 }
548
550 int GetRequesterIDX()
551 {
552 return m_IDX;
553 }
554
556 int GetCategoryMask()
557 {
558 return PPERequesterCategory.NONE;
559 }
560
561 //SETTERS//
562 //vvvvvvv//
563 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
564 {
566 return;
567
569 data.SetPriorityLayer(priority_layer);
570 data.SetInteractionMask(operator);
571
572 data.m_BoolTarget = val;
573 data.m_BoolLast = data.m_BoolCurrent;
574
575 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
576 {
577 data.SetSettingDefaultValues(false);
578 data.SetDataActive(true);
579
581 }
582 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
583 }
584
585 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
586 {
587 //TODO - running check and cleanup rework (elsewhere!)
589 return;
590
592 data.m_BoolLast = data.m_BoolCurrent;
593 if (!data.IsSettingDefaultValues())
594 {
595 data.SetSettingDefaultValues(true);
596
598 }
599 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
600 }
601
602 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
603 {
605 return;
606
607 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
608 data.SetPriorityLayer(priority_layer);
609 data.SetInteractionMask(operator);
610
611 data.m_IntTarget = val;
612 data.m_IntLast = data.m_IntCurrent;
613 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
614 {
615 data.SetSettingDefaultValues(false);
616 data.SetDataActive(true);
617
619 }
620 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
621 }
622
623 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
624 {
625 //TODO - running check and cleanup rework (elsewhere!)
627 return;
628
629 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
630 data.m_IntLast = data.m_IntCurrent;
631 if (!data.IsSettingDefaultValues())
632 {
633 data.SetSettingDefaultValues(true);
634
636 }
637 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
638 }
639
640 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
641 {
643 return;
644
646 data.SetPriorityLayer(priority_layer);
647 data.SetInteractionMask(operator);
648
649 data.m_FloatFormerTarget = data.m_FloatTarget;
650 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
651 data.m_FloatLast = data.m_FloatCurrent;
652 data.m_FloatStart = data.m_FloatCurrent;
653 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
654 {
655 data.SetSettingDefaultValues(false);
656 data.SetDataActive(true);
657
659 }
660 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
661 }
662
663 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
664 {
665 //TODO - running check and cleanup rework (elsewhere!)
667 return;
668
670 data.m_FloatFormerTarget = data.m_FloatTarget;
671 data.m_FloatLast = data.m_FloatCurrent;
672 data.m_FloatStart = data.m_FloatCurrent;
673 if (!data.IsSettingDefaultValues())
674 {
675 data.SetSettingDefaultValues(true);
676
678 }
679 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
680 }
681
682 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
683 {
685 return;
686
687 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
688 data.SetPriorityLayer(priority_layer);
689 data.SetInteractionMask(operator);
690 data.m_ColorFormerTarget = data.m_ColorTarget;
691
692 data.m_ColorTarget.Copy(val);
693
694 data.m_ColorLast = data.m_ColorCurrent;
695 data.m_ColorStart = data.m_ColorCurrent;
696 //if (data.m_ColorTarget != data.m_ColorCurrent)
697 {
698 data.SetSettingDefaultValues(false);
699 data.SetDataActive(true);
700
702 }
703 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
704 }
705
706 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
707 {
708 //TODO - running check and cleanup rework (elsewhere!)
710 return;
711
712 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
713 data.m_ColorFormerTarget = data.m_ColorTarget;
714 data.m_ColorLast = data.m_ColorCurrent;
715 data.m_ColorStart = data.m_ColorCurrent;
716 if (!data.IsSettingDefaultValues())
717 {
718 data.SetSettingDefaultValues(true);
719
721 }
722 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
723 }
724
725 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
726 {
727 }
728
729 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
730 {
731 }*/
732
733 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
734 {
735 }*/
736
738 protected void QueueValuesSend()
739 {
740 m_ValuesSent = false;
741 //m_IsRunning = true;
743 }
744
747 {
750 {
752 {
754 }
755 else
756 {
759 }
760 }
761 else
762 {
767 }
768
769 if (!data)
770 {
771 Error("GetRequestData | no data found in the structure");
772 }
773
774 data.m_Requester = this;
775
776 return data;
777 }
778
779 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
780 {
782 switch (type)
783 {
784 case PPEConstants.VAR_TYPE_BOOL:
786 break;
787
788 case PPEConstants.VAR_TYPE_INT:
789 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
790 break;
791
792 case PPEConstants.VAR_TYPE_FLOAT:
794 break;
795
796 case PPEConstants.VAR_TYPE_COLOR:
797 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
798 break;
799 }
800 return data;
801 }
802
803 // unused?
805 {
807 }
808
809 protected void ClearRequesterData()
810 {
812 }
813
815 {
816 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
817 }
818
819 //EVENTS//
820 //vvvvvv//
821 void OnUpdate(float delta)
822 {
823 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
824
825 if ( !m_ValuesSent )
826 {
827 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
828 {
829 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
830 {
831 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
832 }
833 }
834 m_ValuesSent = true;
835 }
837 }
838
839 protected void OnStart(Param par = null)
840 {
842 }
843
845 protected void OnStop(Param par = null)
846 {
847 //DbgPrnt("PPEDebug | " + this + " | OnStop");
850 }
851
853 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
854 {
855 float ret = value;
856 if (!relative) //if not already relative...
857 {
858 switch (var_type)
859 {
860 case PPEConstants.VAR_TYPE_FLOAT:
862 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
863 ret = Math.Clamp(ret,0.0,1.0);
864 break;
865 }
866 }
867 //Print("RelativizeValue: " + ret);
868
869 return ret;
870 }
871
873 protected void SetDefaultValuesAll()
874 {
875 //<material<param_id,data>>
877
878 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
879 {
880 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
881 {
882 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
883
884 if (!req_data.IsDataActive())
885 continue;
886
887 switch (req_data.GetVarType())
888 {
889 case PPEConstants.VAR_TYPE_BOOL:
890 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
891 break;
892
893 case PPEConstants.VAR_TYPE_INT:
894 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
895 break;
896
897 case PPEConstants.VAR_TYPE_FLOAT:
898 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
899 break;
900
901 case PPEConstants.VAR_TYPE_COLOR:
902 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
903 break;
904 }
905 }
906 }
907 }
908
909 void DbgPrnt(string text)
910 {
911 //Debug.Log(""+text);
912 }
913}
914
916// Base requester platforms //
918
920{
921 override int GetCategoryMask()
922 {
923 return PPERequesterCategory.GAMEPLAY_EFFECTS;
924 }
925}
926
928{
929 override int GetCategoryMask()
930 {
931 return PPERequesterCategory.MENU_EFFECTS;
932 }
933}

◆ OnStart()

void OnStart ( Param par = null)
protected
789{
790 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
791 protected bool m_ValuesSent;
792 protected int m_IDX;
793
794 protected bool m_Valid = false;
795
796 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
797
799 {
800 m_Valid = PPERequesterBank.VerifyRequester(this);
801
803 m_ValuesSent = true;
804 m_IsRunning = false;
806 }
807
809 void SetRequesterUpdating(bool state)
810 {
811 if (!m_Valid)
812 {
813 Debug.Log("" + this + " not valid!");
814 return;
815 }
816
817 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
818
819 //TODO - separate into its own function?
820 if (state)
821 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
822 }
823
824 void Start(Param par = null)
825 {
826 OnStart(par);
827 m_IsRunning = true;
828 }
829
830 void Stop(Param par = null)
831 {
833 return;
834
835 OnStop(par);
836 m_IsRunning = false;
837 }
838
839 bool IsRequesterRunning()
840 {
841 return m_IsRunning;
842 }
843
845 void SetRequesterIDX(int idx)
846 {
847 m_IDX = idx;
848 }
849
851 int GetRequesterIDX()
852 {
853 return m_IDX;
854 }
855
857 int GetCategoryMask()
858 {
859 return PPERequesterCategory.NONE;
860 }
861
862 //SETTERS//
863 //vvvvvvv//
864 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
865 {
867 return;
868
870 data.SetPriorityLayer(priority_layer);
871 data.SetInteractionMask(operator);
872
873 data.m_BoolTarget = val;
874 data.m_BoolLast = data.m_BoolCurrent;
875
876 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
877 {
878 data.SetSettingDefaultValues(false);
879 data.SetDataActive(true);
880
882 }
883 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
884 }
885
886 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
887 {
888 //TODO - running check and cleanup rework (elsewhere!)
890 return;
891
893 data.m_BoolLast = data.m_BoolCurrent;
894 if (!data.IsSettingDefaultValues())
895 {
896 data.SetSettingDefaultValues(true);
897
899 }
900 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
901 }
902
903 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
904 {
906 return;
907
908 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
909 data.SetPriorityLayer(priority_layer);
910 data.SetInteractionMask(operator);
911
912 data.m_IntTarget = val;
913 data.m_IntLast = data.m_IntCurrent;
914 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
915 {
916 data.SetSettingDefaultValues(false);
917 data.SetDataActive(true);
918
920 }
921 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
922 }
923
924 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
925 {
926 //TODO - running check and cleanup rework (elsewhere!)
928 return;
929
930 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
931 data.m_IntLast = data.m_IntCurrent;
932 if (!data.IsSettingDefaultValues())
933 {
934 data.SetSettingDefaultValues(true);
935
937 }
938 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
939 }
940
941 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
942 {
944 return;
945
947 data.SetPriorityLayer(priority_layer);
948 data.SetInteractionMask(operator);
949
950 data.m_FloatFormerTarget = data.m_FloatTarget;
951 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
952 data.m_FloatLast = data.m_FloatCurrent;
953 data.m_FloatStart = data.m_FloatCurrent;
954 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
955 {
956 data.SetSettingDefaultValues(false);
957 data.SetDataActive(true);
958
960 }
961 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
962 }
963
964 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
965 {
966 //TODO - running check and cleanup rework (elsewhere!)
968 return;
969
971 data.m_FloatFormerTarget = data.m_FloatTarget;
972 data.m_FloatLast = data.m_FloatCurrent;
973 data.m_FloatStart = data.m_FloatCurrent;
974 if (!data.IsSettingDefaultValues())
975 {
976 data.SetSettingDefaultValues(true);
977
979 }
980 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
981 }
982
983 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
984 {
986 return;
987
988 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
989 data.SetPriorityLayer(priority_layer);
990 data.SetInteractionMask(operator);
991 data.m_ColorFormerTarget = data.m_ColorTarget;
992
993 data.m_ColorTarget.Copy(val);
994
995 data.m_ColorLast = data.m_ColorCurrent;
996 data.m_ColorStart = data.m_ColorCurrent;
997 //if (data.m_ColorTarget != data.m_ColorCurrent)
998 {
999 data.SetSettingDefaultValues(false);
1000 data.SetDataActive(true);
1001
1003 }
1004 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1005 }
1006
1007 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
1008 {
1009 //TODO - running check and cleanup rework (elsewhere!)
1011 return;
1012
1013 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1014 data.m_ColorFormerTarget = data.m_ColorTarget;
1015 data.m_ColorLast = data.m_ColorCurrent;
1016 data.m_ColorStart = data.m_ColorCurrent;
1017 if (!data.IsSettingDefaultValues())
1018 {
1019 data.SetSettingDefaultValues(true);
1020
1022 }
1023 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1024 }
1025
1026 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1027 {
1028 }
1029
1030 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1031 {
1032 }*/
1033
1034 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1035 {
1036 }*/
1037
1039 protected void QueueValuesSend()
1040 {
1041 m_ValuesSent = false;
1042 //m_IsRunning = true;
1044 }
1045
1048 {
1050 if ( m_RequestDataStructure.Get(mat_id) )
1051 {
1053 {
1055 }
1056 else
1057 {
1060 }
1061 }
1062 else
1063 {
1066 temp_map.Set(param_idx,data);
1068 }
1069
1070 if (!data)
1071 {
1072 Error("GetRequestData | no data found in the structure");
1073 }
1074
1075 data.m_Requester = this;
1076
1077 return data;
1078 }
1079
1080 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1081 {
1083 switch (type)
1084 {
1085 case PPEConstants.VAR_TYPE_BOOL:
1087 break;
1088
1089 case PPEConstants.VAR_TYPE_INT:
1090 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1091 break;
1092
1093 case PPEConstants.VAR_TYPE_FLOAT:
1095 break;
1096
1097 case PPEConstants.VAR_TYPE_COLOR:
1098 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1099 break;
1100 }
1101 return data;
1102 }
1103
1104 // unused?
1106 {
1108 }
1109
1110 protected void ClearRequesterData()
1111 {
1112 m_RequestDataStructure.Clear();
1113 }
1114
1116 {
1117 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1118 }
1119
1120 //EVENTS//
1121 //vvvvvv//
1122 void OnUpdate(float delta)
1123 {
1124 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1125
1126 if ( !m_ValuesSent )
1127 {
1128 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1129 {
1130 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1131 {
1132 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1133 }
1134 }
1135 m_ValuesSent = true;
1136 }
1137 SetRequesterUpdating(false);
1138 }
1139
1140 protected void OnStart(Param par = null)
1141 {
1143 }
1144
1146 protected void OnStop(Param par = null)
1147 {
1148 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1151 }
1152
1154 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1155 {
1156 float ret = value;
1157 if (!relative) //if not already relative...
1158 {
1159 switch (var_type)
1160 {
1161 case PPEConstants.VAR_TYPE_FLOAT:
1163 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1164 ret = Math.Clamp(ret,0.0,1.0);
1165 break;
1166 }
1167 }
1168 //Print("RelativizeValue: " + ret);
1169
1170 return ret;
1171 }
1172
1174 protected void SetDefaultValuesAll()
1175 {
1176 //<material<param_id,data>>
1178
1179 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1180 {
1181 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1182 {
1183 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1184
1185 if (!req_data.IsDataActive())
1186 continue;
1187
1188 switch (req_data.GetVarType())
1189 {
1190 case PPEConstants.VAR_TYPE_BOOL:
1191 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1192 break;
1193
1194 case PPEConstants.VAR_TYPE_INT:
1195 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1196 break;
1197
1198 case PPEConstants.VAR_TYPE_FLOAT:
1199 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1200 break;
1201
1202 case PPEConstants.VAR_TYPE_COLOR:
1203 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1204 break;
1205 }
1206 }
1207 }
1208 }
1209
1210 void DbgPrnt(string text)
1211 {
1212 //Debug.Log(""+text);
1213 }
1214}
1215
1217// Base requester platforms //
1219
1221{
1222 override int GetCategoryMask()
1223 {
1224 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1225 }
1226}
1227
1229{
1230 override int GetCategoryMask()
1231 {
1232 return PPERequesterCategory.MENU_EFFECTS;
1233 }
1234}

Используется в TimerBase::Run() и Start().

◆ OnStop()

void OnStop ( Param par = null)
protected

automatically resets all material parameters of this requester to defaults

795{
796 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
797 protected bool m_ValuesSent;
798 protected int m_IDX;
799
800 protected bool m_Valid = false;
801
802 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
803
805 {
806 m_Valid = PPERequesterBank.VerifyRequester(this);
807
809 m_ValuesSent = true;
810 m_IsRunning = false;
812 }
813
815 void SetRequesterUpdating(bool state)
816 {
817 if (!m_Valid)
818 {
819 Debug.Log("" + this + " not valid!");
820 return;
821 }
822
823 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
824
825 //TODO - separate into its own function?
826 if (state)
827 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
828 }
829
830 void Start(Param par = null)
831 {
832 OnStart(par);
833 m_IsRunning = true;
834 }
835
836 void Stop(Param par = null)
837 {
839 return;
840
841 OnStop(par);
842 m_IsRunning = false;
843 }
844
845 bool IsRequesterRunning()
846 {
847 return m_IsRunning;
848 }
849
851 void SetRequesterIDX(int idx)
852 {
853 m_IDX = idx;
854 }
855
857 int GetRequesterIDX()
858 {
859 return m_IDX;
860 }
861
863 int GetCategoryMask()
864 {
865 return PPERequesterCategory.NONE;
866 }
867
868 //SETTERS//
869 //vvvvvvv//
870 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
871 {
873 return;
874
876 data.SetPriorityLayer(priority_layer);
877 data.SetInteractionMask(operator);
878
879 data.m_BoolTarget = val;
880 data.m_BoolLast = data.m_BoolCurrent;
881
882 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
883 {
884 data.SetSettingDefaultValues(false);
885 data.SetDataActive(true);
886
888 }
889 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
890 }
891
892 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
893 {
894 //TODO - running check and cleanup rework (elsewhere!)
896 return;
897
899 data.m_BoolLast = data.m_BoolCurrent;
900 if (!data.IsSettingDefaultValues())
901 {
902 data.SetSettingDefaultValues(true);
903
905 }
906 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
907 }
908
909 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
910 {
912 return;
913
914 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
915 data.SetPriorityLayer(priority_layer);
916 data.SetInteractionMask(operator);
917
918 data.m_IntTarget = val;
919 data.m_IntLast = data.m_IntCurrent;
920 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
921 {
922 data.SetSettingDefaultValues(false);
923 data.SetDataActive(true);
924
926 }
927 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
928 }
929
930 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
931 {
932 //TODO - running check and cleanup rework (elsewhere!)
934 return;
935
936 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
937 data.m_IntLast = data.m_IntCurrent;
938 if (!data.IsSettingDefaultValues())
939 {
940 data.SetSettingDefaultValues(true);
941
943 }
944 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
945 }
946
947 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
948 {
950 return;
951
953 data.SetPriorityLayer(priority_layer);
954 data.SetInteractionMask(operator);
955
956 data.m_FloatFormerTarget = data.m_FloatTarget;
957 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
958 data.m_FloatLast = data.m_FloatCurrent;
959 data.m_FloatStart = data.m_FloatCurrent;
960 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
961 {
962 data.SetSettingDefaultValues(false);
963 data.SetDataActive(true);
964
966 }
967 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
968 }
969
970 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
971 {
972 //TODO - running check and cleanup rework (elsewhere!)
974 return;
975
977 data.m_FloatFormerTarget = data.m_FloatTarget;
978 data.m_FloatLast = data.m_FloatCurrent;
979 data.m_FloatStart = data.m_FloatCurrent;
980 if (!data.IsSettingDefaultValues())
981 {
982 data.SetSettingDefaultValues(true);
983
985 }
986 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
987 }
988
989 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
990 {
992 return;
993
994 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
995 data.SetPriorityLayer(priority_layer);
996 data.SetInteractionMask(operator);
997 data.m_ColorFormerTarget = data.m_ColorTarget;
998
999 data.m_ColorTarget.Copy(val);
1000
1001 data.m_ColorLast = data.m_ColorCurrent;
1002 data.m_ColorStart = data.m_ColorCurrent;
1003 //if (data.m_ColorTarget != data.m_ColorCurrent)
1004 {
1005 data.SetSettingDefaultValues(false);
1006 data.SetDataActive(true);
1007
1009 }
1010 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1011 }
1012
1013 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
1014 {
1015 //TODO - running check and cleanup rework (elsewhere!)
1017 return;
1018
1019 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1020 data.m_ColorFormerTarget = data.m_ColorTarget;
1021 data.m_ColorLast = data.m_ColorCurrent;
1022 data.m_ColorStart = data.m_ColorCurrent;
1023 if (!data.IsSettingDefaultValues())
1024 {
1025 data.SetSettingDefaultValues(true);
1026
1028 }
1029 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1030 }
1031
1032 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1033 {
1034 }
1035
1036 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1037 {
1038 }*/
1039
1040 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1041 {
1042 }*/
1043
1045 protected void QueueValuesSend()
1046 {
1047 m_ValuesSent = false;
1048 //m_IsRunning = true;
1050 }
1051
1054 {
1056 if ( m_RequestDataStructure.Get(mat_id) )
1057 {
1059 {
1061 }
1062 else
1063 {
1066 }
1067 }
1068 else
1069 {
1072 temp_map.Set(param_idx,data);
1074 }
1075
1076 if (!data)
1077 {
1078 Error("GetRequestData | no data found in the structure");
1079 }
1080
1081 data.m_Requester = this;
1082
1083 return data;
1084 }
1085
1086 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1087 {
1089 switch (type)
1090 {
1091 case PPEConstants.VAR_TYPE_BOOL:
1093 break;
1094
1095 case PPEConstants.VAR_TYPE_INT:
1096 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1097 break;
1098
1099 case PPEConstants.VAR_TYPE_FLOAT:
1101 break;
1102
1103 case PPEConstants.VAR_TYPE_COLOR:
1104 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1105 break;
1106 }
1107 return data;
1108 }
1109
1110 // unused?
1112 {
1114 }
1115
1116 protected void ClearRequesterData()
1117 {
1118 m_RequestDataStructure.Clear();
1119 }
1120
1122 {
1123 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1124 }
1125
1126 //EVENTS//
1127 //vvvvvv//
1128 void OnUpdate(float delta)
1129 {
1130 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1131
1132 if ( !m_ValuesSent )
1133 {
1134 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1135 {
1136 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1137 {
1138 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1139 }
1140 }
1141 m_ValuesSent = true;
1142 }
1143 SetRequesterUpdating(false);
1144 }
1145
1146 protected void OnStart(Param par = null)
1147 {
1149 }
1150
1152 protected void OnStop(Param par = null)
1153 {
1154 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1157 }
1158
1160 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1161 {
1162 float ret = value;
1163 if (!relative) //if not already relative...
1164 {
1165 switch (var_type)
1166 {
1167 case PPEConstants.VAR_TYPE_FLOAT:
1169 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1170 ret = Math.Clamp(ret,0.0,1.0);
1171 break;
1172 }
1173 }
1174 //Print("RelativizeValue: " + ret);
1175
1176 return ret;
1177 }
1178
1180 protected void SetDefaultValuesAll()
1181 {
1182 //<material<param_id,data>>
1184
1185 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1186 {
1187 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1188 {
1189 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1190
1191 if (!req_data.IsDataActive())
1192 continue;
1193
1194 switch (req_data.GetVarType())
1195 {
1196 case PPEConstants.VAR_TYPE_BOOL:
1197 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1198 break;
1199
1200 case PPEConstants.VAR_TYPE_INT:
1201 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1202 break;
1203
1204 case PPEConstants.VAR_TYPE_FLOAT:
1205 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1206 break;
1207
1208 case PPEConstants.VAR_TYPE_COLOR:
1209 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1210 break;
1211 }
1212 }
1213 }
1214 }
1215
1216 void DbgPrnt(string text)
1217 {
1218 //Debug.Log(""+text);
1219 }
1220}
1221
1223// Base requester platforms //
1225
1227{
1228 override int GetCategoryMask()
1229 {
1230 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1231 }
1232}
1233
1235{
1236 override int GetCategoryMask()
1237 {
1238 return PPERequesterCategory.MENU_EFFECTS;
1239 }
1240}

◆ OnUpdate()

void OnUpdate ( float delta)
protected
771{
772 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
773 protected bool m_ValuesSent;
774 protected int m_IDX;
775
776 protected bool m_Valid = false;
777
778 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
779
781 {
782 m_Valid = PPERequesterBank.VerifyRequester(this);
783
785 m_ValuesSent = true;
786 m_IsRunning = false;
788 }
789
791 void SetRequesterUpdating(bool state)
792 {
793 if (!m_Valid)
794 {
795 Debug.Log("" + this + " not valid!");
796 return;
797 }
798
799 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
800
801 //TODO - separate into its own function?
802 if (state)
803 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
804 }
805
806 void Start(Param par = null)
807 {
808 OnStart(par);
809 m_IsRunning = true;
810 }
811
812 void Stop(Param par = null)
813 {
815 return;
816
817 OnStop(par);
818 m_IsRunning = false;
819 }
820
821 bool IsRequesterRunning()
822 {
823 return m_IsRunning;
824 }
825
827 void SetRequesterIDX(int idx)
828 {
829 m_IDX = idx;
830 }
831
833 int GetRequesterIDX()
834 {
835 return m_IDX;
836 }
837
839 int GetCategoryMask()
840 {
841 return PPERequesterCategory.NONE;
842 }
843
844 //SETTERS//
845 //vvvvvvv//
846 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
847 {
849 return;
850
852 data.SetPriorityLayer(priority_layer);
853 data.SetInteractionMask(operator);
854
855 data.m_BoolTarget = val;
856 data.m_BoolLast = data.m_BoolCurrent;
857
858 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
859 {
860 data.SetSettingDefaultValues(false);
861 data.SetDataActive(true);
862
864 }
865 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
866 }
867
868 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
869 {
870 //TODO - running check and cleanup rework (elsewhere!)
872 return;
873
875 data.m_BoolLast = data.m_BoolCurrent;
876 if (!data.IsSettingDefaultValues())
877 {
878 data.SetSettingDefaultValues(true);
879
881 }
882 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
883 }
884
885 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
886 {
888 return;
889
890 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
891 data.SetPriorityLayer(priority_layer);
892 data.SetInteractionMask(operator);
893
894 data.m_IntTarget = val;
895 data.m_IntLast = data.m_IntCurrent;
896 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
897 {
898 data.SetSettingDefaultValues(false);
899 data.SetDataActive(true);
900
902 }
903 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
904 }
905
906 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
907 {
908 //TODO - running check and cleanup rework (elsewhere!)
910 return;
911
912 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
913 data.m_IntLast = data.m_IntCurrent;
914 if (!data.IsSettingDefaultValues())
915 {
916 data.SetSettingDefaultValues(true);
917
919 }
920 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
921 }
922
923 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
924 {
926 return;
927
929 data.SetPriorityLayer(priority_layer);
930 data.SetInteractionMask(operator);
931
932 data.m_FloatFormerTarget = data.m_FloatTarget;
933 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
934 data.m_FloatLast = data.m_FloatCurrent;
935 data.m_FloatStart = data.m_FloatCurrent;
936 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
937 {
938 data.SetSettingDefaultValues(false);
939 data.SetDataActive(true);
940
942 }
943 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
944 }
945
946 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
947 {
948 //TODO - running check and cleanup rework (elsewhere!)
950 return;
951
953 data.m_FloatFormerTarget = data.m_FloatTarget;
954 data.m_FloatLast = data.m_FloatCurrent;
955 data.m_FloatStart = data.m_FloatCurrent;
956 if (!data.IsSettingDefaultValues())
957 {
958 data.SetSettingDefaultValues(true);
959
961 }
962 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
963 }
964
965 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
966 {
968 return;
969
970 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
971 data.SetPriorityLayer(priority_layer);
972 data.SetInteractionMask(operator);
973 data.m_ColorFormerTarget = data.m_ColorTarget;
974
975 data.m_ColorTarget.Copy(val);
976
977 data.m_ColorLast = data.m_ColorCurrent;
978 data.m_ColorStart = data.m_ColorCurrent;
979 //if (data.m_ColorTarget != data.m_ColorCurrent)
980 {
981 data.SetSettingDefaultValues(false);
982 data.SetDataActive(true);
983
985 }
986 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
987 }
988
989 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
990 {
991 //TODO - running check and cleanup rework (elsewhere!)
993 return;
994
995 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
996 data.m_ColorFormerTarget = data.m_ColorTarget;
997 data.m_ColorLast = data.m_ColorCurrent;
998 data.m_ColorStart = data.m_ColorCurrent;
999 if (!data.IsSettingDefaultValues())
1000 {
1001 data.SetSettingDefaultValues(true);
1002
1004 }
1005 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1006 }
1007
1008 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1009 {
1010 }
1011
1012 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1013 {
1014 }*/
1015
1016 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1017 {
1018 }*/
1019
1021 protected void QueueValuesSend()
1022 {
1023 m_ValuesSent = false;
1024 //m_IsRunning = true;
1026 }
1027
1030 {
1032 if ( m_RequestDataStructure.Get(mat_id) )
1033 {
1035 {
1037 }
1038 else
1039 {
1042 }
1043 }
1044 else
1045 {
1048 temp_map.Set(param_idx,data);
1050 }
1051
1052 if (!data)
1053 {
1054 Error("GetRequestData | no data found in the structure");
1055 }
1056
1057 data.m_Requester = this;
1058
1059 return data;
1060 }
1061
1062 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1063 {
1065 switch (type)
1066 {
1067 case PPEConstants.VAR_TYPE_BOOL:
1069 break;
1070
1071 case PPEConstants.VAR_TYPE_INT:
1072 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1073 break;
1074
1075 case PPEConstants.VAR_TYPE_FLOAT:
1077 break;
1078
1079 case PPEConstants.VAR_TYPE_COLOR:
1080 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1081 break;
1082 }
1083 return data;
1084 }
1085
1086 // unused?
1088 {
1090 }
1091
1092 protected void ClearRequesterData()
1093 {
1094 m_RequestDataStructure.Clear();
1095 }
1096
1098 {
1099 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1100 }
1101
1102 //EVENTS//
1103 //vvvvvv//
1104 void OnUpdate(float delta)
1105 {
1106 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1107
1108 if ( !m_ValuesSent )
1109 {
1110 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1111 {
1112 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1113 {
1114 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1115 }
1116 }
1117 m_ValuesSent = true;
1118 }
1119 SetRequesterUpdating(false);
1120 }
1121
1122 protected void OnStart(Param par = null)
1123 {
1125 }
1126
1128 protected void OnStop(Param par = null)
1129 {
1130 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1133 }
1134
1136 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1137 {
1138 float ret = value;
1139 if (!relative) //if not already relative...
1140 {
1141 switch (var_type)
1142 {
1143 case PPEConstants.VAR_TYPE_FLOAT:
1145 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1146 ret = Math.Clamp(ret,0.0,1.0);
1147 break;
1148 }
1149 }
1150 //Print("RelativizeValue: " + ret);
1151
1152 return ret;
1153 }
1154
1156 protected void SetDefaultValuesAll()
1157 {
1158 //<material<param_id,data>>
1160
1161 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1162 {
1163 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1164 {
1165 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1166
1167 if (!req_data.IsDataActive())
1168 continue;
1169
1170 switch (req_data.GetVarType())
1171 {
1172 case PPEConstants.VAR_TYPE_BOOL:
1173 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1174 break;
1175
1176 case PPEConstants.VAR_TYPE_INT:
1177 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1178 break;
1179
1180 case PPEConstants.VAR_TYPE_FLOAT:
1181 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1182 break;
1183
1184 case PPEConstants.VAR_TYPE_COLOR:
1185 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1186 break;
1187 }
1188 }
1189 }
1190 }
1191
1192 void DbgPrnt(string text)
1193 {
1194 //Debug.Log(""+text);
1195 }
1196}
1197
1199// Base requester platforms //
1201
1203{
1204 override int GetCategoryMask()
1205 {
1206 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1207 }
1208}
1209
1211{
1212 override int GetCategoryMask()
1213 {
1214 return PPERequesterCategory.MENU_EFFECTS;
1215 }
1216}

◆ PPERequesterBase()

void PPERequesterBase ( int requester_IDX)
protected
445 {
446 return PPERequesterCategory.MENU_EFFECTS;
447 }
448}

◆ PrepareData()

PPERequestParamDataBase PrepareData ( int mat_id,
int param_idx,
int type )
protected
729{
730 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
731 protected bool m_ValuesSent;
732 protected int m_IDX;
733
734 protected bool m_Valid = false;
735
736 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
737
739 {
740 m_Valid = PPERequesterBank.VerifyRequester(this);
741
743 m_ValuesSent = true;
744 m_IsRunning = false;
746 }
747
749 void SetRequesterUpdating(bool state)
750 {
751 if (!m_Valid)
752 {
753 Debug.Log("" + this + " not valid!");
754 return;
755 }
756
757 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
758
759 //TODO - separate into its own function?
760 if (state)
761 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
762 }
763
764 void Start(Param par = null)
765 {
766 OnStart(par);
767 m_IsRunning = true;
768 }
769
770 void Stop(Param par = null)
771 {
773 return;
774
775 OnStop(par);
776 m_IsRunning = false;
777 }
778
779 bool IsRequesterRunning()
780 {
781 return m_IsRunning;
782 }
783
785 void SetRequesterIDX(int idx)
786 {
787 m_IDX = idx;
788 }
789
791 int GetRequesterIDX()
792 {
793 return m_IDX;
794 }
795
797 int GetCategoryMask()
798 {
799 return PPERequesterCategory.NONE;
800 }
801
802 //SETTERS//
803 //vvvvvvv//
804 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
805 {
807 return;
808
810 data.SetPriorityLayer(priority_layer);
811 data.SetInteractionMask(operator);
812
813 data.m_BoolTarget = val;
814 data.m_BoolLast = data.m_BoolCurrent;
815
816 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
817 {
818 data.SetSettingDefaultValues(false);
819 data.SetDataActive(true);
820
822 }
823 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
824 }
825
826 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
827 {
828 //TODO - running check and cleanup rework (elsewhere!)
830 return;
831
833 data.m_BoolLast = data.m_BoolCurrent;
834 if (!data.IsSettingDefaultValues())
835 {
836 data.SetSettingDefaultValues(true);
837
839 }
840 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
841 }
842
843 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
844 {
846 return;
847
848 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
849 data.SetPriorityLayer(priority_layer);
850 data.SetInteractionMask(operator);
851
852 data.m_IntTarget = val;
853 data.m_IntLast = data.m_IntCurrent;
854 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
855 {
856 data.SetSettingDefaultValues(false);
857 data.SetDataActive(true);
858
860 }
861 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
862 }
863
864 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
865 {
866 //TODO - running check and cleanup rework (elsewhere!)
868 return;
869
870 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
871 data.m_IntLast = data.m_IntCurrent;
872 if (!data.IsSettingDefaultValues())
873 {
874 data.SetSettingDefaultValues(true);
875
877 }
878 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
879 }
880
881 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
882 {
884 return;
885
887 data.SetPriorityLayer(priority_layer);
888 data.SetInteractionMask(operator);
889
890 data.m_FloatFormerTarget = data.m_FloatTarget;
891 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
892 data.m_FloatLast = data.m_FloatCurrent;
893 data.m_FloatStart = data.m_FloatCurrent;
894 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
895 {
896 data.SetSettingDefaultValues(false);
897 data.SetDataActive(true);
898
900 }
901 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
902 }
903
904 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
905 {
906 //TODO - running check and cleanup rework (elsewhere!)
908 return;
909
911 data.m_FloatFormerTarget = data.m_FloatTarget;
912 data.m_FloatLast = data.m_FloatCurrent;
913 data.m_FloatStart = data.m_FloatCurrent;
914 if (!data.IsSettingDefaultValues())
915 {
916 data.SetSettingDefaultValues(true);
917
919 }
920 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
921 }
922
923 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
924 {
926 return;
927
928 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
929 data.SetPriorityLayer(priority_layer);
930 data.SetInteractionMask(operator);
931 data.m_ColorFormerTarget = data.m_ColorTarget;
932
933 data.m_ColorTarget.Copy(val);
934
935 data.m_ColorLast = data.m_ColorCurrent;
936 data.m_ColorStart = data.m_ColorCurrent;
937 //if (data.m_ColorTarget != data.m_ColorCurrent)
938 {
939 data.SetSettingDefaultValues(false);
940 data.SetDataActive(true);
941
943 }
944 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
945 }
946
947 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
948 {
949 //TODO - running check and cleanup rework (elsewhere!)
951 return;
952
953 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
954 data.m_ColorFormerTarget = data.m_ColorTarget;
955 data.m_ColorLast = data.m_ColorCurrent;
956 data.m_ColorStart = data.m_ColorCurrent;
957 if (!data.IsSettingDefaultValues())
958 {
959 data.SetSettingDefaultValues(true);
960
962 }
963 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
964 }
965
966 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
967 {
968 }
969
970 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
971 {
972 }*/
973
974 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
975 {
976 }*/
977
979 protected void QueueValuesSend()
980 {
981 m_ValuesSent = false;
982 //m_IsRunning = true;
984 }
985
988 {
991 {
993 {
995 }
996 else
997 {
1000 }
1001 }
1002 else
1003 {
1006 temp_map.Set(param_idx,data);
1008 }
1009
1010 if (!data)
1011 {
1012 Error("GetRequestData | no data found in the structure");
1013 }
1014
1015 data.m_Requester = this;
1016
1017 return data;
1018 }
1019
1020 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1021 {
1023 switch (type)
1024 {
1025 case PPEConstants.VAR_TYPE_BOOL:
1027 break;
1028
1029 case PPEConstants.VAR_TYPE_INT:
1030 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1031 break;
1032
1033 case PPEConstants.VAR_TYPE_FLOAT:
1035 break;
1036
1037 case PPEConstants.VAR_TYPE_COLOR:
1038 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1039 break;
1040 }
1041 return data;
1042 }
1043
1044 // unused?
1046 {
1048 }
1049
1050 protected void ClearRequesterData()
1051 {
1052 m_RequestDataStructure.Clear();
1053 }
1054
1056 {
1057 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1058 }
1059
1060 //EVENTS//
1061 //vvvvvv//
1062 void OnUpdate(float delta)
1063 {
1064 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1065
1066 if ( !m_ValuesSent )
1067 {
1068 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1069 {
1070 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1071 {
1072 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1073 }
1074 }
1075 m_ValuesSent = true;
1076 }
1077 SetRequesterUpdating(false);
1078 }
1079
1080 protected void OnStart(Param par = null)
1081 {
1083 }
1084
1086 protected void OnStop(Param par = null)
1087 {
1088 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1091 }
1092
1094 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1095 {
1096 float ret = value;
1097 if (!relative) //if not already relative...
1098 {
1099 switch (var_type)
1100 {
1101 case PPEConstants.VAR_TYPE_FLOAT:
1103 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1104 ret = Math.Clamp(ret,0.0,1.0);
1105 break;
1106 }
1107 }
1108 //Print("RelativizeValue: " + ret);
1109
1110 return ret;
1111 }
1112
1114 protected void SetDefaultValuesAll()
1115 {
1116 //<material<param_id,data>>
1118
1119 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1120 {
1121 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1122 {
1123 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1124
1125 if (!req_data.IsDataActive())
1126 continue;
1127
1128 switch (req_data.GetVarType())
1129 {
1130 case PPEConstants.VAR_TYPE_BOOL:
1131 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1132 break;
1133
1134 case PPEConstants.VAR_TYPE_INT:
1135 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1136 break;
1137
1138 case PPEConstants.VAR_TYPE_FLOAT:
1139 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1140 break;
1141
1142 case PPEConstants.VAR_TYPE_COLOR:
1143 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1144 break;
1145 }
1146 }
1147 }
1148 }
1149
1150 void DbgPrnt(string text)
1151 {
1152 //Debug.Log(""+text);
1153 }
1154}
1155
1157// Base requester platforms //
1159
1161{
1162 override int GetCategoryMask()
1163 {
1164 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1165 }
1166}
1167
1169{
1170 override int GetCategoryMask()
1171 {
1172 return PPERequesterCategory.MENU_EFFECTS;
1173 }
1174}

◆ QueueValuesSend()

void QueueValuesSend ( )
protected

Sets this requester to update in the manager.

688{
689 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
690 protected bool m_ValuesSent;
691 protected int m_IDX;
692
693 protected bool m_Valid = false;
694
695 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
696
698 {
699 m_Valid = PPERequesterBank.VerifyRequester(this);
700
702 m_ValuesSent = true;
703 m_IsRunning = false;
705 }
706
708 void SetRequesterUpdating(bool state)
709 {
710 if (!m_Valid)
711 {
712 Debug.Log("" + this + " not valid!");
713 return;
714 }
715
716 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
717
718 //TODO - separate into its own function?
719 if (state)
720 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
721 }
722
723 void Start(Param par = null)
724 {
725 OnStart(par);
726 m_IsRunning = true;
727 }
728
729 void Stop(Param par = null)
730 {
732 return;
733
734 OnStop(par);
735 m_IsRunning = false;
736 }
737
738 bool IsRequesterRunning()
739 {
740 return m_IsRunning;
741 }
742
744 void SetRequesterIDX(int idx)
745 {
746 m_IDX = idx;
747 }
748
750 int GetRequesterIDX()
751 {
752 return m_IDX;
753 }
754
756 int GetCategoryMask()
757 {
758 return PPERequesterCategory.NONE;
759 }
760
761 //SETTERS//
762 //vvvvvvv//
763 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
764 {
766 return;
767
769 data.SetPriorityLayer(priority_layer);
770 data.SetInteractionMask(operator);
771
772 data.m_BoolTarget = val;
773 data.m_BoolLast = data.m_BoolCurrent;
774
775 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
776 {
777 data.SetSettingDefaultValues(false);
778 data.SetDataActive(true);
779
781 }
782 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
783 }
784
785 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
786 {
787 //TODO - running check and cleanup rework (elsewhere!)
789 return;
790
792 data.m_BoolLast = data.m_BoolCurrent;
793 if (!data.IsSettingDefaultValues())
794 {
795 data.SetSettingDefaultValues(true);
796
798 }
799 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
800 }
801
802 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
803 {
805 return;
806
807 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
808 data.SetPriorityLayer(priority_layer);
809 data.SetInteractionMask(operator);
810
811 data.m_IntTarget = val;
812 data.m_IntLast = data.m_IntCurrent;
813 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
814 {
815 data.SetSettingDefaultValues(false);
816 data.SetDataActive(true);
817
819 }
820 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
821 }
822
823 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
824 {
825 //TODO - running check and cleanup rework (elsewhere!)
827 return;
828
829 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
830 data.m_IntLast = data.m_IntCurrent;
831 if (!data.IsSettingDefaultValues())
832 {
833 data.SetSettingDefaultValues(true);
834
836 }
837 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
838 }
839
840 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
841 {
843 return;
844
846 data.SetPriorityLayer(priority_layer);
847 data.SetInteractionMask(operator);
848
849 data.m_FloatFormerTarget = data.m_FloatTarget;
850 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
851 data.m_FloatLast = data.m_FloatCurrent;
852 data.m_FloatStart = data.m_FloatCurrent;
853 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
854 {
855 data.SetSettingDefaultValues(false);
856 data.SetDataActive(true);
857
859 }
860 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
861 }
862
863 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
864 {
865 //TODO - running check and cleanup rework (elsewhere!)
867 return;
868
870 data.m_FloatFormerTarget = data.m_FloatTarget;
871 data.m_FloatLast = data.m_FloatCurrent;
872 data.m_FloatStart = data.m_FloatCurrent;
873 if (!data.IsSettingDefaultValues())
874 {
875 data.SetSettingDefaultValues(true);
876
878 }
879 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
880 }
881
882 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
883 {
885 return;
886
887 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
888 data.SetPriorityLayer(priority_layer);
889 data.SetInteractionMask(operator);
890 data.m_ColorFormerTarget = data.m_ColorTarget;
891
892 data.m_ColorTarget.Copy(val);
893
894 data.m_ColorLast = data.m_ColorCurrent;
895 data.m_ColorStart = data.m_ColorCurrent;
896 //if (data.m_ColorTarget != data.m_ColorCurrent)
897 {
898 data.SetSettingDefaultValues(false);
899 data.SetDataActive(true);
900
902 }
903 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
904 }
905
906 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
907 {
908 //TODO - running check and cleanup rework (elsewhere!)
910 return;
911
912 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
913 data.m_ColorFormerTarget = data.m_ColorTarget;
914 data.m_ColorLast = data.m_ColorCurrent;
915 data.m_ColorStart = data.m_ColorCurrent;
916 if (!data.IsSettingDefaultValues())
917 {
918 data.SetSettingDefaultValues(true);
919
921 }
922 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
923 }
924
925 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
926 {
927 }
928
929 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
930 {
931 }*/
932
933 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
934 {
935 }*/
936
938 protected void QueueValuesSend()
939 {
940 m_ValuesSent = false;
941 //m_IsRunning = true;
943 }
944
947 {
950 {
952 {
954 }
955 else
956 {
959 }
960 }
961 else
962 {
967 }
968
969 if (!data)
970 {
971 Error("GetRequestData | no data found in the structure");
972 }
973
974 data.m_Requester = this;
975
976 return data;
977 }
978
979 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
980 {
982 switch (type)
983 {
984 case PPEConstants.VAR_TYPE_BOOL:
986 break;
987
988 case PPEConstants.VAR_TYPE_INT:
989 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
990 break;
991
992 case PPEConstants.VAR_TYPE_FLOAT:
994 break;
995
996 case PPEConstants.VAR_TYPE_COLOR:
997 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
998 break;
999 }
1000 return data;
1001 }
1002
1003 // unused?
1005 {
1007 }
1008
1009 protected void ClearRequesterData()
1010 {
1011 m_RequestDataStructure.Clear();
1012 }
1013
1015 {
1016 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1017 }
1018
1019 //EVENTS//
1020 //vvvvvv//
1021 void OnUpdate(float delta)
1022 {
1023 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1024
1025 if ( !m_ValuesSent )
1026 {
1027 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1028 {
1029 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1030 {
1031 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1032 }
1033 }
1034 m_ValuesSent = true;
1035 }
1036 SetRequesterUpdating(false);
1037 }
1038
1039 protected void OnStart(Param par = null)
1040 {
1042 }
1043
1045 protected void OnStop(Param par = null)
1046 {
1047 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1050 }
1051
1053 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1054 {
1055 float ret = value;
1056 if (!relative) //if not already relative...
1057 {
1058 switch (var_type)
1059 {
1060 case PPEConstants.VAR_TYPE_FLOAT:
1062 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1063 ret = Math.Clamp(ret,0.0,1.0);
1064 break;
1065 }
1066 }
1067 //Print("RelativizeValue: " + ret);
1068
1069 return ret;
1070 }
1071
1073 protected void SetDefaultValuesAll()
1074 {
1075 //<material<param_id,data>>
1077
1078 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1079 {
1080 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1081 {
1082 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1083
1084 if (!req_data.IsDataActive())
1085 continue;
1086
1087 switch (req_data.GetVarType())
1088 {
1089 case PPEConstants.VAR_TYPE_BOOL:
1090 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1091 break;
1092
1093 case PPEConstants.VAR_TYPE_INT:
1094 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1095 break;
1096
1097 case PPEConstants.VAR_TYPE_FLOAT:
1098 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1099 break;
1100
1101 case PPEConstants.VAR_TYPE_COLOR:
1102 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1103 break;
1104 }
1105 }
1106 }
1107 }
1108
1109 void DbgPrnt(string text)
1110 {
1111 //Debug.Log(""+text);
1112 }
1113}
1114
1116// Base requester platforms //
1118
1120{
1121 override int GetCategoryMask()
1122 {
1123 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1124 }
1125}
1126
1128{
1129 override int GetCategoryMask()
1130 {
1131 return PPERequesterCategory.MENU_EFFECTS;
1132 }
1133}

◆ RelativizeValue()

float RelativizeValue ( float value,
int var_type,
int mat_id,
int param_id,
bool relative )
protected

converts all values used to relative values (if not relative already)

803{
804 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
805 protected bool m_ValuesSent;
806 protected int m_IDX;
807
808 protected bool m_Valid = false;
809
810 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
811
813 {
814 m_Valid = PPERequesterBank.VerifyRequester(this);
815
817 m_ValuesSent = true;
818 m_IsRunning = false;
820 }
821
823 void SetRequesterUpdating(bool state)
824 {
825 if (!m_Valid)
826 {
827 Debug.Log("" + this + " not valid!");
828 return;
829 }
830
831 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
832
833 //TODO - separate into its own function?
834 if (state)
835 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
836 }
837
838 void Start(Param par = null)
839 {
840 OnStart(par);
841 m_IsRunning = true;
842 }
843
844 void Stop(Param par = null)
845 {
847 return;
848
849 OnStop(par);
850 m_IsRunning = false;
851 }
852
853 bool IsRequesterRunning()
854 {
855 return m_IsRunning;
856 }
857
859 void SetRequesterIDX(int idx)
860 {
861 m_IDX = idx;
862 }
863
865 int GetRequesterIDX()
866 {
867 return m_IDX;
868 }
869
871 int GetCategoryMask()
872 {
873 return PPERequesterCategory.NONE;
874 }
875
876 //SETTERS//
877 //vvvvvvv//
878 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
879 {
881 return;
882
884 data.SetPriorityLayer(priority_layer);
885 data.SetInteractionMask(operator);
886
887 data.m_BoolTarget = val;
888 data.m_BoolLast = data.m_BoolCurrent;
889
890 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
891 {
892 data.SetSettingDefaultValues(false);
893 data.SetDataActive(true);
894
896 }
897 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
898 }
899
900 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
901 {
902 //TODO - running check and cleanup rework (elsewhere!)
904 return;
905
907 data.m_BoolLast = data.m_BoolCurrent;
908 if (!data.IsSettingDefaultValues())
909 {
910 data.SetSettingDefaultValues(true);
911
913 }
914 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
915 }
916
917 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
918 {
920 return;
921
922 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
923 data.SetPriorityLayer(priority_layer);
924 data.SetInteractionMask(operator);
925
926 data.m_IntTarget = val;
927 data.m_IntLast = data.m_IntCurrent;
928 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
929 {
930 data.SetSettingDefaultValues(false);
931 data.SetDataActive(true);
932
934 }
935 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
936 }
937
938 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
939 {
940 //TODO - running check and cleanup rework (elsewhere!)
942 return;
943
944 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
945 data.m_IntLast = data.m_IntCurrent;
946 if (!data.IsSettingDefaultValues())
947 {
948 data.SetSettingDefaultValues(true);
949
951 }
952 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
953 }
954
955 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
956 {
958 return;
959
961 data.SetPriorityLayer(priority_layer);
962 data.SetInteractionMask(operator);
963
964 data.m_FloatFormerTarget = data.m_FloatTarget;
965 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
966 data.m_FloatLast = data.m_FloatCurrent;
967 data.m_FloatStart = data.m_FloatCurrent;
968 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
969 {
970 data.SetSettingDefaultValues(false);
971 data.SetDataActive(true);
972
974 }
975 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
976 }
977
978 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
979 {
980 //TODO - running check and cleanup rework (elsewhere!)
982 return;
983
985 data.m_FloatFormerTarget = data.m_FloatTarget;
986 data.m_FloatLast = data.m_FloatCurrent;
987 data.m_FloatStart = data.m_FloatCurrent;
988 if (!data.IsSettingDefaultValues())
989 {
990 data.SetSettingDefaultValues(true);
991
993 }
994 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
995 }
996
997 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
998 {
1000 return;
1001
1002 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1003 data.SetPriorityLayer(priority_layer);
1004 data.SetInteractionMask(operator);
1005 data.m_ColorFormerTarget = data.m_ColorTarget;
1006
1007 data.m_ColorTarget.Copy(val);
1008
1009 data.m_ColorLast = data.m_ColorCurrent;
1010 data.m_ColorStart = data.m_ColorCurrent;
1011 //if (data.m_ColorTarget != data.m_ColorCurrent)
1012 {
1013 data.SetSettingDefaultValues(false);
1014 data.SetDataActive(true);
1015
1017 }
1018 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1019 }
1020
1021 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
1022 {
1023 //TODO - running check and cleanup rework (elsewhere!)
1025 return;
1026
1027 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1028 data.m_ColorFormerTarget = data.m_ColorTarget;
1029 data.m_ColorLast = data.m_ColorCurrent;
1030 data.m_ColorStart = data.m_ColorCurrent;
1031 if (!data.IsSettingDefaultValues())
1032 {
1033 data.SetSettingDefaultValues(true);
1034
1036 }
1037 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1038 }
1039
1040 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1041 {
1042 }
1043
1044 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1045 {
1046 }*/
1047
1048 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1049 {
1050 }*/
1051
1053 protected void QueueValuesSend()
1054 {
1055 m_ValuesSent = false;
1056 //m_IsRunning = true;
1058 }
1059
1062 {
1064 if ( m_RequestDataStructure.Get(mat_id) )
1065 {
1067 {
1069 }
1070 else
1071 {
1074 }
1075 }
1076 else
1077 {
1080 temp_map.Set(param_idx,data);
1082 }
1083
1084 if (!data)
1085 {
1086 Error("GetRequestData | no data found in the structure");
1087 }
1088
1089 data.m_Requester = this;
1090
1091 return data;
1092 }
1093
1094 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1095 {
1097 switch (type)
1098 {
1099 case PPEConstants.VAR_TYPE_BOOL:
1101 break;
1102
1103 case PPEConstants.VAR_TYPE_INT:
1104 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1105 break;
1106
1107 case PPEConstants.VAR_TYPE_FLOAT:
1109 break;
1110
1111 case PPEConstants.VAR_TYPE_COLOR:
1112 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1113 break;
1114 }
1115 return data;
1116 }
1117
1118 // unused?
1120 {
1122 }
1123
1124 protected void ClearRequesterData()
1125 {
1126 m_RequestDataStructure.Clear();
1127 }
1128
1130 {
1131 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1132 }
1133
1134 //EVENTS//
1135 //vvvvvv//
1136 void OnUpdate(float delta)
1137 {
1138 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1139
1140 if ( !m_ValuesSent )
1141 {
1142 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1143 {
1144 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1145 {
1146 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1147 }
1148 }
1149 m_ValuesSent = true;
1150 }
1151 SetRequesterUpdating(false);
1152 }
1153
1154 protected void OnStart(Param par = null)
1155 {
1157 }
1158
1160 protected void OnStop(Param par = null)
1161 {
1162 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1165 }
1166
1168 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1169 {
1170 float ret = value;
1171 if (!relative) //if not already relative...
1172 {
1173 switch (var_type)
1174 {
1175 case PPEConstants.VAR_TYPE_FLOAT:
1177 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1178 ret = Math.Clamp(ret,0.0,1.0);
1179 break;
1180 }
1181 }
1182 //Print("RelativizeValue: " + ret);
1183
1184 return ret;
1185 }
1186
1188 protected void SetDefaultValuesAll()
1189 {
1190 //<material<param_id,data>>
1192
1193 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1194 {
1195 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1196 {
1197 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1198
1199 if (!req_data.IsDataActive())
1200 continue;
1201
1202 switch (req_data.GetVarType())
1203 {
1204 case PPEConstants.VAR_TYPE_BOOL:
1205 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1206 break;
1207
1208 case PPEConstants.VAR_TYPE_INT:
1209 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1210 break;
1211
1212 case PPEConstants.VAR_TYPE_FLOAT:
1213 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1214 break;
1215
1216 case PPEConstants.VAR_TYPE_COLOR:
1217 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1218 break;
1219 }
1220 }
1221 }
1222 }
1223
1224 void DbgPrnt(string text)
1225 {
1226 //Debug.Log(""+text);
1227 }
1228}
1229
1231// Base requester platforms //
1233
1235{
1236 override int GetCategoryMask()
1237 {
1238 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1239 }
1240}
1241
1243{
1244 override int GetCategoryMask()
1245 {
1246 return PPERequesterCategory.MENU_EFFECTS;
1247 }
1248}

◆ SendCurrentValueData()

void SendCurrentValueData ( PPERequestParamDataBase data)
protected
764{
765 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
766 protected bool m_ValuesSent;
767 protected int m_IDX;
768
769 protected bool m_Valid = false;
770
771 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
772
774 {
775 m_Valid = PPERequesterBank.VerifyRequester(this);
776
778 m_ValuesSent = true;
779 m_IsRunning = false;
781 }
782
784 void SetRequesterUpdating(bool state)
785 {
786 if (!m_Valid)
787 {
788 Debug.Log("" + this + " not valid!");
789 return;
790 }
791
792 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
793
794 //TODO - separate into its own function?
795 if (state)
796 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
797 }
798
799 void Start(Param par = null)
800 {
801 OnStart(par);
802 m_IsRunning = true;
803 }
804
805 void Stop(Param par = null)
806 {
808 return;
809
810 OnStop(par);
811 m_IsRunning = false;
812 }
813
814 bool IsRequesterRunning()
815 {
816 return m_IsRunning;
817 }
818
820 void SetRequesterIDX(int idx)
821 {
822 m_IDX = idx;
823 }
824
826 int GetRequesterIDX()
827 {
828 return m_IDX;
829 }
830
832 int GetCategoryMask()
833 {
834 return PPERequesterCategory.NONE;
835 }
836
837 //SETTERS//
838 //vvvvvvv//
839 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
840 {
842 return;
843
845 data.SetPriorityLayer(priority_layer);
846 data.SetInteractionMask(operator);
847
848 data.m_BoolTarget = val;
849 data.m_BoolLast = data.m_BoolCurrent;
850
851 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
852 {
853 data.SetSettingDefaultValues(false);
854 data.SetDataActive(true);
855
857 }
858 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
859 }
860
861 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
862 {
863 //TODO - running check and cleanup rework (elsewhere!)
865 return;
866
868 data.m_BoolLast = data.m_BoolCurrent;
869 if (!data.IsSettingDefaultValues())
870 {
871 data.SetSettingDefaultValues(true);
872
874 }
875 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
876 }
877
878 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
879 {
881 return;
882
883 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
884 data.SetPriorityLayer(priority_layer);
885 data.SetInteractionMask(operator);
886
887 data.m_IntTarget = val;
888 data.m_IntLast = data.m_IntCurrent;
889 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
890 {
891 data.SetSettingDefaultValues(false);
892 data.SetDataActive(true);
893
895 }
896 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
897 }
898
899 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
900 {
901 //TODO - running check and cleanup rework (elsewhere!)
903 return;
904
905 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
906 data.m_IntLast = data.m_IntCurrent;
907 if (!data.IsSettingDefaultValues())
908 {
909 data.SetSettingDefaultValues(true);
910
912 }
913 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
914 }
915
916 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
917 {
919 return;
920
922 data.SetPriorityLayer(priority_layer);
923 data.SetInteractionMask(operator);
924
925 data.m_FloatFormerTarget = data.m_FloatTarget;
926 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
927 data.m_FloatLast = data.m_FloatCurrent;
928 data.m_FloatStart = data.m_FloatCurrent;
929 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
930 {
931 data.SetSettingDefaultValues(false);
932 data.SetDataActive(true);
933
935 }
936 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
937 }
938
939 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
940 {
941 //TODO - running check and cleanup rework (elsewhere!)
943 return;
944
946 data.m_FloatFormerTarget = data.m_FloatTarget;
947 data.m_FloatLast = data.m_FloatCurrent;
948 data.m_FloatStart = data.m_FloatCurrent;
949 if (!data.IsSettingDefaultValues())
950 {
951 data.SetSettingDefaultValues(true);
952
954 }
955 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
956 }
957
958 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
959 {
961 return;
962
963 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
964 data.SetPriorityLayer(priority_layer);
965 data.SetInteractionMask(operator);
966 data.m_ColorFormerTarget = data.m_ColorTarget;
967
968 data.m_ColorTarget.Copy(val);
969
970 data.m_ColorLast = data.m_ColorCurrent;
971 data.m_ColorStart = data.m_ColorCurrent;
972 //if (data.m_ColorTarget != data.m_ColorCurrent)
973 {
974 data.SetSettingDefaultValues(false);
975 data.SetDataActive(true);
976
978 }
979 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
980 }
981
982 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
983 {
984 //TODO - running check and cleanup rework (elsewhere!)
986 return;
987
988 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
989 data.m_ColorFormerTarget = data.m_ColorTarget;
990 data.m_ColorLast = data.m_ColorCurrent;
991 data.m_ColorStart = data.m_ColorCurrent;
992 if (!data.IsSettingDefaultValues())
993 {
994 data.SetSettingDefaultValues(true);
995
997 }
998 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
999 }
1000
1001 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1002 {
1003 }
1004
1005 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1006 {
1007 }*/
1008
1009 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1010 {
1011 }*/
1012
1014 protected void QueueValuesSend()
1015 {
1016 m_ValuesSent = false;
1017 //m_IsRunning = true;
1019 }
1020
1023 {
1025 if ( m_RequestDataStructure.Get(mat_id) )
1026 {
1028 {
1030 }
1031 else
1032 {
1035 }
1036 }
1037 else
1038 {
1041 temp_map.Set(param_idx,data);
1043 }
1044
1045 if (!data)
1046 {
1047 Error("GetRequestData | no data found in the structure");
1048 }
1049
1050 data.m_Requester = this;
1051
1052 return data;
1053 }
1054
1055 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1056 {
1058 switch (type)
1059 {
1060 case PPEConstants.VAR_TYPE_BOOL:
1062 break;
1063
1064 case PPEConstants.VAR_TYPE_INT:
1065 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1066 break;
1067
1068 case PPEConstants.VAR_TYPE_FLOAT:
1070 break;
1071
1072 case PPEConstants.VAR_TYPE_COLOR:
1073 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1074 break;
1075 }
1076 return data;
1077 }
1078
1079 // unused?
1081 {
1083 }
1084
1085 protected void ClearRequesterData()
1086 {
1087 m_RequestDataStructure.Clear();
1088 }
1089
1091 {
1092 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1093 }
1094
1095 //EVENTS//
1096 //vvvvvv//
1097 void OnUpdate(float delta)
1098 {
1099 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1100
1101 if ( !m_ValuesSent )
1102 {
1103 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1104 {
1105 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1106 {
1107 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1108 }
1109 }
1110 m_ValuesSent = true;
1111 }
1112 SetRequesterUpdating(false);
1113 }
1114
1115 protected void OnStart(Param par = null)
1116 {
1118 }
1119
1121 protected void OnStop(Param par = null)
1122 {
1123 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1126 }
1127
1129 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1130 {
1131 float ret = value;
1132 if (!relative) //if not already relative...
1133 {
1134 switch (var_type)
1135 {
1136 case PPEConstants.VAR_TYPE_FLOAT:
1138 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1139 ret = Math.Clamp(ret,0.0,1.0);
1140 break;
1141 }
1142 }
1143 //Print("RelativizeValue: " + ret);
1144
1145 return ret;
1146 }
1147
1149 protected void SetDefaultValuesAll()
1150 {
1151 //<material<param_id,data>>
1153
1154 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1155 {
1156 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1157 {
1158 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1159
1160 if (!req_data.IsDataActive())
1161 continue;
1162
1163 switch (req_data.GetVarType())
1164 {
1165 case PPEConstants.VAR_TYPE_BOOL:
1166 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1167 break;
1168
1169 case PPEConstants.VAR_TYPE_INT:
1170 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1171 break;
1172
1173 case PPEConstants.VAR_TYPE_FLOAT:
1174 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1175 break;
1176
1177 case PPEConstants.VAR_TYPE_COLOR:
1178 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1179 break;
1180 }
1181 }
1182 }
1183 }
1184
1185 void DbgPrnt(string text)
1186 {
1187 //Debug.Log(""+text);
1188 }
1189}
1190
1192// Base requester platforms //
1194
1196{
1197 override int GetCategoryMask()
1198 {
1199 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1200 }
1201}
1202
1204{
1205 override int GetCategoryMask()
1206 {
1207 return PPERequesterCategory.MENU_EFFECTS;
1208 }
1209}

◆ SetDefaultValuesAll()

void SetDefaultValuesAll ( )
protected

Sets all requested values to default, ignoring them in further calculations.

823{
824 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
825 protected bool m_ValuesSent;
826 protected int m_IDX;
827
828 protected bool m_Valid = false;
829
830 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
831
833 {
834 m_Valid = PPERequesterBank.VerifyRequester(this);
835
837 m_ValuesSent = true;
838 m_IsRunning = false;
840 }
841
843 void SetRequesterUpdating(bool state)
844 {
845 if (!m_Valid)
846 {
847 Debug.Log("" + this + " not valid!");
848 return;
849 }
850
851 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
852
853 //TODO - separate into its own function?
854 if (state)
855 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
856 }
857
858 void Start(Param par = null)
859 {
860 OnStart(par);
861 m_IsRunning = true;
862 }
863
864 void Stop(Param par = null)
865 {
867 return;
868
869 OnStop(par);
870 m_IsRunning = false;
871 }
872
873 bool IsRequesterRunning()
874 {
875 return m_IsRunning;
876 }
877
879 void SetRequesterIDX(int idx)
880 {
881 m_IDX = idx;
882 }
883
885 int GetRequesterIDX()
886 {
887 return m_IDX;
888 }
889
891 int GetCategoryMask()
892 {
893 return PPERequesterCategory.NONE;
894 }
895
896 //SETTERS//
897 //vvvvvvv//
898 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
899 {
901 return;
902
904 data.SetPriorityLayer(priority_layer);
905 data.SetInteractionMask(operator);
906
907 data.m_BoolTarget = val;
908 data.m_BoolLast = data.m_BoolCurrent;
909
910 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
911 {
912 data.SetSettingDefaultValues(false);
913 data.SetDataActive(true);
914
916 }
917 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
918 }
919
920 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
921 {
922 //TODO - running check and cleanup rework (elsewhere!)
924 return;
925
927 data.m_BoolLast = data.m_BoolCurrent;
928 if (!data.IsSettingDefaultValues())
929 {
930 data.SetSettingDefaultValues(true);
931
933 }
934 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
935 }
936
937 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
938 {
940 return;
941
942 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
943 data.SetPriorityLayer(priority_layer);
944 data.SetInteractionMask(operator);
945
946 data.m_IntTarget = val;
947 data.m_IntLast = data.m_IntCurrent;
948 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
949 {
950 data.SetSettingDefaultValues(false);
951 data.SetDataActive(true);
952
954 }
955 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
956 }
957
958 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
959 {
960 //TODO - running check and cleanup rework (elsewhere!)
962 return;
963
964 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
965 data.m_IntLast = data.m_IntCurrent;
966 if (!data.IsSettingDefaultValues())
967 {
968 data.SetSettingDefaultValues(true);
969
971 }
972 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
973 }
974
975 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
976 {
978 return;
979
981 data.SetPriorityLayer(priority_layer);
982 data.SetInteractionMask(operator);
983
984 data.m_FloatFormerTarget = data.m_FloatTarget;
985 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
986 data.m_FloatLast = data.m_FloatCurrent;
987 data.m_FloatStart = data.m_FloatCurrent;
988 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
989 {
990 data.SetSettingDefaultValues(false);
991 data.SetDataActive(true);
992
994 }
995 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
996 }
997
998 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
999 {
1000 //TODO - running check and cleanup rework (elsewhere!)
1002 return;
1003
1005 data.m_FloatFormerTarget = data.m_FloatTarget;
1006 data.m_FloatLast = data.m_FloatCurrent;
1007 data.m_FloatStart = data.m_FloatCurrent;
1008 if (!data.IsSettingDefaultValues())
1009 {
1010 data.SetSettingDefaultValues(true);
1011
1013 }
1014 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1015 }
1016
1017 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1018 {
1020 return;
1021
1022 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1023 data.SetPriorityLayer(priority_layer);
1024 data.SetInteractionMask(operator);
1025 data.m_ColorFormerTarget = data.m_ColorTarget;
1026
1027 data.m_ColorTarget.Copy(val);
1028
1029 data.m_ColorLast = data.m_ColorCurrent;
1030 data.m_ColorStart = data.m_ColorCurrent;
1031 //if (data.m_ColorTarget != data.m_ColorCurrent)
1032 {
1033 data.SetSettingDefaultValues(false);
1034 data.SetDataActive(true);
1035
1037 }
1038 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1039 }
1040
1041 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
1042 {
1043 //TODO - running check and cleanup rework (elsewhere!)
1045 return;
1046
1047 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1048 data.m_ColorFormerTarget = data.m_ColorTarget;
1049 data.m_ColorLast = data.m_ColorCurrent;
1050 data.m_ColorStart = data.m_ColorCurrent;
1051 if (!data.IsSettingDefaultValues())
1052 {
1053 data.SetSettingDefaultValues(true);
1054
1056 }
1057 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1058 }
1059
1060 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1061 {
1062 }
1063
1064 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1065 {
1066 }*/
1067
1068 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1069 {
1070 }*/
1071
1073 protected void QueueValuesSend()
1074 {
1075 m_ValuesSent = false;
1076 //m_IsRunning = true;
1078 }
1079
1082 {
1084 if ( m_RequestDataStructure.Get(mat_id) )
1085 {
1087 {
1089 }
1090 else
1091 {
1094 }
1095 }
1096 else
1097 {
1100 temp_map.Set(param_idx,data);
1102 }
1103
1104 if (!data)
1105 {
1106 Error("GetRequestData | no data found in the structure");
1107 }
1108
1109 data.m_Requester = this;
1110
1111 return data;
1112 }
1113
1114 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1115 {
1117 switch (type)
1118 {
1119 case PPEConstants.VAR_TYPE_BOOL:
1121 break;
1122
1123 case PPEConstants.VAR_TYPE_INT:
1124 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1125 break;
1126
1127 case PPEConstants.VAR_TYPE_FLOAT:
1129 break;
1130
1131 case PPEConstants.VAR_TYPE_COLOR:
1132 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1133 break;
1134 }
1135 return data;
1136 }
1137
1138 // unused?
1140 {
1142 }
1143
1144 protected void ClearRequesterData()
1145 {
1146 m_RequestDataStructure.Clear();
1147 }
1148
1150 {
1151 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1152 }
1153
1154 //EVENTS//
1155 //vvvvvv//
1156 void OnUpdate(float delta)
1157 {
1158 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1159
1160 if ( !m_ValuesSent )
1161 {
1162 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1163 {
1164 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1165 {
1166 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1167 }
1168 }
1169 m_ValuesSent = true;
1170 }
1171 SetRequesterUpdating(false);
1172 }
1173
1174 protected void OnStart(Param par = null)
1175 {
1177 }
1178
1180 protected void OnStop(Param par = null)
1181 {
1182 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1185 }
1186
1188 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1189 {
1190 float ret = value;
1191 if (!relative) //if not already relative...
1192 {
1193 switch (var_type)
1194 {
1195 case PPEConstants.VAR_TYPE_FLOAT:
1197 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1198 ret = Math.Clamp(ret,0.0,1.0);
1199 break;
1200 }
1201 }
1202 //Print("RelativizeValue: " + ret);
1203
1204 return ret;
1205 }
1206
1208 protected void SetDefaultValuesAll()
1209 {
1210 //<material<param_id,data>>
1212
1213 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1214 {
1215 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1216 {
1217 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1218
1219 if (!req_data.IsDataActive())
1220 continue;
1221
1222 switch (req_data.GetVarType())
1223 {
1224 case PPEConstants.VAR_TYPE_BOOL:
1225 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1226 break;
1227
1228 case PPEConstants.VAR_TYPE_INT:
1229 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1230 break;
1231
1232 case PPEConstants.VAR_TYPE_FLOAT:
1233 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1234 break;
1235
1236 case PPEConstants.VAR_TYPE_COLOR:
1237 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1238 break;
1239 }
1240 }
1241 }
1242 }
1243
1244 void DbgPrnt(string text)
1245 {
1246 //Debug.Log(""+text);
1247 }
1248}
1249
1251// Base requester platforms //
1253
1255{
1256 override int GetCategoryMask()
1257 {
1258 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1259 }
1260}
1261
1263{
1264 override int GetCategoryMask()
1265 {
1266 return PPERequesterCategory.MENU_EFFECTS;
1267 }
1268}

◆ SetRequesterIDX()

void SetRequesterIDX ( int idx)
protected

automatically assigned by PPERequesterBank

494{
495 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
496 protected bool m_ValuesSent;
497 protected int m_IDX;
498
499 protected bool m_Valid = false;
500
501 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
502
504 {
505 m_Valid = PPERequesterBank.VerifyRequester(this);
506
508 m_ValuesSent = true;
509 m_IsRunning = false;
511 }
512
514 void SetRequesterUpdating(bool state)
515 {
516 if (!m_Valid)
517 {
518 Debug.Log("" + this + " not valid!");
519 return;
520 }
521
522 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
523
524 //TODO - separate into its own function?
525 if (state)
526 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
527 }
528
529 void Start(Param par = null)
530 {
531 OnStart(par);
532 m_IsRunning = true;
533 }
534
535 void Stop(Param par = null)
536 {
538 return;
539
540 OnStop(par);
541 m_IsRunning = false;
542 }
543
544 bool IsRequesterRunning()
545 {
546 return m_IsRunning;
547 }
548
550 void SetRequesterIDX(int idx)
551 {
552 m_IDX = idx;
553 }
554
556 int GetRequesterIDX()
557 {
558 return m_IDX;
559 }
560
562 int GetCategoryMask()
563 {
564 return PPERequesterCategory.NONE;
565 }
566
567 //SETTERS//
568 //vvvvvvv//
569 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
570 {
572 return;
573
575 data.SetPriorityLayer(priority_layer);
576 data.SetInteractionMask(operator);
577
578 data.m_BoolTarget = val;
579 data.m_BoolLast = data.m_BoolCurrent;
580
581 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
582 {
583 data.SetSettingDefaultValues(false);
584 data.SetDataActive(true);
585
587 }
588 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
589 }
590
591 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
592 {
593 //TODO - running check and cleanup rework (elsewhere!)
595 return;
596
598 data.m_BoolLast = data.m_BoolCurrent;
599 if (!data.IsSettingDefaultValues())
600 {
601 data.SetSettingDefaultValues(true);
602
604 }
605 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
606 }
607
608 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
609 {
611 return;
612
613 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
614 data.SetPriorityLayer(priority_layer);
615 data.SetInteractionMask(operator);
616
617 data.m_IntTarget = val;
618 data.m_IntLast = data.m_IntCurrent;
619 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
620 {
621 data.SetSettingDefaultValues(false);
622 data.SetDataActive(true);
623
625 }
626 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
627 }
628
629 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
630 {
631 //TODO - running check and cleanup rework (elsewhere!)
633 return;
634
635 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
636 data.m_IntLast = data.m_IntCurrent;
637 if (!data.IsSettingDefaultValues())
638 {
639 data.SetSettingDefaultValues(true);
640
642 }
643 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
644 }
645
646 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
647 {
649 return;
650
652 data.SetPriorityLayer(priority_layer);
653 data.SetInteractionMask(operator);
654
655 data.m_FloatFormerTarget = data.m_FloatTarget;
656 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
657 data.m_FloatLast = data.m_FloatCurrent;
658 data.m_FloatStart = data.m_FloatCurrent;
659 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
660 {
661 data.SetSettingDefaultValues(false);
662 data.SetDataActive(true);
663
665 }
666 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
667 }
668
669 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
670 {
671 //TODO - running check and cleanup rework (elsewhere!)
673 return;
674
676 data.m_FloatFormerTarget = data.m_FloatTarget;
677 data.m_FloatLast = data.m_FloatCurrent;
678 data.m_FloatStart = data.m_FloatCurrent;
679 if (!data.IsSettingDefaultValues())
680 {
681 data.SetSettingDefaultValues(true);
682
684 }
685 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
686 }
687
688 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
689 {
691 return;
692
693 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
694 data.SetPriorityLayer(priority_layer);
695 data.SetInteractionMask(operator);
696 data.m_ColorFormerTarget = data.m_ColorTarget;
697
698 data.m_ColorTarget.Copy(val);
699
700 data.m_ColorLast = data.m_ColorCurrent;
701 data.m_ColorStart = data.m_ColorCurrent;
702 //if (data.m_ColorTarget != data.m_ColorCurrent)
703 {
704 data.SetSettingDefaultValues(false);
705 data.SetDataActive(true);
706
708 }
709 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
710 }
711
712 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
713 {
714 //TODO - running check and cleanup rework (elsewhere!)
716 return;
717
718 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
719 data.m_ColorFormerTarget = data.m_ColorTarget;
720 data.m_ColorLast = data.m_ColorCurrent;
721 data.m_ColorStart = data.m_ColorCurrent;
722 if (!data.IsSettingDefaultValues())
723 {
724 data.SetSettingDefaultValues(true);
725
727 }
728 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
729 }
730
731 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
732 {
733 }
734
735 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
736 {
737 }*/
738
739 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
740 {
741 }*/
742
744 protected void QueueValuesSend()
745 {
746 m_ValuesSent = false;
747 //m_IsRunning = true;
749 }
750
753 {
756 {
758 {
760 }
761 else
762 {
765 }
766 }
767 else
768 {
773 }
774
775 if (!data)
776 {
777 Error("GetRequestData | no data found in the structure");
778 }
779
780 data.m_Requester = this;
781
782 return data;
783 }
784
785 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
786 {
788 switch (type)
789 {
790 case PPEConstants.VAR_TYPE_BOOL:
792 break;
793
794 case PPEConstants.VAR_TYPE_INT:
795 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
796 break;
797
798 case PPEConstants.VAR_TYPE_FLOAT:
800 break;
801
802 case PPEConstants.VAR_TYPE_COLOR:
803 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
804 break;
805 }
806 return data;
807 }
808
809 // unused?
811 {
813 }
814
815 protected void ClearRequesterData()
816 {
818 }
819
821 {
822 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
823 }
824
825 //EVENTS//
826 //vvvvvv//
827 void OnUpdate(float delta)
828 {
829 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
830
831 if ( !m_ValuesSent )
832 {
833 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
834 {
835 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
836 {
837 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
838 }
839 }
840 m_ValuesSent = true;
841 }
843 }
844
845 protected void OnStart(Param par = null)
846 {
848 }
849
851 protected void OnStop(Param par = null)
852 {
853 //DbgPrnt("PPEDebug | " + this + " | OnStop");
856 }
857
859 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
860 {
861 float ret = value;
862 if (!relative) //if not already relative...
863 {
864 switch (var_type)
865 {
866 case PPEConstants.VAR_TYPE_FLOAT:
868 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
869 ret = Math.Clamp(ret,0.0,1.0);
870 break;
871 }
872 }
873 //Print("RelativizeValue: " + ret);
874
875 return ret;
876 }
877
879 protected void SetDefaultValuesAll()
880 {
881 //<material<param_id,data>>
883
884 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
885 {
886 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
887 {
888 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
889
890 if (!req_data.IsDataActive())
891 continue;
892
893 switch (req_data.GetVarType())
894 {
895 case PPEConstants.VAR_TYPE_BOOL:
896 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
897 break;
898
899 case PPEConstants.VAR_TYPE_INT:
900 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
901 break;
902
903 case PPEConstants.VAR_TYPE_FLOAT:
904 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
905 break;
906
907 case PPEConstants.VAR_TYPE_COLOR:
908 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
909 break;
910 }
911 }
912 }
913 }
914
915 void DbgPrnt(string text)
916 {
917 //Debug.Log(""+text);
918 }
919}
920
922// Base requester platforms //
924
926{
927 override int GetCategoryMask()
928 {
929 return PPERequesterCategory.GAMEPLAY_EFFECTS;
930 }
931}
932
934{
935 override int GetCategoryMask()
936 {
937 return PPERequesterCategory.MENU_EFFECTS;
938 }
939}

◆ SetRequesterUpdating()

void SetRequesterUpdating ( bool state)
protected

Has to be set for the requester to be handled.

458{
459 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
460 protected bool m_ValuesSent;
461 protected int m_IDX;
462
463 protected bool m_Valid = false;
464
465 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
466
468 {
469 m_Valid = PPERequesterBank.VerifyRequester(this);
470
472 m_ValuesSent = true;
473 m_IsRunning = false;
475 }
476
478 void SetRequesterUpdating(bool state)
479 {
480 if (!m_Valid)
481 {
482 Debug.Log("" + this + " not valid!");
483 return;
484 }
485
486 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
487
488 //TODO - separate into its own function?
489 if (state)
490 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
491 }
492
493 void Start(Param par = null)
494 {
495 OnStart(par);
496 m_IsRunning = true;
497 }
498
499 void Stop(Param par = null)
500 {
502 return;
503
504 OnStop(par);
505 m_IsRunning = false;
506 }
507
508 bool IsRequesterRunning()
509 {
510 return m_IsRunning;
511 }
512
514 void SetRequesterIDX(int idx)
515 {
516 m_IDX = idx;
517 }
518
520 int GetRequesterIDX()
521 {
522 return m_IDX;
523 }
524
526 int GetCategoryMask()
527 {
528 return PPERequesterCategory.NONE;
529 }
530
531 //SETTERS//
532 //vvvvvvv//
533 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
534 {
536 return;
537
539 data.SetPriorityLayer(priority_layer);
540 data.SetInteractionMask(operator);
541
542 data.m_BoolTarget = val;
543 data.m_BoolLast = data.m_BoolCurrent;
544
545 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
546 {
547 data.SetSettingDefaultValues(false);
548 data.SetDataActive(true);
549
551 }
552 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
553 }
554
555 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
556 {
557 //TODO - running check and cleanup rework (elsewhere!)
559 return;
560
562 data.m_BoolLast = data.m_BoolCurrent;
563 if (!data.IsSettingDefaultValues())
564 {
565 data.SetSettingDefaultValues(true);
566
568 }
569 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
570 }
571
572 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
573 {
575 return;
576
577 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
578 data.SetPriorityLayer(priority_layer);
579 data.SetInteractionMask(operator);
580
581 data.m_IntTarget = val;
582 data.m_IntLast = data.m_IntCurrent;
583 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
584 {
585 data.SetSettingDefaultValues(false);
586 data.SetDataActive(true);
587
589 }
590 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
591 }
592
593 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
594 {
595 //TODO - running check and cleanup rework (elsewhere!)
597 return;
598
599 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
600 data.m_IntLast = data.m_IntCurrent;
601 if (!data.IsSettingDefaultValues())
602 {
603 data.SetSettingDefaultValues(true);
604
606 }
607 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
608 }
609
610 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
611 {
613 return;
614
616 data.SetPriorityLayer(priority_layer);
617 data.SetInteractionMask(operator);
618
619 data.m_FloatFormerTarget = data.m_FloatTarget;
620 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
621 data.m_FloatLast = data.m_FloatCurrent;
622 data.m_FloatStart = data.m_FloatCurrent;
623 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
624 {
625 data.SetSettingDefaultValues(false);
626 data.SetDataActive(true);
627
629 }
630 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
631 }
632
633 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
634 {
635 //TODO - running check and cleanup rework (elsewhere!)
637 return;
638
640 data.m_FloatFormerTarget = data.m_FloatTarget;
641 data.m_FloatLast = data.m_FloatCurrent;
642 data.m_FloatStart = data.m_FloatCurrent;
643 if (!data.IsSettingDefaultValues())
644 {
645 data.SetSettingDefaultValues(true);
646
648 }
649 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
650 }
651
652 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
653 {
655 return;
656
657 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
658 data.SetPriorityLayer(priority_layer);
659 data.SetInteractionMask(operator);
660 data.m_ColorFormerTarget = data.m_ColorTarget;
661
662 data.m_ColorTarget.Copy(val);
663
664 data.m_ColorLast = data.m_ColorCurrent;
665 data.m_ColorStart = data.m_ColorCurrent;
666 //if (data.m_ColorTarget != data.m_ColorCurrent)
667 {
668 data.SetSettingDefaultValues(false);
669 data.SetDataActive(true);
670
672 }
673 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
674 }
675
676 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
677 {
678 //TODO - running check and cleanup rework (elsewhere!)
680 return;
681
682 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
683 data.m_ColorFormerTarget = data.m_ColorTarget;
684 data.m_ColorLast = data.m_ColorCurrent;
685 data.m_ColorStart = data.m_ColorCurrent;
686 if (!data.IsSettingDefaultValues())
687 {
688 data.SetSettingDefaultValues(true);
689
691 }
692 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
693 }
694
695 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
696 {
697 }
698
699 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
700 {
701 }*/
702
703 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
704 {
705 }*/
706
708 protected void QueueValuesSend()
709 {
710 m_ValuesSent = false;
711 //m_IsRunning = true;
713 }
714
717 {
720 {
722 {
724 }
725 else
726 {
729 }
730 }
731 else
732 {
737 }
738
739 if (!data)
740 {
741 Error("GetRequestData | no data found in the structure");
742 }
743
744 data.m_Requester = this;
745
746 return data;
747 }
748
749 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
750 {
752 switch (type)
753 {
754 case PPEConstants.VAR_TYPE_BOOL:
756 break;
757
758 case PPEConstants.VAR_TYPE_INT:
759 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
760 break;
761
762 case PPEConstants.VAR_TYPE_FLOAT:
764 break;
765
766 case PPEConstants.VAR_TYPE_COLOR:
767 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
768 break;
769 }
770 return data;
771 }
772
773 // unused?
775 {
777 }
778
779 protected void ClearRequesterData()
780 {
782 }
783
785 {
786 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
787 }
788
789 //EVENTS//
790 //vvvvvv//
791 void OnUpdate(float delta)
792 {
793 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
794
795 if ( !m_ValuesSent )
796 {
797 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
798 {
799 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
800 {
801 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
802 }
803 }
804 m_ValuesSent = true;
805 }
807 }
808
809 protected void OnStart(Param par = null)
810 {
812 }
813
815 protected void OnStop(Param par = null)
816 {
817 //DbgPrnt("PPEDebug | " + this + " | OnStop");
820 }
821
823 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
824 {
825 float ret = value;
826 if (!relative) //if not already relative...
827 {
828 switch (var_type)
829 {
830 case PPEConstants.VAR_TYPE_FLOAT:
832 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
833 ret = Math.Clamp(ret,0.0,1.0);
834 break;
835 }
836 }
837 //Print("RelativizeValue: " + ret);
838
839 return ret;
840 }
841
843 protected void SetDefaultValuesAll()
844 {
845 //<material<param_id,data>>
847
848 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
849 {
850 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
851 {
852 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
853
854 if (!req_data.IsDataActive())
855 continue;
856
857 switch (req_data.GetVarType())
858 {
859 case PPEConstants.VAR_TYPE_BOOL:
860 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
861 break;
862
863 case PPEConstants.VAR_TYPE_INT:
864 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
865 break;
866
867 case PPEConstants.VAR_TYPE_FLOAT:
868 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
869 break;
870
871 case PPEConstants.VAR_TYPE_COLOR:
872 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
873 break;
874 }
875 }
876 }
877 }
878
879 void DbgPrnt(string text)
880 {
881 //Debug.Log(""+text);
882 }
883}
884
886// Base requester platforms //
888
890{
891 override int GetCategoryMask()
892 {
893 return PPERequesterCategory.GAMEPLAY_EFFECTS;
894 }
895}
896
898{
899 override int GetCategoryMask()
900 {
901 return PPERequesterCategory.MENU_EFFECTS;
902 }
903}

◆ SetTargetValueBool()

void SetTargetValueBool ( int mat_id,
int param_idx,
bool val,
int priority_layer,
int operator = PPOperators.SET )
protected
513{
514 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
515 protected bool m_ValuesSent;
516 protected int m_IDX;
517
518 protected bool m_Valid = false;
519
520 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
521
523 {
524 m_Valid = PPERequesterBank.VerifyRequester(this);
525
527 m_ValuesSent = true;
528 m_IsRunning = false;
530 }
531
533 void SetRequesterUpdating(bool state)
534 {
535 if (!m_Valid)
536 {
537 Debug.Log("" + this + " not valid!");
538 return;
539 }
540
541 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
542
543 //TODO - separate into its own function?
544 if (state)
545 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
546 }
547
548 void Start(Param par = null)
549 {
550 OnStart(par);
551 m_IsRunning = true;
552 }
553
554 void Stop(Param par = null)
555 {
557 return;
558
559 OnStop(par);
560 m_IsRunning = false;
561 }
562
563 bool IsRequesterRunning()
564 {
565 return m_IsRunning;
566 }
567
569 void SetRequesterIDX(int idx)
570 {
571 m_IDX = idx;
572 }
573
575 int GetRequesterIDX()
576 {
577 return m_IDX;
578 }
579
581 int GetCategoryMask()
582 {
583 return PPERequesterCategory.NONE;
584 }
585
586 //SETTERS//
587 //vvvvvvv//
588 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
589 {
591 return;
592
594 data.SetPriorityLayer(priority_layer);
595 data.SetInteractionMask(operator);
596
597 data.m_BoolTarget = val;
598 data.m_BoolLast = data.m_BoolCurrent;
599
600 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
601 {
602 data.SetSettingDefaultValues(false);
603 data.SetDataActive(true);
604
606 }
607 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
608 }
609
610 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
611 {
612 //TODO - running check and cleanup rework (elsewhere!)
614 return;
615
617 data.m_BoolLast = data.m_BoolCurrent;
618 if (!data.IsSettingDefaultValues())
619 {
620 data.SetSettingDefaultValues(true);
621
623 }
624 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
625 }
626
627 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
628 {
630 return;
631
632 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
633 data.SetPriorityLayer(priority_layer);
634 data.SetInteractionMask(operator);
635
636 data.m_IntTarget = val;
637 data.m_IntLast = data.m_IntCurrent;
638 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
639 {
640 data.SetSettingDefaultValues(false);
641 data.SetDataActive(true);
642
644 }
645 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
646 }
647
648 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
649 {
650 //TODO - running check and cleanup rework (elsewhere!)
652 return;
653
654 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
655 data.m_IntLast = data.m_IntCurrent;
656 if (!data.IsSettingDefaultValues())
657 {
658 data.SetSettingDefaultValues(true);
659
661 }
662 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
663 }
664
665 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
666 {
668 return;
669
671 data.SetPriorityLayer(priority_layer);
672 data.SetInteractionMask(operator);
673
674 data.m_FloatFormerTarget = data.m_FloatTarget;
675 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
676 data.m_FloatLast = data.m_FloatCurrent;
677 data.m_FloatStart = data.m_FloatCurrent;
678 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
679 {
680 data.SetSettingDefaultValues(false);
681 data.SetDataActive(true);
682
684 }
685 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
686 }
687
688 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
689 {
690 //TODO - running check and cleanup rework (elsewhere!)
692 return;
693
695 data.m_FloatFormerTarget = data.m_FloatTarget;
696 data.m_FloatLast = data.m_FloatCurrent;
697 data.m_FloatStart = data.m_FloatCurrent;
698 if (!data.IsSettingDefaultValues())
699 {
700 data.SetSettingDefaultValues(true);
701
703 }
704 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
705 }
706
707 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
708 {
710 return;
711
712 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
713 data.SetPriorityLayer(priority_layer);
714 data.SetInteractionMask(operator);
715 data.m_ColorFormerTarget = data.m_ColorTarget;
716
717 data.m_ColorTarget.Copy(val);
718
719 data.m_ColorLast = data.m_ColorCurrent;
720 data.m_ColorStart = data.m_ColorCurrent;
721 //if (data.m_ColorTarget != data.m_ColorCurrent)
722 {
723 data.SetSettingDefaultValues(false);
724 data.SetDataActive(true);
725
727 }
728 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
729 }
730
731 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
732 {
733 //TODO - running check and cleanup rework (elsewhere!)
735 return;
736
737 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
738 data.m_ColorFormerTarget = data.m_ColorTarget;
739 data.m_ColorLast = data.m_ColorCurrent;
740 data.m_ColorStart = data.m_ColorCurrent;
741 if (!data.IsSettingDefaultValues())
742 {
743 data.SetSettingDefaultValues(true);
744
746 }
747 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
748 }
749
750 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
751 {
752 }
753
754 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
755 {
756 }*/
757
758 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
759 {
760 }*/
761
763 protected void QueueValuesSend()
764 {
765 m_ValuesSent = false;
766 //m_IsRunning = true;
768 }
769
772 {
775 {
777 {
779 }
780 else
781 {
784 }
785 }
786 else
787 {
792 }
793
794 if (!data)
795 {
796 Error("GetRequestData | no data found in the structure");
797 }
798
799 data.m_Requester = this;
800
801 return data;
802 }
803
804 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
805 {
807 switch (type)
808 {
809 case PPEConstants.VAR_TYPE_BOOL:
811 break;
812
813 case PPEConstants.VAR_TYPE_INT:
814 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
815 break;
816
817 case PPEConstants.VAR_TYPE_FLOAT:
819 break;
820
821 case PPEConstants.VAR_TYPE_COLOR:
822 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
823 break;
824 }
825 return data;
826 }
827
828 // unused?
830 {
832 }
833
834 protected void ClearRequesterData()
835 {
837 }
838
840 {
841 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
842 }
843
844 //EVENTS//
845 //vvvvvv//
846 void OnUpdate(float delta)
847 {
848 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
849
850 if ( !m_ValuesSent )
851 {
852 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
853 {
854 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
855 {
856 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
857 }
858 }
859 m_ValuesSent = true;
860 }
862 }
863
864 protected void OnStart(Param par = null)
865 {
867 }
868
870 protected void OnStop(Param par = null)
871 {
872 //DbgPrnt("PPEDebug | " + this + " | OnStop");
875 }
876
878 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
879 {
880 float ret = value;
881 if (!relative) //if not already relative...
882 {
883 switch (var_type)
884 {
885 case PPEConstants.VAR_TYPE_FLOAT:
887 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
888 ret = Math.Clamp(ret,0.0,1.0);
889 break;
890 }
891 }
892 //Print("RelativizeValue: " + ret);
893
894 return ret;
895 }
896
898 protected void SetDefaultValuesAll()
899 {
900 //<material<param_id,data>>
902
903 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
904 {
905 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
906 {
907 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
908
909 if (!req_data.IsDataActive())
910 continue;
911
912 switch (req_data.GetVarType())
913 {
914 case PPEConstants.VAR_TYPE_BOOL:
915 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
916 break;
917
918 case PPEConstants.VAR_TYPE_INT:
919 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
920 break;
921
922 case PPEConstants.VAR_TYPE_FLOAT:
923 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
924 break;
925
926 case PPEConstants.VAR_TYPE_COLOR:
927 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
928 break;
929 }
930 }
931 }
932 }
933
934 void DbgPrnt(string text)
935 {
936 //Debug.Log(""+text);
937 }
938}
939
941// Base requester platforms //
943
945{
946 override int GetCategoryMask()
947 {
948 return PPERequesterCategory.GAMEPLAY_EFFECTS;
949 }
950}
951
953{
954 override int GetCategoryMask()
955 {
956 return PPERequesterCategory.MENU_EFFECTS;
957 }
958}

Используется в PPERequester_GameplayBase::SetValuesIronsights().

◆ SetTargetValueBoolDefault()

void SetTargetValueBoolDefault ( int mat_id,
int param_idx )
protected
535{
536 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
537 protected bool m_ValuesSent;
538 protected int m_IDX;
539
540 protected bool m_Valid = false;
541
542 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
543
545 {
546 m_Valid = PPERequesterBank.VerifyRequester(this);
547
549 m_ValuesSent = true;
550 m_IsRunning = false;
552 }
553
555 void SetRequesterUpdating(bool state)
556 {
557 if (!m_Valid)
558 {
559 Debug.Log("" + this + " not valid!");
560 return;
561 }
562
563 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
564
565 //TODO - separate into its own function?
566 if (state)
567 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
568 }
569
570 void Start(Param par = null)
571 {
572 OnStart(par);
573 m_IsRunning = true;
574 }
575
576 void Stop(Param par = null)
577 {
579 return;
580
581 OnStop(par);
582 m_IsRunning = false;
583 }
584
585 bool IsRequesterRunning()
586 {
587 return m_IsRunning;
588 }
589
591 void SetRequesterIDX(int idx)
592 {
593 m_IDX = idx;
594 }
595
597 int GetRequesterIDX()
598 {
599 return m_IDX;
600 }
601
603 int GetCategoryMask()
604 {
605 return PPERequesterCategory.NONE;
606 }
607
608 //SETTERS//
609 //vvvvvvv//
610 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
611 {
613 return;
614
616 data.SetPriorityLayer(priority_layer);
617 data.SetInteractionMask(operator);
618
619 data.m_BoolTarget = val;
620 data.m_BoolLast = data.m_BoolCurrent;
621
622 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
623 {
624 data.SetSettingDefaultValues(false);
625 data.SetDataActive(true);
626
628 }
629 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
630 }
631
632 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
633 {
634 //TODO - running check and cleanup rework (elsewhere!)
636 return;
637
639 data.m_BoolLast = data.m_BoolCurrent;
640 if (!data.IsSettingDefaultValues())
641 {
642 data.SetSettingDefaultValues(true);
643
645 }
646 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
647 }
648
649 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
650 {
652 return;
653
654 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
655 data.SetPriorityLayer(priority_layer);
656 data.SetInteractionMask(operator);
657
658 data.m_IntTarget = val;
659 data.m_IntLast = data.m_IntCurrent;
660 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
661 {
662 data.SetSettingDefaultValues(false);
663 data.SetDataActive(true);
664
666 }
667 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
668 }
669
670 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
671 {
672 //TODO - running check and cleanup rework (elsewhere!)
674 return;
675
676 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
677 data.m_IntLast = data.m_IntCurrent;
678 if (!data.IsSettingDefaultValues())
679 {
680 data.SetSettingDefaultValues(true);
681
683 }
684 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
685 }
686
687 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
688 {
690 return;
691
693 data.SetPriorityLayer(priority_layer);
694 data.SetInteractionMask(operator);
695
696 data.m_FloatFormerTarget = data.m_FloatTarget;
697 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
698 data.m_FloatLast = data.m_FloatCurrent;
699 data.m_FloatStart = data.m_FloatCurrent;
700 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
701 {
702 data.SetSettingDefaultValues(false);
703 data.SetDataActive(true);
704
706 }
707 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
708 }
709
710 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
711 {
712 //TODO - running check and cleanup rework (elsewhere!)
714 return;
715
717 data.m_FloatFormerTarget = data.m_FloatTarget;
718 data.m_FloatLast = data.m_FloatCurrent;
719 data.m_FloatStart = data.m_FloatCurrent;
720 if (!data.IsSettingDefaultValues())
721 {
722 data.SetSettingDefaultValues(true);
723
725 }
726 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
727 }
728
729 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
730 {
732 return;
733
734 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
735 data.SetPriorityLayer(priority_layer);
736 data.SetInteractionMask(operator);
737 data.m_ColorFormerTarget = data.m_ColorTarget;
738
739 data.m_ColorTarget.Copy(val);
740
741 data.m_ColorLast = data.m_ColorCurrent;
742 data.m_ColorStart = data.m_ColorCurrent;
743 //if (data.m_ColorTarget != data.m_ColorCurrent)
744 {
745 data.SetSettingDefaultValues(false);
746 data.SetDataActive(true);
747
749 }
750 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
751 }
752
753 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
754 {
755 //TODO - running check and cleanup rework (elsewhere!)
757 return;
758
759 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
760 data.m_ColorFormerTarget = data.m_ColorTarget;
761 data.m_ColorLast = data.m_ColorCurrent;
762 data.m_ColorStart = data.m_ColorCurrent;
763 if (!data.IsSettingDefaultValues())
764 {
765 data.SetSettingDefaultValues(true);
766
768 }
769 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
770 }
771
772 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
773 {
774 }
775
776 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
777 {
778 }*/
779
780 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
781 {
782 }*/
783
785 protected void QueueValuesSend()
786 {
787 m_ValuesSent = false;
788 //m_IsRunning = true;
790 }
791
794 {
797 {
799 {
801 }
802 else
803 {
806 }
807 }
808 else
809 {
814 }
815
816 if (!data)
817 {
818 Error("GetRequestData | no data found in the structure");
819 }
820
821 data.m_Requester = this;
822
823 return data;
824 }
825
826 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
827 {
829 switch (type)
830 {
831 case PPEConstants.VAR_TYPE_BOOL:
833 break;
834
835 case PPEConstants.VAR_TYPE_INT:
836 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
837 break;
838
839 case PPEConstants.VAR_TYPE_FLOAT:
841 break;
842
843 case PPEConstants.VAR_TYPE_COLOR:
844 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
845 break;
846 }
847 return data;
848 }
849
850 // unused?
852 {
854 }
855
856 protected void ClearRequesterData()
857 {
859 }
860
862 {
863 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
864 }
865
866 //EVENTS//
867 //vvvvvv//
868 void OnUpdate(float delta)
869 {
870 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
871
872 if ( !m_ValuesSent )
873 {
874 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
875 {
876 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
877 {
878 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
879 }
880 }
881 m_ValuesSent = true;
882 }
884 }
885
886 protected void OnStart(Param par = null)
887 {
889 }
890
892 protected void OnStop(Param par = null)
893 {
894 //DbgPrnt("PPEDebug | " + this + " | OnStop");
897 }
898
900 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
901 {
902 float ret = value;
903 if (!relative) //if not already relative...
904 {
905 switch (var_type)
906 {
907 case PPEConstants.VAR_TYPE_FLOAT:
909 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
910 ret = Math.Clamp(ret,0.0,1.0);
911 break;
912 }
913 }
914 //Print("RelativizeValue: " + ret);
915
916 return ret;
917 }
918
920 protected void SetDefaultValuesAll()
921 {
922 //<material<param_id,data>>
924
925 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
926 {
927 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
928 {
929 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
930
931 if (!req_data.IsDataActive())
932 continue;
933
934 switch (req_data.GetVarType())
935 {
936 case PPEConstants.VAR_TYPE_BOOL:
937 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
938 break;
939
940 case PPEConstants.VAR_TYPE_INT:
941 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
942 break;
943
944 case PPEConstants.VAR_TYPE_FLOAT:
945 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
946 break;
947
948 case PPEConstants.VAR_TYPE_COLOR:
949 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
950 break;
951 }
952 }
953 }
954 }
955
956 void DbgPrnt(string text)
957 {
958 //Debug.Log(""+text);
959 }
960}
961
963// Base requester platforms //
965
967{
968 override int GetCategoryMask()
969 {
970 return PPERequesterCategory.GAMEPLAY_EFFECTS;
971 }
972}
973
975{
976 override int GetCategoryMask()
977 {
978 return PPERequesterCategory.MENU_EFFECTS;
979 }
980}

Используется в PPERequester_GameplayBase::SetValuesOptics().

◆ SetTargetValueColor()

void SetTargetValueColor ( int mat_id,
int param_idx,
ref array< float > val,
int priority_layer,
int operator = PPOperators.ADD_RELATIVE )
protected
632{
633 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
634 protected bool m_ValuesSent;
635 protected int m_IDX;
636
637 protected bool m_Valid = false;
638
639 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
640
642 {
643 m_Valid = PPERequesterBank.VerifyRequester(this);
644
646 m_ValuesSent = true;
647 m_IsRunning = false;
649 }
650
652 void SetRequesterUpdating(bool state)
653 {
654 if (!m_Valid)
655 {
656 Debug.Log("" + this + " not valid!");
657 return;
658 }
659
660 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
661
662 //TODO - separate into its own function?
663 if (state)
664 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
665 }
666
667 void Start(Param par = null)
668 {
669 OnStart(par);
670 m_IsRunning = true;
671 }
672
673 void Stop(Param par = null)
674 {
676 return;
677
678 OnStop(par);
679 m_IsRunning = false;
680 }
681
682 bool IsRequesterRunning()
683 {
684 return m_IsRunning;
685 }
686
688 void SetRequesterIDX(int idx)
689 {
690 m_IDX = idx;
691 }
692
694 int GetRequesterIDX()
695 {
696 return m_IDX;
697 }
698
700 int GetCategoryMask()
701 {
702 return PPERequesterCategory.NONE;
703 }
704
705 //SETTERS//
706 //vvvvvvv//
707 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
708 {
710 return;
711
713 data.SetPriorityLayer(priority_layer);
714 data.SetInteractionMask(operator);
715
716 data.m_BoolTarget = val;
717 data.m_BoolLast = data.m_BoolCurrent;
718
719 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
720 {
721 data.SetSettingDefaultValues(false);
722 data.SetDataActive(true);
723
725 }
726 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
727 }
728
729 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
730 {
731 //TODO - running check and cleanup rework (elsewhere!)
733 return;
734
736 data.m_BoolLast = data.m_BoolCurrent;
737 if (!data.IsSettingDefaultValues())
738 {
739 data.SetSettingDefaultValues(true);
740
742 }
743 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
744 }
745
746 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
747 {
749 return;
750
751 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
752 data.SetPriorityLayer(priority_layer);
753 data.SetInteractionMask(operator);
754
755 data.m_IntTarget = val;
756 data.m_IntLast = data.m_IntCurrent;
757 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
758 {
759 data.SetSettingDefaultValues(false);
760 data.SetDataActive(true);
761
763 }
764 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
765 }
766
767 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
768 {
769 //TODO - running check and cleanup rework (elsewhere!)
771 return;
772
773 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
774 data.m_IntLast = data.m_IntCurrent;
775 if (!data.IsSettingDefaultValues())
776 {
777 data.SetSettingDefaultValues(true);
778
780 }
781 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
782 }
783
784 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
785 {
787 return;
788
790 data.SetPriorityLayer(priority_layer);
791 data.SetInteractionMask(operator);
792
793 data.m_FloatFormerTarget = data.m_FloatTarget;
794 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
795 data.m_FloatLast = data.m_FloatCurrent;
796 data.m_FloatStart = data.m_FloatCurrent;
797 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
798 {
799 data.SetSettingDefaultValues(false);
800 data.SetDataActive(true);
801
803 }
804 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
805 }
806
807 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
808 {
809 //TODO - running check and cleanup rework (elsewhere!)
811 return;
812
814 data.m_FloatFormerTarget = data.m_FloatTarget;
815 data.m_FloatLast = data.m_FloatCurrent;
816 data.m_FloatStart = data.m_FloatCurrent;
817 if (!data.IsSettingDefaultValues())
818 {
819 data.SetSettingDefaultValues(true);
820
822 }
823 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
824 }
825
826 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
827 {
829 return;
830
831 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
832 data.SetPriorityLayer(priority_layer);
833 data.SetInteractionMask(operator);
834 data.m_ColorFormerTarget = data.m_ColorTarget;
835
836 data.m_ColorTarget.Copy(val);
837
838 data.m_ColorLast = data.m_ColorCurrent;
839 data.m_ColorStart = data.m_ColorCurrent;
840 //if (data.m_ColorTarget != data.m_ColorCurrent)
841 {
842 data.SetSettingDefaultValues(false);
843 data.SetDataActive(true);
844
846 }
847 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
848 }
849
850 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
851 {
852 //TODO - running check and cleanup rework (elsewhere!)
854 return;
855
856 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
857 data.m_ColorFormerTarget = data.m_ColorTarget;
858 data.m_ColorLast = data.m_ColorCurrent;
859 data.m_ColorStart = data.m_ColorCurrent;
860 if (!data.IsSettingDefaultValues())
861 {
862 data.SetSettingDefaultValues(true);
863
865 }
866 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
867 }
868
869 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
870 {
871 }
872
873 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
874 {
875 }*/
876
877 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
878 {
879 }*/
880
882 protected void QueueValuesSend()
883 {
884 m_ValuesSent = false;
885 //m_IsRunning = true;
887 }
888
891 {
894 {
896 {
898 }
899 else
900 {
903 }
904 }
905 else
906 {
911 }
912
913 if (!data)
914 {
915 Error("GetRequestData | no data found in the structure");
916 }
917
918 data.m_Requester = this;
919
920 return data;
921 }
922
923 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
924 {
926 switch (type)
927 {
928 case PPEConstants.VAR_TYPE_BOOL:
930 break;
931
932 case PPEConstants.VAR_TYPE_INT:
933 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
934 break;
935
936 case PPEConstants.VAR_TYPE_FLOAT:
938 break;
939
940 case PPEConstants.VAR_TYPE_COLOR:
941 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
942 break;
943 }
944 return data;
945 }
946
947 // unused?
949 {
951 }
952
953 protected void ClearRequesterData()
954 {
956 }
957
959 {
960 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
961 }
962
963 //EVENTS//
964 //vvvvvv//
965 void OnUpdate(float delta)
966 {
967 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
968
969 if ( !m_ValuesSent )
970 {
971 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
972 {
973 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
974 {
975 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
976 }
977 }
978 m_ValuesSent = true;
979 }
981 }
982
983 protected void OnStart(Param par = null)
984 {
986 }
987
989 protected void OnStop(Param par = null)
990 {
991 //DbgPrnt("PPEDebug | " + this + " | OnStop");
994 }
995
997 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
998 {
999 float ret = value;
1000 if (!relative) //if not already relative...
1001 {
1002 switch (var_type)
1003 {
1004 case PPEConstants.VAR_TYPE_FLOAT:
1006 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1007 ret = Math.Clamp(ret,0.0,1.0);
1008 break;
1009 }
1010 }
1011 //Print("RelativizeValue: " + ret);
1012
1013 return ret;
1014 }
1015
1017 protected void SetDefaultValuesAll()
1018 {
1019 //<material<param_id,data>>
1021
1022 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1023 {
1024 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1025 {
1026 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1027
1028 if (!req_data.IsDataActive())
1029 continue;
1030
1031 switch (req_data.GetVarType())
1032 {
1033 case PPEConstants.VAR_TYPE_BOOL:
1034 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1035 break;
1036
1037 case PPEConstants.VAR_TYPE_INT:
1038 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1039 break;
1040
1041 case PPEConstants.VAR_TYPE_FLOAT:
1042 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1043 break;
1044
1045 case PPEConstants.VAR_TYPE_COLOR:
1046 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1047 break;
1048 }
1049 }
1050 }
1051 }
1052
1053 void DbgPrnt(string text)
1054 {
1055 //Debug.Log(""+text);
1056 }
1057}
1058
1060// Base requester platforms //
1062
1064{
1065 override int GetCategoryMask()
1066 {
1067 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1068 }
1069}
1070
1072{
1073 override int GetCategoryMask()
1074 {
1075 return PPERequesterCategory.MENU_EFFECTS;
1076 }
1077}

Используется в PPERequester_GameplayBase::OnStart(), PPERequester_GameplayBase::OnUpdate(), PPERequester_GameplayBase::SetFlashbangIntensity(), PPERequester_GameplayBase::SetHitIntensity(), PPERequester_GameplayBase::SetNVMode() и PPERequester_MenuBase::SetVignetteIntensity().

◆ SetTargetValueColorDefault()

void SetTargetValueColorDefault ( int mat_id,
int param_idx )
protected
656{
657 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
658 protected bool m_ValuesSent;
659 protected int m_IDX;
660
661 protected bool m_Valid = false;
662
663 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
664
666 {
667 m_Valid = PPERequesterBank.VerifyRequester(this);
668
670 m_ValuesSent = true;
671 m_IsRunning = false;
673 }
674
676 void SetRequesterUpdating(bool state)
677 {
678 if (!m_Valid)
679 {
680 Debug.Log("" + this + " not valid!");
681 return;
682 }
683
684 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
685
686 //TODO - separate into its own function?
687 if (state)
688 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
689 }
690
691 void Start(Param par = null)
692 {
693 OnStart(par);
694 m_IsRunning = true;
695 }
696
697 void Stop(Param par = null)
698 {
700 return;
701
702 OnStop(par);
703 m_IsRunning = false;
704 }
705
706 bool IsRequesterRunning()
707 {
708 return m_IsRunning;
709 }
710
712 void SetRequesterIDX(int idx)
713 {
714 m_IDX = idx;
715 }
716
718 int GetRequesterIDX()
719 {
720 return m_IDX;
721 }
722
724 int GetCategoryMask()
725 {
726 return PPERequesterCategory.NONE;
727 }
728
729 //SETTERS//
730 //vvvvvvv//
731 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
732 {
734 return;
735
737 data.SetPriorityLayer(priority_layer);
738 data.SetInteractionMask(operator);
739
740 data.m_BoolTarget = val;
741 data.m_BoolLast = data.m_BoolCurrent;
742
743 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
744 {
745 data.SetSettingDefaultValues(false);
746 data.SetDataActive(true);
747
749 }
750 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
751 }
752
753 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
754 {
755 //TODO - running check and cleanup rework (elsewhere!)
757 return;
758
760 data.m_BoolLast = data.m_BoolCurrent;
761 if (!data.IsSettingDefaultValues())
762 {
763 data.SetSettingDefaultValues(true);
764
766 }
767 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
768 }
769
770 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
771 {
773 return;
774
775 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
776 data.SetPriorityLayer(priority_layer);
777 data.SetInteractionMask(operator);
778
779 data.m_IntTarget = val;
780 data.m_IntLast = data.m_IntCurrent;
781 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
782 {
783 data.SetSettingDefaultValues(false);
784 data.SetDataActive(true);
785
787 }
788 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
789 }
790
791 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
792 {
793 //TODO - running check and cleanup rework (elsewhere!)
795 return;
796
797 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
798 data.m_IntLast = data.m_IntCurrent;
799 if (!data.IsSettingDefaultValues())
800 {
801 data.SetSettingDefaultValues(true);
802
804 }
805 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
806 }
807
808 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
809 {
811 return;
812
814 data.SetPriorityLayer(priority_layer);
815 data.SetInteractionMask(operator);
816
817 data.m_FloatFormerTarget = data.m_FloatTarget;
818 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
819 data.m_FloatLast = data.m_FloatCurrent;
820 data.m_FloatStart = data.m_FloatCurrent;
821 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
822 {
823 data.SetSettingDefaultValues(false);
824 data.SetDataActive(true);
825
827 }
828 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
829 }
830
831 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
832 {
833 //TODO - running check and cleanup rework (elsewhere!)
835 return;
836
838 data.m_FloatFormerTarget = data.m_FloatTarget;
839 data.m_FloatLast = data.m_FloatCurrent;
840 data.m_FloatStart = data.m_FloatCurrent;
841 if (!data.IsSettingDefaultValues())
842 {
843 data.SetSettingDefaultValues(true);
844
846 }
847 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
848 }
849
850 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
851 {
853 return;
854
855 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
856 data.SetPriorityLayer(priority_layer);
857 data.SetInteractionMask(operator);
858 data.m_ColorFormerTarget = data.m_ColorTarget;
859
860 data.m_ColorTarget.Copy(val);
861
862 data.m_ColorLast = data.m_ColorCurrent;
863 data.m_ColorStart = data.m_ColorCurrent;
864 //if (data.m_ColorTarget != data.m_ColorCurrent)
865 {
866 data.SetSettingDefaultValues(false);
867 data.SetDataActive(true);
868
870 }
871 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
872 }
873
874 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
875 {
876 //TODO - running check and cleanup rework (elsewhere!)
878 return;
879
880 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
881 data.m_ColorFormerTarget = data.m_ColorTarget;
882 data.m_ColorLast = data.m_ColorCurrent;
883 data.m_ColorStart = data.m_ColorCurrent;
884 if (!data.IsSettingDefaultValues())
885 {
886 data.SetSettingDefaultValues(true);
887
889 }
890 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
891 }
892
893 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
894 {
895 }
896
897 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
898 {
899 }*/
900
901 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
902 {
903 }*/
904
906 protected void QueueValuesSend()
907 {
908 m_ValuesSent = false;
909 //m_IsRunning = true;
911 }
912
915 {
918 {
920 {
922 }
923 else
924 {
927 }
928 }
929 else
930 {
935 }
936
937 if (!data)
938 {
939 Error("GetRequestData | no data found in the structure");
940 }
941
942 data.m_Requester = this;
943
944 return data;
945 }
946
947 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
948 {
950 switch (type)
951 {
952 case PPEConstants.VAR_TYPE_BOOL:
954 break;
955
956 case PPEConstants.VAR_TYPE_INT:
957 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
958 break;
959
960 case PPEConstants.VAR_TYPE_FLOAT:
962 break;
963
964 case PPEConstants.VAR_TYPE_COLOR:
965 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
966 break;
967 }
968 return data;
969 }
970
971 // unused?
973 {
975 }
976
977 protected void ClearRequesterData()
978 {
980 }
981
983 {
984 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
985 }
986
987 //EVENTS//
988 //vvvvvv//
989 void OnUpdate(float delta)
990 {
991 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
992
993 if ( !m_ValuesSent )
994 {
995 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
996 {
997 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
998 {
999 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1000 }
1001 }
1002 m_ValuesSent = true;
1003 }
1004 SetRequesterUpdating(false);
1005 }
1006
1007 protected void OnStart(Param par = null)
1008 {
1010 }
1011
1013 protected void OnStop(Param par = null)
1014 {
1015 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1018 }
1019
1021 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1022 {
1023 float ret = value;
1024 if (!relative) //if not already relative...
1025 {
1026 switch (var_type)
1027 {
1028 case PPEConstants.VAR_TYPE_FLOAT:
1030 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1031 ret = Math.Clamp(ret,0.0,1.0);
1032 break;
1033 }
1034 }
1035 //Print("RelativizeValue: " + ret);
1036
1037 return ret;
1038 }
1039
1041 protected void SetDefaultValuesAll()
1042 {
1043 //<material<param_id,data>>
1045
1046 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1047 {
1048 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1049 {
1050 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1051
1052 if (!req_data.IsDataActive())
1053 continue;
1054
1055 switch (req_data.GetVarType())
1056 {
1057 case PPEConstants.VAR_TYPE_BOOL:
1058 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1059 break;
1060
1061 case PPEConstants.VAR_TYPE_INT:
1062 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1063 break;
1064
1065 case PPEConstants.VAR_TYPE_FLOAT:
1066 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1067 break;
1068
1069 case PPEConstants.VAR_TYPE_COLOR:
1070 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1071 break;
1072 }
1073 }
1074 }
1075 }
1076
1077 void DbgPrnt(string text)
1078 {
1079 //Debug.Log(""+text);
1080 }
1081}
1082
1084// Base requester platforms //
1086
1088{
1089 override int GetCategoryMask()
1090 {
1091 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1092 }
1093}
1094
1096{
1097 override int GetCategoryMask()
1098 {
1099 return PPERequesterCategory.MENU_EFFECTS;
1100 }
1101}

◆ SetTargetValueFloat()

void SetTargetValueFloat ( int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator = PPOperators.ADD_RELATIVE )
protected
590{
591 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
592 protected bool m_ValuesSent;
593 protected int m_IDX;
594
595 protected bool m_Valid = false;
596
597 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
598
600 {
601 m_Valid = PPERequesterBank.VerifyRequester(this);
602
604 m_ValuesSent = true;
605 m_IsRunning = false;
607 }
608
610 void SetRequesterUpdating(bool state)
611 {
612 if (!m_Valid)
613 {
614 Debug.Log("" + this + " not valid!");
615 return;
616 }
617
618 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
619
620 //TODO - separate into its own function?
621 if (state)
622 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
623 }
624
625 void Start(Param par = null)
626 {
627 OnStart(par);
628 m_IsRunning = true;
629 }
630
631 void Stop(Param par = null)
632 {
634 return;
635
636 OnStop(par);
637 m_IsRunning = false;
638 }
639
640 bool IsRequesterRunning()
641 {
642 return m_IsRunning;
643 }
644
646 void SetRequesterIDX(int idx)
647 {
648 m_IDX = idx;
649 }
650
652 int GetRequesterIDX()
653 {
654 return m_IDX;
655 }
656
658 int GetCategoryMask()
659 {
660 return PPERequesterCategory.NONE;
661 }
662
663 //SETTERS//
664 //vvvvvvv//
665 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
666 {
668 return;
669
671 data.SetPriorityLayer(priority_layer);
672 data.SetInteractionMask(operator);
673
674 data.m_BoolTarget = val;
675 data.m_BoolLast = data.m_BoolCurrent;
676
677 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
678 {
679 data.SetSettingDefaultValues(false);
680 data.SetDataActive(true);
681
683 }
684 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
685 }
686
687 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
688 {
689 //TODO - running check and cleanup rework (elsewhere!)
691 return;
692
694 data.m_BoolLast = data.m_BoolCurrent;
695 if (!data.IsSettingDefaultValues())
696 {
697 data.SetSettingDefaultValues(true);
698
700 }
701 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
702 }
703
704 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
705 {
707 return;
708
709 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
710 data.SetPriorityLayer(priority_layer);
711 data.SetInteractionMask(operator);
712
713 data.m_IntTarget = val;
714 data.m_IntLast = data.m_IntCurrent;
715 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
716 {
717 data.SetSettingDefaultValues(false);
718 data.SetDataActive(true);
719
721 }
722 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
723 }
724
725 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
726 {
727 //TODO - running check and cleanup rework (elsewhere!)
729 return;
730
731 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
732 data.m_IntLast = data.m_IntCurrent;
733 if (!data.IsSettingDefaultValues())
734 {
735 data.SetSettingDefaultValues(true);
736
738 }
739 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
740 }
741
742 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
743 {
745 return;
746
748 data.SetPriorityLayer(priority_layer);
749 data.SetInteractionMask(operator);
750
751 data.m_FloatFormerTarget = data.m_FloatTarget;
752 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
753 data.m_FloatLast = data.m_FloatCurrent;
754 data.m_FloatStart = data.m_FloatCurrent;
755 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
756 {
757 data.SetSettingDefaultValues(false);
758 data.SetDataActive(true);
759
761 }
762 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
763 }
764
765 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
766 {
767 //TODO - running check and cleanup rework (elsewhere!)
769 return;
770
772 data.m_FloatFormerTarget = data.m_FloatTarget;
773 data.m_FloatLast = data.m_FloatCurrent;
774 data.m_FloatStart = data.m_FloatCurrent;
775 if (!data.IsSettingDefaultValues())
776 {
777 data.SetSettingDefaultValues(true);
778
780 }
781 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
782 }
783
784 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
785 {
787 return;
788
789 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
790 data.SetPriorityLayer(priority_layer);
791 data.SetInteractionMask(operator);
792 data.m_ColorFormerTarget = data.m_ColorTarget;
793
794 data.m_ColorTarget.Copy(val);
795
796 data.m_ColorLast = data.m_ColorCurrent;
797 data.m_ColorStart = data.m_ColorCurrent;
798 //if (data.m_ColorTarget != data.m_ColorCurrent)
799 {
800 data.SetSettingDefaultValues(false);
801 data.SetDataActive(true);
802
804 }
805 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
806 }
807
808 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
809 {
810 //TODO - running check and cleanup rework (elsewhere!)
812 return;
813
814 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
815 data.m_ColorFormerTarget = data.m_ColorTarget;
816 data.m_ColorLast = data.m_ColorCurrent;
817 data.m_ColorStart = data.m_ColorCurrent;
818 if (!data.IsSettingDefaultValues())
819 {
820 data.SetSettingDefaultValues(true);
821
823 }
824 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
825 }
826
827 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
828 {
829 }
830
831 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
832 {
833 }*/
834
835 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
836 {
837 }*/
838
840 protected void QueueValuesSend()
841 {
842 m_ValuesSent = false;
843 //m_IsRunning = true;
845 }
846
849 {
852 {
854 {
856 }
857 else
858 {
861 }
862 }
863 else
864 {
869 }
870
871 if (!data)
872 {
873 Error("GetRequestData | no data found in the structure");
874 }
875
876 data.m_Requester = this;
877
878 return data;
879 }
880
881 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
882 {
884 switch (type)
885 {
886 case PPEConstants.VAR_TYPE_BOOL:
888 break;
889
890 case PPEConstants.VAR_TYPE_INT:
891 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
892 break;
893
894 case PPEConstants.VAR_TYPE_FLOAT:
896 break;
897
898 case PPEConstants.VAR_TYPE_COLOR:
899 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
900 break;
901 }
902 return data;
903 }
904
905 // unused?
907 {
909 }
910
911 protected void ClearRequesterData()
912 {
914 }
915
917 {
918 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
919 }
920
921 //EVENTS//
922 //vvvvvv//
923 void OnUpdate(float delta)
924 {
925 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
926
927 if ( !m_ValuesSent )
928 {
929 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
930 {
931 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
932 {
933 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
934 }
935 }
936 m_ValuesSent = true;
937 }
939 }
940
941 protected void OnStart(Param par = null)
942 {
944 }
945
947 protected void OnStop(Param par = null)
948 {
949 //DbgPrnt("PPEDebug | " + this + " | OnStop");
952 }
953
955 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
956 {
957 float ret = value;
958 if (!relative) //if not already relative...
959 {
960 switch (var_type)
961 {
962 case PPEConstants.VAR_TYPE_FLOAT:
964 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
965 ret = Math.Clamp(ret,0.0,1.0);
966 break;
967 }
968 }
969 //Print("RelativizeValue: " + ret);
970
971 return ret;
972 }
973
975 protected void SetDefaultValuesAll()
976 {
977 //<material<param_id,data>>
979
980 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
981 {
982 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
983 {
984 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
985
986 if (!req_data.IsDataActive())
987 continue;
988
989 switch (req_data.GetVarType())
990 {
991 case PPEConstants.VAR_TYPE_BOOL:
992 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
993 break;
994
995 case PPEConstants.VAR_TYPE_INT:
996 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
997 break;
998
999 case PPEConstants.VAR_TYPE_FLOAT:
1000 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1001 break;
1002
1003 case PPEConstants.VAR_TYPE_COLOR:
1004 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1005 break;
1006 }
1007 }
1008 }
1009 }
1010
1011 void DbgPrnt(string text)
1012 {
1013 //Debug.Log(""+text);
1014 }
1015}
1016
1018// Base requester platforms //
1020
1022{
1023 override int GetCategoryMask()
1024 {
1025 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1026 }
1027}
1028
1030{
1031 override int GetCategoryMask()
1032 {
1033 return PPERequesterCategory.MENU_EFFECTS;
1034 }
1035}

Используется в PPERequester_GameplayBase::OnStart(), PPERequester_MenuBase::OnStart(), PPERequester_GameplayBase::OnUpdate(), PPERequester_GameplayBase::SetBloodLossLevel(), PPERequester_MenuBase::SetBlurIntensity(), PPERequester_GameplayBase::SetEyeAccommodation(), PPERequester_GameplayBase::SetFeverIntensity(), PPERequester_GameplayBase::SetFlashbangIntensity(), PPERequester_GameplayBase::SetHitIntensity(), PPERequester_GameplayBase::SetNVMode(), PPERequester_GameplayBase::SetRadialBlur(), PPERequester_GameplayBase::SetValuesIronsights(), PPERequester_GameplayBase::SetValuesOptics() и PPERequester_MenuBase::SetVignetteIntensity().

◆ SetTargetValueFloatDefault()

void SetTargetValueFloatDefault ( int mat_id,
int param_idx )
protected
613{
614 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
615 protected bool m_ValuesSent;
616 protected int m_IDX;
617
618 protected bool m_Valid = false;
619
620 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
621
623 {
624 m_Valid = PPERequesterBank.VerifyRequester(this);
625
627 m_ValuesSent = true;
628 m_IsRunning = false;
630 }
631
633 void SetRequesterUpdating(bool state)
634 {
635 if (!m_Valid)
636 {
637 Debug.Log("" + this + " not valid!");
638 return;
639 }
640
641 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
642
643 //TODO - separate into its own function?
644 if (state)
645 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
646 }
647
648 void Start(Param par = null)
649 {
650 OnStart(par);
651 m_IsRunning = true;
652 }
653
654 void Stop(Param par = null)
655 {
657 return;
658
659 OnStop(par);
660 m_IsRunning = false;
661 }
662
663 bool IsRequesterRunning()
664 {
665 return m_IsRunning;
666 }
667
669 void SetRequesterIDX(int idx)
670 {
671 m_IDX = idx;
672 }
673
675 int GetRequesterIDX()
676 {
677 return m_IDX;
678 }
679
681 int GetCategoryMask()
682 {
683 return PPERequesterCategory.NONE;
684 }
685
686 //SETTERS//
687 //vvvvvvv//
688 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
689 {
691 return;
692
694 data.SetPriorityLayer(priority_layer);
695 data.SetInteractionMask(operator);
696
697 data.m_BoolTarget = val;
698 data.m_BoolLast = data.m_BoolCurrent;
699
700 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
701 {
702 data.SetSettingDefaultValues(false);
703 data.SetDataActive(true);
704
706 }
707 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
708 }
709
710 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
711 {
712 //TODO - running check and cleanup rework (elsewhere!)
714 return;
715
717 data.m_BoolLast = data.m_BoolCurrent;
718 if (!data.IsSettingDefaultValues())
719 {
720 data.SetSettingDefaultValues(true);
721
723 }
724 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
725 }
726
727 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
728 {
730 return;
731
732 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
733 data.SetPriorityLayer(priority_layer);
734 data.SetInteractionMask(operator);
735
736 data.m_IntTarget = val;
737 data.m_IntLast = data.m_IntCurrent;
738 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
739 {
740 data.SetSettingDefaultValues(false);
741 data.SetDataActive(true);
742
744 }
745 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
746 }
747
748 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
749 {
750 //TODO - running check and cleanup rework (elsewhere!)
752 return;
753
754 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
755 data.m_IntLast = data.m_IntCurrent;
756 if (!data.IsSettingDefaultValues())
757 {
758 data.SetSettingDefaultValues(true);
759
761 }
762 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
763 }
764
765 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
766 {
768 return;
769
771 data.SetPriorityLayer(priority_layer);
772 data.SetInteractionMask(operator);
773
774 data.m_FloatFormerTarget = data.m_FloatTarget;
775 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
776 data.m_FloatLast = data.m_FloatCurrent;
777 data.m_FloatStart = data.m_FloatCurrent;
778 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
779 {
780 data.SetSettingDefaultValues(false);
781 data.SetDataActive(true);
782
784 }
785 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
786 }
787
788 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
789 {
790 //TODO - running check and cleanup rework (elsewhere!)
792 return;
793
795 data.m_FloatFormerTarget = data.m_FloatTarget;
796 data.m_FloatLast = data.m_FloatCurrent;
797 data.m_FloatStart = data.m_FloatCurrent;
798 if (!data.IsSettingDefaultValues())
799 {
800 data.SetSettingDefaultValues(true);
801
803 }
804 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
805 }
806
807 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
808 {
810 return;
811
812 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
813 data.SetPriorityLayer(priority_layer);
814 data.SetInteractionMask(operator);
815 data.m_ColorFormerTarget = data.m_ColorTarget;
816
817 data.m_ColorTarget.Copy(val);
818
819 data.m_ColorLast = data.m_ColorCurrent;
820 data.m_ColorStart = data.m_ColorCurrent;
821 //if (data.m_ColorTarget != data.m_ColorCurrent)
822 {
823 data.SetSettingDefaultValues(false);
824 data.SetDataActive(true);
825
827 }
828 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
829 }
830
831 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
832 {
833 //TODO - running check and cleanup rework (elsewhere!)
835 return;
836
837 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
838 data.m_ColorFormerTarget = data.m_ColorTarget;
839 data.m_ColorLast = data.m_ColorCurrent;
840 data.m_ColorStart = data.m_ColorCurrent;
841 if (!data.IsSettingDefaultValues())
842 {
843 data.SetSettingDefaultValues(true);
844
846 }
847 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
848 }
849
850 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
851 {
852 }
853
854 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
855 {
856 }*/
857
858 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
859 {
860 }*/
861
863 protected void QueueValuesSend()
864 {
865 m_ValuesSent = false;
866 //m_IsRunning = true;
868 }
869
872 {
875 {
877 {
879 }
880 else
881 {
884 }
885 }
886 else
887 {
892 }
893
894 if (!data)
895 {
896 Error("GetRequestData | no data found in the structure");
897 }
898
899 data.m_Requester = this;
900
901 return data;
902 }
903
904 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
905 {
907 switch (type)
908 {
909 case PPEConstants.VAR_TYPE_BOOL:
911 break;
912
913 case PPEConstants.VAR_TYPE_INT:
914 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
915 break;
916
917 case PPEConstants.VAR_TYPE_FLOAT:
919 break;
920
921 case PPEConstants.VAR_TYPE_COLOR:
922 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
923 break;
924 }
925 return data;
926 }
927
928 // unused?
930 {
932 }
933
934 protected void ClearRequesterData()
935 {
937 }
938
940 {
941 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
942 }
943
944 //EVENTS//
945 //vvvvvv//
946 void OnUpdate(float delta)
947 {
948 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
949
950 if ( !m_ValuesSent )
951 {
952 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
953 {
954 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
955 {
956 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
957 }
958 }
959 m_ValuesSent = true;
960 }
962 }
963
964 protected void OnStart(Param par = null)
965 {
967 }
968
970 protected void OnStop(Param par = null)
971 {
972 //DbgPrnt("PPEDebug | " + this + " | OnStop");
975 }
976
978 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
979 {
980 float ret = value;
981 if (!relative) //if not already relative...
982 {
983 switch (var_type)
984 {
985 case PPEConstants.VAR_TYPE_FLOAT:
987 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
988 ret = Math.Clamp(ret,0.0,1.0);
989 break;
990 }
991 }
992 //Print("RelativizeValue: " + ret);
993
994 return ret;
995 }
996
998 protected void SetDefaultValuesAll()
999 {
1000 //<material<param_id,data>>
1002
1003 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1004 {
1005 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1006 {
1007 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1008
1009 if (!req_data.IsDataActive())
1010 continue;
1011
1012 switch (req_data.GetVarType())
1013 {
1014 case PPEConstants.VAR_TYPE_BOOL:
1015 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1016 break;
1017
1018 case PPEConstants.VAR_TYPE_INT:
1019 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1020 break;
1021
1022 case PPEConstants.VAR_TYPE_FLOAT:
1023 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1024 break;
1025
1026 case PPEConstants.VAR_TYPE_COLOR:
1027 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
1028 break;
1029 }
1030 }
1031 }
1032 }
1033
1034 void DbgPrnt(string text)
1035 {
1036 //Debug.Log(""+text);
1037 }
1038}
1039
1041// Base requester platforms //
1043
1045{
1046 override int GetCategoryMask()
1047 {
1048 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1049 }
1050}
1051
1053{
1054 override int GetCategoryMask()
1055 {
1056 return PPERequesterCategory.MENU_EFFECTS;
1057 }
1058}

Используется в PPERequester_GameplayBase::SetNVMode() и PPERequester_GameplayBase::SetValuesIronsights().

◆ SetTargetValueInt()

void SetTargetValueInt ( int mat_id,
int param_idx,
bool relative,
int val,
int priority_layer,
int operator = PPOperators.SET )
protected
552{
553 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
554 protected bool m_ValuesSent;
555 protected int m_IDX;
556
557 protected bool m_Valid = false;
558
559 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
560
562 {
563 m_Valid = PPERequesterBank.VerifyRequester(this);
564
566 m_ValuesSent = true;
567 m_IsRunning = false;
569 }
570
572 void SetRequesterUpdating(bool state)
573 {
574 if (!m_Valid)
575 {
576 Debug.Log("" + this + " not valid!");
577 return;
578 }
579
580 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
581
582 //TODO - separate into its own function?
583 if (state)
584 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
585 }
586
587 void Start(Param par = null)
588 {
589 OnStart(par);
590 m_IsRunning = true;
591 }
592
593 void Stop(Param par = null)
594 {
596 return;
597
598 OnStop(par);
599 m_IsRunning = false;
600 }
601
602 bool IsRequesterRunning()
603 {
604 return m_IsRunning;
605 }
606
608 void SetRequesterIDX(int idx)
609 {
610 m_IDX = idx;
611 }
612
614 int GetRequesterIDX()
615 {
616 return m_IDX;
617 }
618
620 int GetCategoryMask()
621 {
622 return PPERequesterCategory.NONE;
623 }
624
625 //SETTERS//
626 //vvvvvvv//
627 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
628 {
630 return;
631
633 data.SetPriorityLayer(priority_layer);
634 data.SetInteractionMask(operator);
635
636 data.m_BoolTarget = val;
637 data.m_BoolLast = data.m_BoolCurrent;
638
639 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
640 {
641 data.SetSettingDefaultValues(false);
642 data.SetDataActive(true);
643
645 }
646 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
647 }
648
649 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
650 {
651 //TODO - running check and cleanup rework (elsewhere!)
653 return;
654
656 data.m_BoolLast = data.m_BoolCurrent;
657 if (!data.IsSettingDefaultValues())
658 {
659 data.SetSettingDefaultValues(true);
660
662 }
663 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
664 }
665
666 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
667 {
669 return;
670
671 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
672 data.SetPriorityLayer(priority_layer);
673 data.SetInteractionMask(operator);
674
675 data.m_IntTarget = val;
676 data.m_IntLast = data.m_IntCurrent;
677 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
678 {
679 data.SetSettingDefaultValues(false);
680 data.SetDataActive(true);
681
683 }
684 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
685 }
686
687 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
688 {
689 //TODO - running check and cleanup rework (elsewhere!)
691 return;
692
693 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
694 data.m_IntLast = data.m_IntCurrent;
695 if (!data.IsSettingDefaultValues())
696 {
697 data.SetSettingDefaultValues(true);
698
700 }
701 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
702 }
703
704 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
705 {
707 return;
708
710 data.SetPriorityLayer(priority_layer);
711 data.SetInteractionMask(operator);
712
713 data.m_FloatFormerTarget = data.m_FloatTarget;
714 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
715 data.m_FloatLast = data.m_FloatCurrent;
716 data.m_FloatStart = data.m_FloatCurrent;
717 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
718 {
719 data.SetSettingDefaultValues(false);
720 data.SetDataActive(true);
721
723 }
724 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
725 }
726
727 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
728 {
729 //TODO - running check and cleanup rework (elsewhere!)
731 return;
732
734 data.m_FloatFormerTarget = data.m_FloatTarget;
735 data.m_FloatLast = data.m_FloatCurrent;
736 data.m_FloatStart = data.m_FloatCurrent;
737 if (!data.IsSettingDefaultValues())
738 {
739 data.SetSettingDefaultValues(true);
740
742 }
743 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
744 }
745
746 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
747 {
749 return;
750
751 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
752 data.SetPriorityLayer(priority_layer);
753 data.SetInteractionMask(operator);
754 data.m_ColorFormerTarget = data.m_ColorTarget;
755
756 data.m_ColorTarget.Copy(val);
757
758 data.m_ColorLast = data.m_ColorCurrent;
759 data.m_ColorStart = data.m_ColorCurrent;
760 //if (data.m_ColorTarget != data.m_ColorCurrent)
761 {
762 data.SetSettingDefaultValues(false);
763 data.SetDataActive(true);
764
766 }
767 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
768 }
769
770 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
771 {
772 //TODO - running check and cleanup rework (elsewhere!)
774 return;
775
776 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
777 data.m_ColorFormerTarget = data.m_ColorTarget;
778 data.m_ColorLast = data.m_ColorCurrent;
779 data.m_ColorStart = data.m_ColorCurrent;
780 if (!data.IsSettingDefaultValues())
781 {
782 data.SetSettingDefaultValues(true);
783
785 }
786 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
787 }
788
789 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
790 {
791 }
792
793 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
794 {
795 }*/
796
797 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
798 {
799 }*/
800
802 protected void QueueValuesSend()
803 {
804 m_ValuesSent = false;
805 //m_IsRunning = true;
807 }
808
811 {
814 {
816 {
818 }
819 else
820 {
823 }
824 }
825 else
826 {
831 }
832
833 if (!data)
834 {
835 Error("GetRequestData | no data found in the structure");
836 }
837
838 data.m_Requester = this;
839
840 return data;
841 }
842
843 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
844 {
846 switch (type)
847 {
848 case PPEConstants.VAR_TYPE_BOOL:
850 break;
851
852 case PPEConstants.VAR_TYPE_INT:
853 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
854 break;
855
856 case PPEConstants.VAR_TYPE_FLOAT:
858 break;
859
860 case PPEConstants.VAR_TYPE_COLOR:
861 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
862 break;
863 }
864 return data;
865 }
866
867 // unused?
869 {
871 }
872
873 protected void ClearRequesterData()
874 {
876 }
877
879 {
880 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
881 }
882
883 //EVENTS//
884 //vvvvvv//
885 void OnUpdate(float delta)
886 {
887 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
888
889 if ( !m_ValuesSent )
890 {
891 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
892 {
893 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
894 {
895 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
896 }
897 }
898 m_ValuesSent = true;
899 }
901 }
902
903 protected void OnStart(Param par = null)
904 {
906 }
907
909 protected void OnStop(Param par = null)
910 {
911 //DbgPrnt("PPEDebug | " + this + " | OnStop");
914 }
915
917 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
918 {
919 float ret = value;
920 if (!relative) //if not already relative...
921 {
922 switch (var_type)
923 {
924 case PPEConstants.VAR_TYPE_FLOAT:
926 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
927 ret = Math.Clamp(ret,0.0,1.0);
928 break;
929 }
930 }
931 //Print("RelativizeValue: " + ret);
932
933 return ret;
934 }
935
937 protected void SetDefaultValuesAll()
938 {
939 //<material<param_id,data>>
941
942 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
943 {
944 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
945 {
946 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
947
948 if (!req_data.IsDataActive())
949 continue;
950
951 switch (req_data.GetVarType())
952 {
953 case PPEConstants.VAR_TYPE_BOOL:
954 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
955 break;
956
957 case PPEConstants.VAR_TYPE_INT:
958 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
959 break;
960
961 case PPEConstants.VAR_TYPE_FLOAT:
962 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
963 break;
964
965 case PPEConstants.VAR_TYPE_COLOR:
966 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
967 break;
968 }
969 }
970 }
971 }
972
973 void DbgPrnt(string text)
974 {
975 //Debug.Log(""+text);
976 }
977}
978
980// Base requester platforms //
982
984{
985 override int GetCategoryMask()
986 {
987 return PPERequesterCategory.GAMEPLAY_EFFECTS;
988 }
989}
990
992{
993 override int GetCategoryMask()
994 {
995 return PPERequesterCategory.MENU_EFFECTS;
996 }
997}

◆ SetTargetValueIntDefault()

void SetTargetValueIntDefault ( int mat_id,
int param_idx )
protected
573{
574 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
575 protected bool m_ValuesSent;
576 protected int m_IDX;
577
578 protected bool m_Valid = false;
579
580 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
581
583 {
584 m_Valid = PPERequesterBank.VerifyRequester(this);
585
587 m_ValuesSent = true;
588 m_IsRunning = false;
590 }
591
593 void SetRequesterUpdating(bool state)
594 {
595 if (!m_Valid)
596 {
597 Debug.Log("" + this + " not valid!");
598 return;
599 }
600
601 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
602
603 //TODO - separate into its own function?
604 if (state)
605 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
606 }
607
608 void Start(Param par = null)
609 {
610 OnStart(par);
611 m_IsRunning = true;
612 }
613
614 void Stop(Param par = null)
615 {
617 return;
618
619 OnStop(par);
620 m_IsRunning = false;
621 }
622
623 bool IsRequesterRunning()
624 {
625 return m_IsRunning;
626 }
627
629 void SetRequesterIDX(int idx)
630 {
631 m_IDX = idx;
632 }
633
635 int GetRequesterIDX()
636 {
637 return m_IDX;
638 }
639
641 int GetCategoryMask()
642 {
643 return PPERequesterCategory.NONE;
644 }
645
646 //SETTERS//
647 //vvvvvvv//
648 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
649 {
651 return;
652
654 data.SetPriorityLayer(priority_layer);
655 data.SetInteractionMask(operator);
656
657 data.m_BoolTarget = val;
658 data.m_BoolLast = data.m_BoolCurrent;
659
660 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
661 {
662 data.SetSettingDefaultValues(false);
663 data.SetDataActive(true);
664
666 }
667 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
668 }
669
670 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
671 {
672 //TODO - running check and cleanup rework (elsewhere!)
674 return;
675
677 data.m_BoolLast = data.m_BoolCurrent;
678 if (!data.IsSettingDefaultValues())
679 {
680 data.SetSettingDefaultValues(true);
681
683 }
684 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
685 }
686
687 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
688 {
690 return;
691
692 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
693 data.SetPriorityLayer(priority_layer);
694 data.SetInteractionMask(operator);
695
696 data.m_IntTarget = val;
697 data.m_IntLast = data.m_IntCurrent;
698 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
699 {
700 data.SetSettingDefaultValues(false);
701 data.SetDataActive(true);
702
704 }
705 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
706 }
707
708 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
709 {
710 //TODO - running check and cleanup rework (elsewhere!)
712 return;
713
714 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
715 data.m_IntLast = data.m_IntCurrent;
716 if (!data.IsSettingDefaultValues())
717 {
718 data.SetSettingDefaultValues(true);
719
721 }
722 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
723 }
724
725 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
726 {
728 return;
729
731 data.SetPriorityLayer(priority_layer);
732 data.SetInteractionMask(operator);
733
734 data.m_FloatFormerTarget = data.m_FloatTarget;
735 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
736 data.m_FloatLast = data.m_FloatCurrent;
737 data.m_FloatStart = data.m_FloatCurrent;
738 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
739 {
740 data.SetSettingDefaultValues(false);
741 data.SetDataActive(true);
742
744 }
745 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
746 }
747
748 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
749 {
750 //TODO - running check and cleanup rework (elsewhere!)
752 return;
753
755 data.m_FloatFormerTarget = data.m_FloatTarget;
756 data.m_FloatLast = data.m_FloatCurrent;
757 data.m_FloatStart = data.m_FloatCurrent;
758 if (!data.IsSettingDefaultValues())
759 {
760 data.SetSettingDefaultValues(true);
761
763 }
764 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
765 }
766
767 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
768 {
770 return;
771
772 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
773 data.SetPriorityLayer(priority_layer);
774 data.SetInteractionMask(operator);
775 data.m_ColorFormerTarget = data.m_ColorTarget;
776
777 data.m_ColorTarget.Copy(val);
778
779 data.m_ColorLast = data.m_ColorCurrent;
780 data.m_ColorStart = data.m_ColorCurrent;
781 //if (data.m_ColorTarget != data.m_ColorCurrent)
782 {
783 data.SetSettingDefaultValues(false);
784 data.SetDataActive(true);
785
787 }
788 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
789 }
790
791 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
792 {
793 //TODO - running check and cleanup rework (elsewhere!)
795 return;
796
797 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
798 data.m_ColorFormerTarget = data.m_ColorTarget;
799 data.m_ColorLast = data.m_ColorCurrent;
800 data.m_ColorStart = data.m_ColorCurrent;
801 if (!data.IsSettingDefaultValues())
802 {
803 data.SetSettingDefaultValues(true);
804
806 }
807 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
808 }
809
810 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
811 {
812 }
813
814 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
815 {
816 }*/
817
818 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
819 {
820 }*/
821
823 protected void QueueValuesSend()
824 {
825 m_ValuesSent = false;
826 //m_IsRunning = true;
828 }
829
832 {
835 {
837 {
839 }
840 else
841 {
844 }
845 }
846 else
847 {
852 }
853
854 if (!data)
855 {
856 Error("GetRequestData | no data found in the structure");
857 }
858
859 data.m_Requester = this;
860
861 return data;
862 }
863
864 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
865 {
867 switch (type)
868 {
869 case PPEConstants.VAR_TYPE_BOOL:
871 break;
872
873 case PPEConstants.VAR_TYPE_INT:
874 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
875 break;
876
877 case PPEConstants.VAR_TYPE_FLOAT:
879 break;
880
881 case PPEConstants.VAR_TYPE_COLOR:
882 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
883 break;
884 }
885 return data;
886 }
887
888 // unused?
890 {
892 }
893
894 protected void ClearRequesterData()
895 {
897 }
898
900 {
901 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
902 }
903
904 //EVENTS//
905 //vvvvvv//
906 void OnUpdate(float delta)
907 {
908 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
909
910 if ( !m_ValuesSent )
911 {
912 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
913 {
914 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
915 {
916 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
917 }
918 }
919 m_ValuesSent = true;
920 }
922 }
923
924 protected void OnStart(Param par = null)
925 {
927 }
928
930 protected void OnStop(Param par = null)
931 {
932 //DbgPrnt("PPEDebug | " + this + " | OnStop");
935 }
936
938 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
939 {
940 float ret = value;
941 if (!relative) //if not already relative...
942 {
943 switch (var_type)
944 {
945 case PPEConstants.VAR_TYPE_FLOAT:
947 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
948 ret = Math.Clamp(ret,0.0,1.0);
949 break;
950 }
951 }
952 //Print("RelativizeValue: " + ret);
953
954 return ret;
955 }
956
958 protected void SetDefaultValuesAll()
959 {
960 //<material<param_id,data>>
962
963 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
964 {
965 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
966 {
967 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
968
969 if (!req_data.IsDataActive())
970 continue;
971
972 switch (req_data.GetVarType())
973 {
974 case PPEConstants.VAR_TYPE_BOOL:
975 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
976 break;
977
978 case PPEConstants.VAR_TYPE_INT:
979 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
980 break;
981
982 case PPEConstants.VAR_TYPE_FLOAT:
983 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
984 break;
985
986 case PPEConstants.VAR_TYPE_COLOR:
987 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
988 break;
989 }
990 }
991 }
992 }
993
994 void DbgPrnt(string text)
995 {
996 //Debug.Log(""+text);
997 }
998}
999
1001// Base requester platforms //
1003
1005{
1006 override int GetCategoryMask()
1007 {
1008 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1009 }
1010}
1011
1013{
1014 override int GetCategoryMask()
1015 {
1016 return PPERequesterCategory.MENU_EFFECTS;
1017 }
1018}

◆ Start()

void Start ( Param par = null)
protected
473{
474 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
475 protected bool m_ValuesSent;
476 protected int m_IDX;
477
478 protected bool m_Valid = false;
479
480 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
481
483 {
484 m_Valid = PPERequesterBank.VerifyRequester(this);
485
487 m_ValuesSent = true;
488 m_IsRunning = false;
490 }
491
493 void SetRequesterUpdating(bool state)
494 {
495 if (!m_Valid)
496 {
497 Debug.Log("" + this + " not valid!");
498 return;
499 }
500
501 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
502
503 //TODO - separate into its own function?
504 if (state)
505 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
506 }
507
508 void Start(Param par = null)
509 {
510 OnStart(par);
511 m_IsRunning = true;
512 }
513
514 void Stop(Param par = null)
515 {
517 return;
518
519 OnStop(par);
520 m_IsRunning = false;
521 }
522
523 bool IsRequesterRunning()
524 {
525 return m_IsRunning;
526 }
527
529 void SetRequesterIDX(int idx)
530 {
531 m_IDX = idx;
532 }
533
535 int GetRequesterIDX()
536 {
537 return m_IDX;
538 }
539
541 int GetCategoryMask()
542 {
543 return PPERequesterCategory.NONE;
544 }
545
546 //SETTERS//
547 //vvvvvvv//
548 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
549 {
551 return;
552
554 data.SetPriorityLayer(priority_layer);
555 data.SetInteractionMask(operator);
556
557 data.m_BoolTarget = val;
558 data.m_BoolLast = data.m_BoolCurrent;
559
560 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
561 {
562 data.SetSettingDefaultValues(false);
563 data.SetDataActive(true);
564
566 }
567 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
568 }
569
570 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
571 {
572 //TODO - running check and cleanup rework (elsewhere!)
574 return;
575
577 data.m_BoolLast = data.m_BoolCurrent;
578 if (!data.IsSettingDefaultValues())
579 {
580 data.SetSettingDefaultValues(true);
581
583 }
584 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
585 }
586
587 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
588 {
590 return;
591
592 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
593 data.SetPriorityLayer(priority_layer);
594 data.SetInteractionMask(operator);
595
596 data.m_IntTarget = val;
597 data.m_IntLast = data.m_IntCurrent;
598 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
599 {
600 data.SetSettingDefaultValues(false);
601 data.SetDataActive(true);
602
604 }
605 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
606 }
607
608 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
609 {
610 //TODO - running check and cleanup rework (elsewhere!)
612 return;
613
614 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
615 data.m_IntLast = data.m_IntCurrent;
616 if (!data.IsSettingDefaultValues())
617 {
618 data.SetSettingDefaultValues(true);
619
621 }
622 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
623 }
624
625 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
626 {
628 return;
629
631 data.SetPriorityLayer(priority_layer);
632 data.SetInteractionMask(operator);
633
634 data.m_FloatFormerTarget = data.m_FloatTarget;
635 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
636 data.m_FloatLast = data.m_FloatCurrent;
637 data.m_FloatStart = data.m_FloatCurrent;
638 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
639 {
640 data.SetSettingDefaultValues(false);
641 data.SetDataActive(true);
642
644 }
645 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
646 }
647
648 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
649 {
650 //TODO - running check and cleanup rework (elsewhere!)
652 return;
653
655 data.m_FloatFormerTarget = data.m_FloatTarget;
656 data.m_FloatLast = data.m_FloatCurrent;
657 data.m_FloatStart = data.m_FloatCurrent;
658 if (!data.IsSettingDefaultValues())
659 {
660 data.SetSettingDefaultValues(true);
661
663 }
664 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
665 }
666
667 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
668 {
670 return;
671
672 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
673 data.SetPriorityLayer(priority_layer);
674 data.SetInteractionMask(operator);
675 data.m_ColorFormerTarget = data.m_ColorTarget;
676
677 data.m_ColorTarget.Copy(val);
678
679 data.m_ColorLast = data.m_ColorCurrent;
680 data.m_ColorStart = data.m_ColorCurrent;
681 //if (data.m_ColorTarget != data.m_ColorCurrent)
682 {
683 data.SetSettingDefaultValues(false);
684 data.SetDataActive(true);
685
687 }
688 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
689 }
690
691 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
692 {
693 //TODO - running check and cleanup rework (elsewhere!)
695 return;
696
697 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
698 data.m_ColorFormerTarget = data.m_ColorTarget;
699 data.m_ColorLast = data.m_ColorCurrent;
700 data.m_ColorStart = data.m_ColorCurrent;
701 if (!data.IsSettingDefaultValues())
702 {
703 data.SetSettingDefaultValues(true);
704
706 }
707 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
708 }
709
710 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
711 {
712 }
713
714 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
715 {
716 }*/
717
718 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
719 {
720 }*/
721
723 protected void QueueValuesSend()
724 {
725 m_ValuesSent = false;
726 //m_IsRunning = true;
728 }
729
732 {
735 {
737 {
739 }
740 else
741 {
744 }
745 }
746 else
747 {
752 }
753
754 if (!data)
755 {
756 Error("GetRequestData | no data found in the structure");
757 }
758
759 data.m_Requester = this;
760
761 return data;
762 }
763
764 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
765 {
767 switch (type)
768 {
769 case PPEConstants.VAR_TYPE_BOOL:
771 break;
772
773 case PPEConstants.VAR_TYPE_INT:
774 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
775 break;
776
777 case PPEConstants.VAR_TYPE_FLOAT:
779 break;
780
781 case PPEConstants.VAR_TYPE_COLOR:
782 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
783 break;
784 }
785 return data;
786 }
787
788 // unused?
790 {
792 }
793
794 protected void ClearRequesterData()
795 {
797 }
798
800 {
801 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
802 }
803
804 //EVENTS//
805 //vvvvvv//
806 void OnUpdate(float delta)
807 {
808 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
809
810 if ( !m_ValuesSent )
811 {
812 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
813 {
814 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
815 {
816 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
817 }
818 }
819 m_ValuesSent = true;
820 }
822 }
823
824 protected void OnStart(Param par = null)
825 {
827 }
828
830 protected void OnStop(Param par = null)
831 {
832 //DbgPrnt("PPEDebug | " + this + " | OnStop");
835 }
836
838 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
839 {
840 float ret = value;
841 if (!relative) //if not already relative...
842 {
843 switch (var_type)
844 {
845 case PPEConstants.VAR_TYPE_FLOAT:
847 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
848 ret = Math.Clamp(ret,0.0,1.0);
849 break;
850 }
851 }
852 //Print("RelativizeValue: " + ret);
853
854 return ret;
855 }
856
858 protected void SetDefaultValuesAll()
859 {
860 //<material<param_id,data>>
862
863 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
864 {
865 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
866 {
867 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
868
869 if (!req_data.IsDataActive())
870 continue;
871
872 switch (req_data.GetVarType())
873 {
874 case PPEConstants.VAR_TYPE_BOOL:
875 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
876 break;
877
878 case PPEConstants.VAR_TYPE_INT:
879 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
880 break;
881
882 case PPEConstants.VAR_TYPE_FLOAT:
883 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
884 break;
885
886 case PPEConstants.VAR_TYPE_COLOR:
887 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
888 break;
889 }
890 }
891 }
892 }
893
894 void DbgPrnt(string text)
895 {
896 //Debug.Log(""+text);
897 }
898}
899
901// Base requester platforms //
903
905{
906 override int GetCategoryMask()
907 {
908 return PPERequesterCategory.GAMEPLAY_EFFECTS;
909 }
910}
911
913{
914 override int GetCategoryMask()
915 {
916 return PPERequesterCategory.MENU_EFFECTS;
917 }
918}

◆ Stop()

void Stop ( Param par = null)
protected
479{
480 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
481 protected bool m_ValuesSent;
482 protected int m_IDX;
483
484 protected bool m_Valid = false;
485
486 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
487
489 {
490 m_Valid = PPERequesterBank.VerifyRequester(this);
491
493 m_ValuesSent = true;
494 m_IsRunning = false;
496 }
497
499 void SetRequesterUpdating(bool state)
500 {
501 if (!m_Valid)
502 {
503 Debug.Log("" + this + " not valid!");
504 return;
505 }
506
507 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
508
509 //TODO - separate into its own function?
510 if (state)
511 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
512 }
513
514 void Start(Param par = null)
515 {
516 OnStart(par);
517 m_IsRunning = true;
518 }
519
520 void Stop(Param par = null)
521 {
523 return;
524
525 OnStop(par);
526 m_IsRunning = false;
527 }
528
529 bool IsRequesterRunning()
530 {
531 return m_IsRunning;
532 }
533
535 void SetRequesterIDX(int idx)
536 {
537 m_IDX = idx;
538 }
539
541 int GetRequesterIDX()
542 {
543 return m_IDX;
544 }
545
547 int GetCategoryMask()
548 {
549 return PPERequesterCategory.NONE;
550 }
551
552 //SETTERS//
553 //vvvvvvv//
554 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
555 {
557 return;
558
560 data.SetPriorityLayer(priority_layer);
561 data.SetInteractionMask(operator);
562
563 data.m_BoolTarget = val;
564 data.m_BoolLast = data.m_BoolCurrent;
565
566 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
567 {
568 data.SetSettingDefaultValues(false);
569 data.SetDataActive(true);
570
572 }
573 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
574 }
575
576 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
577 {
578 //TODO - running check and cleanup rework (elsewhere!)
580 return;
581
583 data.m_BoolLast = data.m_BoolCurrent;
584 if (!data.IsSettingDefaultValues())
585 {
586 data.SetSettingDefaultValues(true);
587
589 }
590 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
591 }
592
593 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
594 {
596 return;
597
598 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
599 data.SetPriorityLayer(priority_layer);
600 data.SetInteractionMask(operator);
601
602 data.m_IntTarget = val;
603 data.m_IntLast = data.m_IntCurrent;
604 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
605 {
606 data.SetSettingDefaultValues(false);
607 data.SetDataActive(true);
608
610 }
611 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
612 }
613
614 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
615 {
616 //TODO - running check and cleanup rework (elsewhere!)
618 return;
619
620 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
621 data.m_IntLast = data.m_IntCurrent;
622 if (!data.IsSettingDefaultValues())
623 {
624 data.SetSettingDefaultValues(true);
625
627 }
628 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
629 }
630
631 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
632 {
634 return;
635
637 data.SetPriorityLayer(priority_layer);
638 data.SetInteractionMask(operator);
639
640 data.m_FloatFormerTarget = data.m_FloatTarget;
641 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
642 data.m_FloatLast = data.m_FloatCurrent;
643 data.m_FloatStart = data.m_FloatCurrent;
644 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
645 {
646 data.SetSettingDefaultValues(false);
647 data.SetDataActive(true);
648
650 }
651 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
652 }
653
654 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
655 {
656 //TODO - running check and cleanup rework (elsewhere!)
658 return;
659
661 data.m_FloatFormerTarget = data.m_FloatTarget;
662 data.m_FloatLast = data.m_FloatCurrent;
663 data.m_FloatStart = data.m_FloatCurrent;
664 if (!data.IsSettingDefaultValues())
665 {
666 data.SetSettingDefaultValues(true);
667
669 }
670 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
671 }
672
673 protected void SetTargetValueColor(int mat_id, int param_idx, ref array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
674 {
676 return;
677
678 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
679 data.SetPriorityLayer(priority_layer);
680 data.SetInteractionMask(operator);
681 data.m_ColorFormerTarget = data.m_ColorTarget;
682
683 data.m_ColorTarget.Copy(val);
684
685 data.m_ColorLast = data.m_ColorCurrent;
686 data.m_ColorStart = data.m_ColorCurrent;
687 //if (data.m_ColorTarget != data.m_ColorCurrent)
688 {
689 data.SetSettingDefaultValues(false);
690 data.SetDataActive(true);
691
693 }
694 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
695 }
696
697 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
698 {
699 //TODO - running check and cleanup rework (elsewhere!)
701 return;
702
703 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
704 data.m_ColorFormerTarget = data.m_ColorTarget;
705 data.m_ColorLast = data.m_ColorCurrent;
706 data.m_ColorStart = data.m_ColorCurrent;
707 if (!data.IsSettingDefaultValues())
708 {
709 data.SetSettingDefaultValues(true);
710
712 }
713 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
714 }
715
716 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
717 {
718 }
719
720 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
721 {
722 }*/
723
724 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
725 {
726 }*/
727
729 protected void QueueValuesSend()
730 {
731 m_ValuesSent = false;
732 //m_IsRunning = true;
734 }
735
738 {
741 {
743 {
745 }
746 else
747 {
750 }
751 }
752 else
753 {
758 }
759
760 if (!data)
761 {
762 Error("GetRequestData | no data found in the structure");
763 }
764
765 data.m_Requester = this;
766
767 return data;
768 }
769
770 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
771 {
773 switch (type)
774 {
775 case PPEConstants.VAR_TYPE_BOOL:
777 break;
778
779 case PPEConstants.VAR_TYPE_INT:
780 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
781 break;
782
783 case PPEConstants.VAR_TYPE_FLOAT:
785 break;
786
787 case PPEConstants.VAR_TYPE_COLOR:
788 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
789 break;
790 }
791 return data;
792 }
793
794 // unused?
796 {
798 }
799
800 protected void ClearRequesterData()
801 {
803 }
804
806 {
807 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
808 }
809
810 //EVENTS//
811 //vvvvvv//
812 void OnUpdate(float delta)
813 {
814 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
815
816 if ( !m_ValuesSent )
817 {
818 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
819 {
820 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
821 {
822 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
823 }
824 }
825 m_ValuesSent = true;
826 }
828 }
829
830 protected void OnStart(Param par = null)
831 {
833 }
834
836 protected void OnStop(Param par = null)
837 {
838 //DbgPrnt("PPEDebug | " + this + " | OnStop");
841 }
842
844 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
845 {
846 float ret = value;
847 if (!relative) //if not already relative...
848 {
849 switch (var_type)
850 {
851 case PPEConstants.VAR_TYPE_FLOAT:
853 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
854 ret = Math.Clamp(ret,0.0,1.0);
855 break;
856 }
857 }
858 //Print("RelativizeValue: " + ret);
859
860 return ret;
861 }
862
864 protected void SetDefaultValuesAll()
865 {
866 //<material<param_id,data>>
868
869 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
870 {
871 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
872 {
873 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
874
875 if (!req_data.IsDataActive())
876 continue;
877
878 switch (req_data.GetVarType())
879 {
880 case PPEConstants.VAR_TYPE_BOOL:
881 SetTargetValueBoolDefault(req_data.GetMaterialID(),req_data.GetParameterID());
882 break;
883
884 case PPEConstants.VAR_TYPE_INT:
885 SetTargetValueIntDefault(req_data.GetMaterialID(),req_data.GetParameterID());
886 break;
887
888 case PPEConstants.VAR_TYPE_FLOAT:
889 SetTargetValueFloatDefault(req_data.GetMaterialID(),req_data.GetParameterID());
890 break;
891
892 case PPEConstants.VAR_TYPE_COLOR:
893 SetTargetValueColorDefault(req_data.GetMaterialID(),req_data.GetParameterID());
894 break;
895 }
896 }
897 }
898 }
899
900 void DbgPrnt(string text)
901 {
902 //Debug.Log(""+text);
903 }
904}
905
907// Base requester platforms //
909
911{
912 override int GetCategoryMask()
913 {
914 return PPERequesterCategory.GAMEPLAY_EFFECTS;
915 }
916}
917
919{
920 override int GetCategoryMask()
921 {
922 return PPERequesterCategory.MENU_EFFECTS;
923 }
924}

Переменные

◆ m_IDX

int m_IDX
protected

◆ m_IsRunning

◆ m_RequestDataStructure

ref map<int,ref map<int,ref PPERequestParamDataBase> > m_RequestDataStructure
protected

◆ m_Valid

bool m_Valid = false
protected

◆ m_ValuesSent

bool m_ValuesSent
protected