656{
660
661 protected bool m_Valid =
false;
662
664
666 {
667 m_Valid = PPERequesterBank.VerifyRequester(
this);
668
669 m_IDX = requester_IDX;
673 }
674
677 {
679 {
680 Debug.
Log(
"" +
this +
" not valid!");
681 return;
682 }
683
685
686
687 if (state)
689 }
690
692 {
695 }
696
698 {
700 return;
701
704 }
705
707 {
709 }
710
713 {
715 }
716
719 {
721 }
722
725 {
727 }
728
729
730
732 {
734 return;
735
737 data.SetPriorityLayer(priority_layer);
738 data.SetInteractionMask(operator);
739
740 data.m_BoolTarget = val;
741 data.m_BoolLast = data.m_BoolCurrent;
742
743 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
744 {
745 data.SetSettingDefaultValues(false);
746 data.SetDataActive(true);
747
749 }
750
751 }
752
754 {
755
757 return;
758
760 data.m_BoolLast = data.m_BoolCurrent;
761 if (!data.IsSettingDefaultValues())
762 {
763 data.SetSettingDefaultValues(true);
764
766 }
767
768 }
769
771 {
773 return;
774
775 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
776 data.SetPriorityLayer(priority_layer);
777 data.SetInteractionMask(operator);
778
779 data.m_IntTarget = val;
780 data.m_IntLast = data.m_IntCurrent;
781 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
782 {
783 data.SetSettingDefaultValues(false);
784 data.SetDataActive(true);
785
787 }
788
789 }
790
792 {
793
795 return;
796
797 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
798 data.m_IntLast = data.m_IntCurrent;
799 if (!data.IsSettingDefaultValues())
800 {
801 data.SetSettingDefaultValues(true);
802
804 }
805
806 }
807
808 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
809 {
811 return;
812
814 data.SetPriorityLayer(priority_layer);
815 data.SetInteractionMask(operator);
816
817 data.m_FloatFormerTarget = data.m_FloatTarget;
818 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
819 data.m_FloatLast = data.m_FloatCurrent;
820 data.m_FloatStart = data.m_FloatCurrent;
821 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
822 {
823 data.SetSettingDefaultValues(false);
824 data.SetDataActive(true);
825
827 }
828
829 }
830
832 {
833
835 return;
836
838 data.m_FloatFormerTarget = data.m_FloatTarget;
839 data.m_FloatLast = data.m_FloatCurrent;
840 data.m_FloatStart = data.m_FloatCurrent;
841 if (!data.IsSettingDefaultValues())
842 {
843 data.SetSettingDefaultValues(true);
844
846 }
847
848 }
849
851 {
853 return;
854
855 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
856 data.SetPriorityLayer(priority_layer);
857 data.SetInteractionMask(operator);
858 data.m_ColorFormerTarget = data.m_ColorTarget;
859
860 data.m_ColorTarget.Copy(val);
861
862 data.m_ColorLast = data.m_ColorCurrent;
863 data.m_ColorStart = data.m_ColorCurrent;
864
865 {
866 data.SetSettingDefaultValues(false);
867 data.SetDataActive(true);
868
870 }
871
872 }
873
875 {
876
878 return;
879
880 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
881 data.m_ColorFormerTarget = data.m_ColorTarget;
882 data.m_ColorLast = data.m_ColorCurrent;
883 data.m_ColorStart = data.m_ColorCurrent;
884 if (!data.IsSettingDefaultValues())
885 {
886 data.SetSettingDefaultValues(true);
887
889 }
890
891 }
892
893
894
895
896
897
898
899
900
901
902
903
904
907 {
909
911 }
912
915 {
918 {
920 {
922 }
923 else
924 {
927 }
928 }
929 else
930 {
933 temp_map.Set(param_idx,data);
935 }
936
937 if (!data)
938 {
939 Error(
"GetRequestData | no data found in the structure");
940 }
941
943
944 return data;
945 }
946
948 {
950 switch (type)
951 {
952 case PPEConstants.VAR_TYPE_BOOL:
954 break;
955
956 case PPEConstants.VAR_TYPE_INT:
957 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
958 break;
959
960 case PPEConstants.VAR_TYPE_FLOAT:
962 break;
963
964 case PPEConstants.VAR_TYPE_COLOR:
965 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
966 break;
967 }
968 return data;
969 }
970
971
973 {
975 }
976
978 {
980 }
981
983 {
985 }
986
987
988
990 {
991
992
994 {
996 {
998 {
1000 }
1001 }
1003 }
1005 }
1006
1008 {
1010 }
1011
1014 {
1015
1018 }
1019
1021 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
1022 {
1023 float ret = value;
1024 if (!relative)
1025 {
1026 switch (var_type)
1027 {
1028 case PPEConstants.VAR_TYPE_FLOAT:
1032 break;
1033 }
1034 }
1035
1036
1037 return ret;
1038 }
1039
1042 {
1043
1045
1047 {
1049 {
1051
1053 continue;
1054
1056 {
1057 case PPEConstants.VAR_TYPE_BOOL:
1059 break;
1060
1061 case PPEConstants.VAR_TYPE_INT:
1063 break;
1064
1065 case PPEConstants.VAR_TYPE_FLOAT:
1067 break;
1068
1069 case PPEConstants.VAR_TYPE_COLOR:
1071 break;
1072 }
1073 }
1074 }
1075 }
1076
1078 {
1079
1080 }
1081}
1082
1084
1086
1088{
1090 {
1092 }
1093}
1094
1096{
1098 {
1100 }
1101}
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.