771{
775
776 protected bool m_Valid =
false;
777
779
781 {
782 m_Valid = PPERequesterBank.VerifyRequester(
this);
783
784 m_IDX = requester_IDX;
788 }
789
792 {
794 {
795 Debug.
Log(
"" +
this +
" not valid!");
796 return;
797 }
798
800
801
802 if (state)
804 }
805
807 {
810 }
811
813 {
815 return;
816
819 }
820
822 {
824 }
825
828 {
830 }
831
834 {
836 }
837
840 {
842 }
843
844
845
847 {
849 return;
850
852 data.SetPriorityLayer(priority_layer);
853 data.SetInteractionMask(operator);
854
855 data.m_BoolTarget = val;
856 data.m_BoolLast = data.m_BoolCurrent;
857
858 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
859 {
860 data.SetSettingDefaultValues(false);
861 data.SetDataActive(true);
862
864 }
865
866 }
867
869 {
870
872 return;
873
875 data.m_BoolLast = data.m_BoolCurrent;
876 if (!data.IsSettingDefaultValues())
877 {
878 data.SetSettingDefaultValues(true);
879
881 }
882
883 }
884
886 {
888 return;
889
890 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
891 data.SetPriorityLayer(priority_layer);
892 data.SetInteractionMask(operator);
893
894 data.m_IntTarget = val;
895 data.m_IntLast = data.m_IntCurrent;
896 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
897 {
898 data.SetSettingDefaultValues(false);
899 data.SetDataActive(true);
900
902 }
903
904 }
905
907 {
908
910 return;
911
912 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
913 data.m_IntLast = data.m_IntCurrent;
914 if (!data.IsSettingDefaultValues())
915 {
916 data.SetSettingDefaultValues(true);
917
919 }
920
921 }
922
923 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
924 {
926 return;
927
929 data.SetPriorityLayer(priority_layer);
930 data.SetInteractionMask(operator);
931
932 data.m_FloatFormerTarget = data.m_FloatTarget;
933 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
934 data.m_FloatLast = data.m_FloatCurrent;
935 data.m_FloatStart = data.m_FloatCurrent;
936 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
937 {
938 data.SetSettingDefaultValues(false);
939 data.SetDataActive(true);
940
942 }
943
944 }
945
947 {
948
950 return;
951
953 data.m_FloatFormerTarget = data.m_FloatTarget;
954 data.m_FloatLast = data.m_FloatCurrent;
955 data.m_FloatStart = data.m_FloatCurrent;
956 if (!data.IsSettingDefaultValues())
957 {
958 data.SetSettingDefaultValues(true);
959
961 }
962
963 }
964
966 {
968 return;
969
970 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
971 data.SetPriorityLayer(priority_layer);
972 data.SetInteractionMask(operator);
973 data.m_ColorFormerTarget = data.m_ColorTarget;
974
975 data.m_ColorTarget.Copy(val);
976
977 data.m_ColorLast = data.m_ColorCurrent;
978 data.m_ColorStart = data.m_ColorCurrent;
979
980 {
981 data.SetSettingDefaultValues(false);
982 data.SetDataActive(true);
983
985 }
986
987 }
988
990 {
991
993 return;
994
995 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
996 data.m_ColorFormerTarget = data.m_ColorTarget;
997 data.m_ColorLast = data.m_ColorCurrent;
998 data.m_ColorStart = data.m_ColorCurrent;
999 if (!data.IsSettingDefaultValues())
1000 {
1001 data.SetSettingDefaultValues(true);
1002
1004 }
1005
1006 }
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1022 {
1024
1026 }
1027
1030 {
1033 {
1035 {
1037 }
1038 else
1039 {
1042 }
1043 }
1044 else
1045 {
1048 temp_map.Set(param_idx,data);
1050 }
1051
1052 if (!data)
1053 {
1054 Error(
"GetRequestData | no data found in the structure");
1055 }
1056
1058
1059 return data;
1060 }
1061
1063 {
1065 switch (type)
1066 {
1067 case PPEConstants.VAR_TYPE_BOOL:
1069 break;
1070
1071 case PPEConstants.VAR_TYPE_INT:
1072 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
1073 break;
1074
1075 case PPEConstants.VAR_TYPE_FLOAT:
1077 break;
1078
1079 case PPEConstants.VAR_TYPE_COLOR:
1080 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
1081 break;
1082 }
1083 return data;
1084 }
1085
1086
1088 {
1090 }
1091
1093 {
1095 }
1096
1098 {
1100 }
1101
1102
1103
1105 {
1106
1107
1109 {
1111 {
1113 {
1115 }
1116 }
1118 }
1120 }
1121
1123 {
1125 }
1126
1129 {
1130
1133 }
1134
1136 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
1137 {
1138 float ret = value;
1139 if (!relative)
1140 {
1141 switch (var_type)
1142 {
1143 case PPEConstants.VAR_TYPE_FLOAT:
1147 break;
1148 }
1149 }
1150
1151
1152 return ret;
1153 }
1154
1157 {
1158
1160
1162 {
1164 {
1166
1168 continue;
1169
1171 {
1172 case PPEConstants.VAR_TYPE_BOOL:
1174 break;
1175
1176 case PPEConstants.VAR_TYPE_INT:
1178 break;
1179
1180 case PPEConstants.VAR_TYPE_FLOAT:
1182 break;
1183
1184 case PPEConstants.VAR_TYPE_COLOR:
1186 break;
1187 }
1188 }
1189 }
1190 }
1191
1193 {
1194
1195 }
1196}
1197
1199
1201
1203{
1205 {
1207 }
1208}
1209
1211{
1213 {
1215 }
1216}
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.