859{
863
864 protected bool m_Valid =
false;
865
867
869 {
870 m_Valid = PPERequesterBank.VerifyRequester(
this);
871
872 m_IDX = requester_IDX;
876 }
877
880 {
882 {
883 Debug.
Log(
"" +
this +
" not valid!");
884 return;
885 }
886
888
889
890 if (state)
892 }
893
895 {
898 }
899
901 {
903 return;
904
907 }
908
910 {
912 }
913
916 {
918 }
919
922 {
924 }
925
928 {
930 }
931
932
933
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
954 }
955
957 {
958
960 return;
961
963 data.m_BoolLast = data.m_BoolCurrent;
964 if (!data.IsSettingDefaultValues())
965 {
966 data.SetSettingDefaultValues(true);
967
969 }
970
971 }
972
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
992 }
993
995 {
996
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
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
1032 }
1033
1035 {
1036
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
1051 }
1052
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
1068 {
1069 data.SetSettingDefaultValues(false);
1070 data.SetDataActive(true);
1071
1073 }
1074
1075 }
1076
1078 {
1079
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
1094 }
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1110 {
1112
1114 }
1115
1118 {
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
1146
1147 return data;
1148 }
1149
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
1176 {
1178 }
1179
1181 {
1183 }
1184
1186 {
1188 }
1189
1190
1191
1193 {
1194
1195
1197 {
1199 {
1201 {
1203 }
1204 }
1206 }
1208 }
1209
1211 {
1213 }
1214
1217 {
1218
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)
1228 {
1229 switch (var_type)
1230 {
1231 case PPEConstants.VAR_TYPE_FLOAT:
1235 break;
1236 }
1237 }
1238
1239
1240 return ret;
1241 }
1242
1245 {
1246
1248
1250 {
1252 {
1254
1256 continue;
1257
1259 {
1260 case PPEConstants.VAR_TYPE_BOOL:
1262 break;
1263
1264 case PPEConstants.VAR_TYPE_INT:
1266 break;
1267
1268 case PPEConstants.VAR_TYPE_FLOAT:
1270 break;
1271
1272 case PPEConstants.VAR_TYPE_COLOR:
1274 break;
1275 }
1276 }
1277 }
1278 }
1279
1281 {
1282
1283 }
1284}
1285
1287
1289
1291{
1293 {
1295 }
1296}
1297
1299{
1301 {
1303 }
1304}
void Start()
Plays all elements this effects consists of.
PPOperators
PP operators, specify operation between subsequent layers.
Param4< string, float, float, float > PPETemplateDefFloat
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)
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)
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.
static PPEManager GetPPEManager()
Returns the manager instance singleton.
Static component of PPE manager, used to hold the instance.
PPERequesterBase m_Requester
Data for one material parameter, requester side.
base, not to be used directly, would lead to layering collisions!
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
void Error(string err)
Messagebox with error message.
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,...
void Stop()
Stops all elements this effect consists of.