759{
763
764 protected bool m_Valid =
false;
765
767
769 {
770 m_Valid = PPERequesterBank.VerifyRequester(
this);
771
772 m_IDX = requester_IDX;
776 }
777
780 {
782 {
783 Debug.
Log(
"" +
this +
" not valid!");
784 return;
785 }
786
788
789
790 if (state)
792 }
793
795 {
798 }
799
801 {
803 return;
804
807 }
808
810 {
812 }
813
816 {
818 }
819
822 {
824 }
825
828 {
830 }
831
832
833
835 {
837 return;
838
840 data.SetPriorityLayer(priority_layer);
841 data.SetInteractionMask(operator);
842
843 data.m_BoolTarget = val;
844 data.m_BoolLast = data.m_BoolCurrent;
845
846 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
847 {
848 data.SetSettingDefaultValues(false);
849 data.SetDataActive(true);
850
852 }
853
854 }
855
857 {
858
860 return;
861
863 data.m_BoolLast = data.m_BoolCurrent;
864 if (!data.IsSettingDefaultValues())
865 {
866 data.SetSettingDefaultValues(true);
867
869 }
870
871 }
872
874 {
876 return;
877
878 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
879 data.SetPriorityLayer(priority_layer);
880 data.SetInteractionMask(operator);
881
882 data.m_IntTarget = val;
883 data.m_IntLast = data.m_IntCurrent;
884 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
885 {
886 data.SetSettingDefaultValues(false);
887 data.SetDataActive(true);
888
890 }
891
892 }
893
895 {
896
898 return;
899
900 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
901 data.m_IntLast = data.m_IntCurrent;
902 if (!data.IsSettingDefaultValues())
903 {
904 data.SetSettingDefaultValues(true);
905
907 }
908
909 }
910
911 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
912 {
914 return;
915
917 data.SetPriorityLayer(priority_layer);
918 data.SetInteractionMask(operator);
919
920 data.m_FloatFormerTarget = data.m_FloatTarget;
921 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
922 data.m_FloatLast = data.m_FloatCurrent;
923 data.m_FloatStart = data.m_FloatCurrent;
924 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
925 {
926 data.SetSettingDefaultValues(false);
927 data.SetDataActive(true);
928
930 }
931
932 }
933
935 {
936
938 return;
939
941 data.m_FloatFormerTarget = data.m_FloatTarget;
942 data.m_FloatLast = data.m_FloatCurrent;
943 data.m_FloatStart = data.m_FloatCurrent;
944 if (!data.IsSettingDefaultValues())
945 {
946 data.SetSettingDefaultValues(true);
947
949 }
950
951 }
952
954 {
956 return;
957
958 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
959 data.SetPriorityLayer(priority_layer);
960 data.SetInteractionMask(operator);
961 data.m_ColorFormerTarget = data.m_ColorTarget;
962
963 data.m_ColorTarget.Copy(val);
964
965 data.m_ColorLast = data.m_ColorCurrent;
966 data.m_ColorStart = data.m_ColorCurrent;
967
968 {
969 data.SetSettingDefaultValues(false);
970 data.SetDataActive(true);
971
973 }
974
975 }
976
978 {
979
981 return;
982
983 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
984 data.m_ColorFormerTarget = data.m_ColorTarget;
985 data.m_ColorLast = data.m_ColorCurrent;
986 data.m_ColorStart = data.m_ColorCurrent;
987 if (!data.IsSettingDefaultValues())
988 {
989 data.SetSettingDefaultValues(true);
990
992 }
993
994 }
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1010 {
1012
1014 }
1015
1018 {
1021 {
1023 {
1025 }
1026 else
1027 {
1030 }
1031 }
1032 else
1033 {
1036 temp_map.Set(param_idx,data);
1038 }
1039
1040 if (!data)
1041 {
1042 Error(
"GetRequestData | no data found in the structure");
1043 }
1044
1046
1047 return data;
1048 }
1049
1051 {
1053 switch (type)
1054 {
1055 case PPEConstants.VAR_TYPE_BOOL:
1057 break;
1058
1059 case PPEConstants.VAR_TYPE_INT:
1060 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
1061 break;
1062
1063 case PPEConstants.VAR_TYPE_FLOAT:
1065 break;
1066
1067 case PPEConstants.VAR_TYPE_COLOR:
1068 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
1069 break;
1070 }
1071 return data;
1072 }
1073
1074
1076 {
1078 }
1079
1081 {
1083 }
1084
1086 {
1088 }
1089
1090
1091
1093 {
1094
1095
1097 {
1099 {
1101 {
1103 }
1104 }
1106 }
1108 }
1109
1111 {
1113 }
1114
1117 {
1118
1121 }
1122
1124 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
1125 {
1126 float ret = value;
1127 if (!relative)
1128 {
1129 switch (var_type)
1130 {
1131 case PPEConstants.VAR_TYPE_FLOAT:
1135 break;
1136 }
1137 }
1138
1139
1140 return ret;
1141 }
1142
1145 {
1146
1148
1150 {
1152 {
1154
1156 continue;
1157
1159 {
1160 case PPEConstants.VAR_TYPE_BOOL:
1162 break;
1163
1164 case PPEConstants.VAR_TYPE_INT:
1166 break;
1167
1168 case PPEConstants.VAR_TYPE_FLOAT:
1170 break;
1171
1172 case PPEConstants.VAR_TYPE_COLOR:
1174 break;
1175 }
1176 }
1177 }
1178 }
1179
1181 {
1182
1183 }
1184}
1185
1187
1189
1191{
1193 {
1195 }
1196}
1197
1199{
1201 {
1203 }
1204}
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.