729{
733
734 protected bool m_Valid =
false;
735
737
739 {
740 m_Valid = PPERequesterBank.VerifyRequester(
this);
741
742 m_IDX = requester_IDX;
746 }
747
750 {
752 {
753 Debug.
Log(
"" +
this +
" not valid!");
754 return;
755 }
756
758
759
760 if (state)
762 }
763
765 {
768 }
769
771 {
773 return;
774
777 }
778
780 {
782 }
783
786 {
788 }
789
792 {
794 }
795
798 {
800 }
801
802
803
805 {
807 return;
808
810 data.SetPriorityLayer(priority_layer);
811 data.SetInteractionMask(operator);
812
813 data.m_BoolTarget = val;
814 data.m_BoolLast = data.m_BoolCurrent;
815
816 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
817 {
818 data.SetSettingDefaultValues(false);
819 data.SetDataActive(true);
820
822 }
823
824 }
825
827 {
828
830 return;
831
833 data.m_BoolLast = data.m_BoolCurrent;
834 if (!data.IsSettingDefaultValues())
835 {
836 data.SetSettingDefaultValues(true);
837
839 }
840
841 }
842
844 {
846 return;
847
848 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
849 data.SetPriorityLayer(priority_layer);
850 data.SetInteractionMask(operator);
851
852 data.m_IntTarget = val;
853 data.m_IntLast = data.m_IntCurrent;
854 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
855 {
856 data.SetSettingDefaultValues(false);
857 data.SetDataActive(true);
858
860 }
861
862 }
863
865 {
866
868 return;
869
870 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
871 data.m_IntLast = data.m_IntCurrent;
872 if (!data.IsSettingDefaultValues())
873 {
874 data.SetSettingDefaultValues(true);
875
877 }
878
879 }
880
881 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
882 {
884 return;
885
887 data.SetPriorityLayer(priority_layer);
888 data.SetInteractionMask(operator);
889
890 data.m_FloatFormerTarget = data.m_FloatTarget;
891 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
892 data.m_FloatLast = data.m_FloatCurrent;
893 data.m_FloatStart = data.m_FloatCurrent;
894 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
895 {
896 data.SetSettingDefaultValues(false);
897 data.SetDataActive(true);
898
900 }
901
902 }
903
905 {
906
908 return;
909
911 data.m_FloatFormerTarget = data.m_FloatTarget;
912 data.m_FloatLast = data.m_FloatCurrent;
913 data.m_FloatStart = data.m_FloatCurrent;
914 if (!data.IsSettingDefaultValues())
915 {
916 data.SetSettingDefaultValues(true);
917
919 }
920
921 }
922
924 {
926 return;
927
928 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
929 data.SetPriorityLayer(priority_layer);
930 data.SetInteractionMask(operator);
931 data.m_ColorFormerTarget = data.m_ColorTarget;
932
933 data.m_ColorTarget.Copy(val);
934
935 data.m_ColorLast = data.m_ColorCurrent;
936 data.m_ColorStart = data.m_ColorCurrent;
937
938 {
939 data.SetSettingDefaultValues(false);
940 data.SetDataActive(true);
941
943 }
944
945 }
946
948 {
949
951 return;
952
953 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
954 data.m_ColorFormerTarget = data.m_ColorTarget;
955 data.m_ColorLast = data.m_ColorCurrent;
956 data.m_ColorStart = data.m_ColorCurrent;
957 if (!data.IsSettingDefaultValues())
958 {
959 data.SetSettingDefaultValues(true);
960
962 }
963
964 }
965
966
967
968
969
970
971
972
973
974
975
976
977
980 {
982
984 }
985
988 {
991 {
993 {
995 }
996 else
997 {
1000 }
1001 }
1002 else
1003 {
1006 temp_map.Set(param_idx,data);
1008 }
1009
1010 if (!data)
1011 {
1012 Error(
"GetRequestData | no data found in the structure");
1013 }
1014
1016
1017 return data;
1018 }
1019
1021 {
1023 switch (type)
1024 {
1025 case PPEConstants.VAR_TYPE_BOOL:
1027 break;
1028
1029 case PPEConstants.VAR_TYPE_INT:
1030 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
1031 break;
1032
1033 case PPEConstants.VAR_TYPE_FLOAT:
1035 break;
1036
1037 case PPEConstants.VAR_TYPE_COLOR:
1038 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
1039 break;
1040 }
1041 return data;
1042 }
1043
1044
1046 {
1048 }
1049
1051 {
1053 }
1054
1056 {
1058 }
1059
1060
1061
1063 {
1064
1065
1067 {
1069 {
1071 {
1073 }
1074 }
1076 }
1078 }
1079
1081 {
1083 }
1084
1087 {
1088
1091 }
1092
1094 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
1095 {
1096 float ret = value;
1097 if (!relative)
1098 {
1099 switch (var_type)
1100 {
1101 case PPEConstants.VAR_TYPE_FLOAT:
1105 break;
1106 }
1107 }
1108
1109
1110 return ret;
1111 }
1112
1115 {
1116
1118
1120 {
1122 {
1124
1126 continue;
1127
1129 {
1130 case PPEConstants.VAR_TYPE_BOOL:
1132 break;
1133
1134 case PPEConstants.VAR_TYPE_INT:
1136 break;
1137
1138 case PPEConstants.VAR_TYPE_FLOAT:
1140 break;
1141
1142 case PPEConstants.VAR_TYPE_COLOR:
1144 break;
1145 }
1146 }
1147 }
1148 }
1149
1151 {
1152
1153 }
1154}
1155
1157
1159
1161{
1163 {
1165 }
1166}
1167
1169{
1171 {
1173 }
1174}
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.