754{
758
759 protected bool m_Valid =
false;
760
762
764 {
765 m_Valid = PPERequesterBank.VerifyRequester(
this);
766
767 m_IDX = requester_IDX;
771 }
772
775 {
777 {
778 Debug.
Log(
"" +
this +
" not valid!");
779 return;
780 }
781
783
784
785 if (state)
787 }
788
790 {
793 }
794
796 {
798 return;
799
802 }
803
805 {
807 }
808
811 {
813 }
814
817 {
819 }
820
823 {
825 }
826
827
828
830 {
832 return;
833
835 data.SetPriorityLayer(priority_layer);
836 data.SetInteractionMask(operator);
837
838 data.m_BoolTarget = val;
839 data.m_BoolLast = data.m_BoolCurrent;
840
841 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
842 {
843 data.SetSettingDefaultValues(false);
844 data.SetDataActive(true);
845
847 }
848
849 }
850
852 {
853
855 return;
856
858 data.m_BoolLast = data.m_BoolCurrent;
859 if (!data.IsSettingDefaultValues())
860 {
861 data.SetSettingDefaultValues(true);
862
864 }
865
866 }
867
869 {
871 return;
872
873 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
874 data.SetPriorityLayer(priority_layer);
875 data.SetInteractionMask(operator);
876
877 data.m_IntTarget = val;
878 data.m_IntLast = data.m_IntCurrent;
879 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
880 {
881 data.SetSettingDefaultValues(false);
882 data.SetDataActive(true);
883
885 }
886
887 }
888
890 {
891
893 return;
894
895 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
896 data.m_IntLast = data.m_IntCurrent;
897 if (!data.IsSettingDefaultValues())
898 {
899 data.SetSettingDefaultValues(true);
900
902 }
903
904 }
905
906 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
907 {
909 return;
910
912 data.SetPriorityLayer(priority_layer);
913 data.SetInteractionMask(operator);
914
915 data.m_FloatFormerTarget = data.m_FloatTarget;
916 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
917 data.m_FloatLast = data.m_FloatCurrent;
918 data.m_FloatStart = data.m_FloatCurrent;
919 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
920 {
921 data.SetSettingDefaultValues(false);
922 data.SetDataActive(true);
923
925 }
926
927 }
928
930 {
931
933 return;
934
936 data.m_FloatFormerTarget = data.m_FloatTarget;
937 data.m_FloatLast = data.m_FloatCurrent;
938 data.m_FloatStart = data.m_FloatCurrent;
939 if (!data.IsSettingDefaultValues())
940 {
941 data.SetSettingDefaultValues(true);
942
944 }
945
946 }
947
949 {
951 return;
952
953 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
954 data.SetPriorityLayer(priority_layer);
955 data.SetInteractionMask(operator);
956 data.m_ColorFormerTarget = data.m_ColorTarget;
957
958 data.m_ColorTarget.Copy(val);
959
960 data.m_ColorLast = data.m_ColorCurrent;
961 data.m_ColorStart = data.m_ColorCurrent;
962
963 {
964 data.SetSettingDefaultValues(false);
965 data.SetDataActive(true);
966
968 }
969
970 }
971
973 {
974
976 return;
977
978 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
979 data.m_ColorFormerTarget = data.m_ColorTarget;
980 data.m_ColorLast = data.m_ColorCurrent;
981 data.m_ColorStart = data.m_ColorCurrent;
982 if (!data.IsSettingDefaultValues())
983 {
984 data.SetSettingDefaultValues(true);
985
987 }
988
989 }
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1005 {
1007
1009 }
1010
1013 {
1016 {
1018 {
1020 }
1021 else
1022 {
1025 }
1026 }
1027 else
1028 {
1031 temp_map.Set(param_idx,data);
1033 }
1034
1035 if (!data)
1036 {
1037 Error(
"GetRequestData | no data found in the structure");
1038 }
1039
1041
1042 return data;
1043 }
1044
1046 {
1048 switch (type)
1049 {
1050 case PPEConstants.VAR_TYPE_BOOL:
1052 break;
1053
1054 case PPEConstants.VAR_TYPE_INT:
1055 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
1056 break;
1057
1058 case PPEConstants.VAR_TYPE_FLOAT:
1060 break;
1061
1062 case PPEConstants.VAR_TYPE_COLOR:
1063 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
1064 break;
1065 }
1066 return data;
1067 }
1068
1069
1071 {
1073 }
1074
1076 {
1078 }
1079
1081 {
1083 }
1084
1085
1086
1088 {
1089
1090
1092 {
1094 {
1096 {
1098 }
1099 }
1101 }
1103 }
1104
1106 {
1108 }
1109
1112 {
1113
1116 }
1117
1119 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
1120 {
1121 float ret = value;
1122 if (!relative)
1123 {
1124 switch (var_type)
1125 {
1126 case PPEConstants.VAR_TYPE_FLOAT:
1130 break;
1131 }
1132 }
1133
1134
1135 return ret;
1136 }
1137
1140 {
1141
1143
1145 {
1147 {
1149
1151 continue;
1152
1154 {
1155 case PPEConstants.VAR_TYPE_BOOL:
1157 break;
1158
1159 case PPEConstants.VAR_TYPE_INT:
1161 break;
1162
1163 case PPEConstants.VAR_TYPE_FLOAT:
1165 break;
1166
1167 case PPEConstants.VAR_TYPE_COLOR:
1169 break;
1170 }
1171 }
1172 }
1173 }
1174
1176 {
1177
1178 }
1179}
1180
1182
1184
1186{
1188 {
1190 }
1191}
1192
1194{
1196 {
1198 }
1199}
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.