803{
807
808 protected bool m_Valid =
false;
809
811
813 {
814 m_Valid = PPERequesterBank.VerifyRequester(
this);
815
816 m_IDX = requester_IDX;
820 }
821
824 {
826 {
827 Debug.
Log(
"" +
this +
" not valid!");
828 return;
829 }
830
832
833
834 if (state)
836 }
837
839 {
842 }
843
845 {
847 return;
848
851 }
852
854 {
856 }
857
860 {
862 }
863
866 {
868 }
869
872 {
874 }
875
876
877
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
898 }
899
901 {
902
904 return;
905
907 data.m_BoolLast = data.m_BoolCurrent;
908 if (!data.IsSettingDefaultValues())
909 {
910 data.SetSettingDefaultValues(true);
911
913 }
914
915 }
916
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
936 }
937
939 {
940
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
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
976 }
977
979 {
980
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
995 }
996
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
1012 {
1013 data.SetSettingDefaultValues(false);
1014 data.SetDataActive(true);
1015
1017 }
1018
1019 }
1020
1022 {
1023
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
1038 }
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1054 {
1056
1058 }
1059
1062 {
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
1090
1091 return data;
1092 }
1093
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
1120 {
1122 }
1123
1125 {
1127 }
1128
1130 {
1132 }
1133
1134
1135
1137 {
1138
1139
1141 {
1143 {
1145 {
1147 }
1148 }
1150 }
1152 }
1153
1155 {
1157 }
1158
1161 {
1162
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)
1172 {
1173 switch (var_type)
1174 {
1175 case PPEConstants.VAR_TYPE_FLOAT:
1179 break;
1180 }
1181 }
1182
1183
1184 return ret;
1185 }
1186
1189 {
1190
1192
1194 {
1196 {
1198
1200 continue;
1201
1203 {
1204 case PPEConstants.VAR_TYPE_BOOL:
1206 break;
1207
1208 case PPEConstants.VAR_TYPE_INT:
1210 break;
1211
1212 case PPEConstants.VAR_TYPE_FLOAT:
1214 break;
1215
1216 case PPEConstants.VAR_TYPE_COLOR:
1218 break;
1219 }
1220 }
1221 }
1222 }
1223
1225 {
1226
1227 }
1228}
1229
1231
1233
1235{
1237 {
1239 }
1240}
1241
1243{
1245 {
1247 }
1248}
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.