795{
799
800 protected bool m_Valid =
false;
801
803
805 {
806 m_Valid = PPERequesterBank.VerifyRequester(
this);
807
808 m_IDX = requester_IDX;
812 }
813
816 {
818 {
819 Debug.
Log(
"" +
this +
" not valid!");
820 return;
821 }
822
824
825
826 if (state)
828 }
829
831 {
834 }
835
837 {
839 return;
840
843 }
844
846 {
848 }
849
852 {
854 }
855
858 {
860 }
861
864 {
866 }
867
868
869
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
890 }
891
893 {
894
896 return;
897
899 data.m_BoolLast = data.m_BoolCurrent;
900 if (!data.IsSettingDefaultValues())
901 {
902 data.SetSettingDefaultValues(true);
903
905 }
906
907 }
908
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
928 }
929
931 {
932
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
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
968 }
969
971 {
972
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
987 }
988
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
1004 {
1005 data.SetSettingDefaultValues(false);
1006 data.SetDataActive(true);
1007
1009 }
1010
1011 }
1012
1014 {
1015
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
1030 }
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1046 {
1048
1050 }
1051
1054 {
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
1082
1083 return data;
1084 }
1085
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
1112 {
1114 }
1115
1117 {
1119 }
1120
1122 {
1124 }
1125
1126
1127
1129 {
1130
1131
1133 {
1135 {
1137 {
1139 }
1140 }
1142 }
1144 }
1145
1147 {
1149 }
1150
1153 {
1154
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)
1164 {
1165 switch (var_type)
1166 {
1167 case PPEConstants.VAR_TYPE_FLOAT:
1171 break;
1172 }
1173 }
1174
1175
1176 return ret;
1177 }
1178
1181 {
1182
1184
1186 {
1188 {
1190
1192 continue;
1193
1195 {
1196 case PPEConstants.VAR_TYPE_BOOL:
1198 break;
1199
1200 case PPEConstants.VAR_TYPE_INT:
1202 break;
1203
1204 case PPEConstants.VAR_TYPE_FLOAT:
1206 break;
1207
1208 case PPEConstants.VAR_TYPE_COLOR:
1210 break;
1211 }
1212 }
1213 }
1214 }
1215
1217 {
1218
1219 }
1220}
1221
1223
1225
1227{
1229 {
1231 }
1232}
1233
1235{
1237 {
1239 }
1240}
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.