764{
768
769 protected bool m_Valid =
false;
770
772
774 {
775 m_Valid = PPERequesterBank.VerifyRequester(
this);
776
777 m_IDX = requester_IDX;
781 }
782
785 {
787 {
788 Debug.
Log(
"" +
this +
" not valid!");
789 return;
790 }
791
793
794
795 if (state)
797 }
798
800 {
803 }
804
806 {
808 return;
809
812 }
813
815 {
817 }
818
821 {
823 }
824
827 {
829 }
830
833 {
835 }
836
837
838
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
859 }
860
862 {
863
865 return;
866
868 data.m_BoolLast = data.m_BoolCurrent;
869 if (!data.IsSettingDefaultValues())
870 {
871 data.SetSettingDefaultValues(true);
872
874 }
875
876 }
877
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
897 }
898
900 {
901
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
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
937 }
938
940 {
941
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
956 }
957
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
973 {
974 data.SetSettingDefaultValues(false);
975 data.SetDataActive(true);
976
978 }
979
980 }
981
983 {
984
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
999 }
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1015 {
1017
1019 }
1020
1023 {
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
1051
1052 return data;
1053 }
1054
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
1081 {
1083 }
1084
1086 {
1088 }
1089
1091 {
1093 }
1094
1095
1096
1098 {
1099
1100
1102 {
1104 {
1106 {
1108 }
1109 }
1111 }
1113 }
1114
1116 {
1118 }
1119
1122 {
1123
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)
1133 {
1134 switch (var_type)
1135 {
1136 case PPEConstants.VAR_TYPE_FLOAT:
1140 break;
1141 }
1142 }
1143
1144
1145 return ret;
1146 }
1147
1150 {
1151
1153
1155 {
1157 {
1159
1161 continue;
1162
1164 {
1165 case PPEConstants.VAR_TYPE_BOOL:
1167 break;
1168
1169 case PPEConstants.VAR_TYPE_INT:
1171 break;
1172
1173 case PPEConstants.VAR_TYPE_FLOAT:
1175 break;
1176
1177 case PPEConstants.VAR_TYPE_COLOR:
1179 break;
1180 }
1181 }
1182 }
1183 }
1184
1186 {
1187
1188 }
1189}
1190
1192
1194
1196{
1198 {
1200 }
1201}
1202
1204{
1206 {
1208 }
1209}
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.