789{
793
794 protected bool m_Valid =
false;
795
797
799 {
800 m_Valid = PPERequesterBank.VerifyRequester(
this);
801
802 m_IDX = requester_IDX;
806 }
807
810 {
812 {
813 Debug.
Log(
"" +
this +
" not valid!");
814 return;
815 }
816
818
819
820 if (state)
822 }
823
825 {
828 }
829
831 {
833 return;
834
837 }
838
840 {
842 }
843
846 {
848 }
849
852 {
854 }
855
858 {
860 }
861
862
863
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
884 }
885
887 {
888
890 return;
891
893 data.m_BoolLast = data.m_BoolCurrent;
894 if (!data.IsSettingDefaultValues())
895 {
896 data.SetSettingDefaultValues(true);
897
899 }
900
901 }
902
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
922 }
923
925 {
926
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
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
962 }
963
965 {
966
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
981 }
982
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
998 {
999 data.SetSettingDefaultValues(false);
1000 data.SetDataActive(true);
1001
1003 }
1004
1005 }
1006
1008 {
1009
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
1024 }
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1040 {
1042
1044 }
1045
1048 {
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
1076
1077 return data;
1078 }
1079
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
1106 {
1108 }
1109
1111 {
1113 }
1114
1116 {
1118 }
1119
1120
1121
1123 {
1124
1125
1127 {
1129 {
1131 {
1133 }
1134 }
1136 }
1138 }
1139
1141 {
1143 }
1144
1147 {
1148
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)
1158 {
1159 switch (var_type)
1160 {
1161 case PPEConstants.VAR_TYPE_FLOAT:
1165 break;
1166 }
1167 }
1168
1169
1170 return ret;
1171 }
1172
1175 {
1176
1178
1180 {
1182 {
1184
1186 continue;
1187
1189 {
1190 case PPEConstants.VAR_TYPE_BOOL:
1192 break;
1193
1194 case PPEConstants.VAR_TYPE_INT:
1196 break;
1197
1198 case PPEConstants.VAR_TYPE_FLOAT:
1200 break;
1201
1202 case PPEConstants.VAR_TYPE_COLOR:
1204 break;
1205 }
1206 }
1207 }
1208 }
1209
1211 {
1212
1213 }
1214}
1215
1217
1219
1221{
1223 {
1225 }
1226}
1227
1229{
1231 {
1233 }
1234}
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.