632{
636
637 protected bool m_Valid =
false;
638
640
642 {
643 m_Valid = PPERequesterBank.VerifyRequester(
this);
644
645 m_IDX = requester_IDX;
649 }
650
653 {
655 {
656 Debug.
Log(
"" +
this +
" not valid!");
657 return;
658 }
659
661
662
663 if (state)
665 }
666
668 {
671 }
672
674 {
676 return;
677
680 }
681
683 {
685 }
686
689 {
691 }
692
695 {
697 }
698
701 {
703 }
704
705
706
708 {
710 return;
711
713 data.SetPriorityLayer(priority_layer);
714 data.SetInteractionMask(operator);
715
716 data.m_BoolTarget = val;
717 data.m_BoolLast = data.m_BoolCurrent;
718
719 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
720 {
721 data.SetSettingDefaultValues(false);
722 data.SetDataActive(true);
723
725 }
726
727 }
728
730 {
731
733 return;
734
736 data.m_BoolLast = data.m_BoolCurrent;
737 if (!data.IsSettingDefaultValues())
738 {
739 data.SetSettingDefaultValues(true);
740
742 }
743
744 }
745
747 {
749 return;
750
751 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
752 data.SetPriorityLayer(priority_layer);
753 data.SetInteractionMask(operator);
754
755 data.m_IntTarget = val;
756 data.m_IntLast = data.m_IntCurrent;
757 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
758 {
759 data.SetSettingDefaultValues(false);
760 data.SetDataActive(true);
761
763 }
764
765 }
766
768 {
769
771 return;
772
773 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
774 data.m_IntLast = data.m_IntCurrent;
775 if (!data.IsSettingDefaultValues())
776 {
777 data.SetSettingDefaultValues(true);
778
780 }
781
782 }
783
784 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
785 {
787 return;
788
790 data.SetPriorityLayer(priority_layer);
791 data.SetInteractionMask(operator);
792
793 data.m_FloatFormerTarget = data.m_FloatTarget;
794 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
795 data.m_FloatLast = data.m_FloatCurrent;
796 data.m_FloatStart = data.m_FloatCurrent;
797 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
798 {
799 data.SetSettingDefaultValues(false);
800 data.SetDataActive(true);
801
803 }
804
805 }
806
808 {
809
811 return;
812
814 data.m_FloatFormerTarget = data.m_FloatTarget;
815 data.m_FloatLast = data.m_FloatCurrent;
816 data.m_FloatStart = data.m_FloatCurrent;
817 if (!data.IsSettingDefaultValues())
818 {
819 data.SetSettingDefaultValues(true);
820
822 }
823
824 }
825
827 {
829 return;
830
831 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
832 data.SetPriorityLayer(priority_layer);
833 data.SetInteractionMask(operator);
834 data.m_ColorFormerTarget = data.m_ColorTarget;
835
836 data.m_ColorTarget.Copy(val);
837
838 data.m_ColorLast = data.m_ColorCurrent;
839 data.m_ColorStart = data.m_ColorCurrent;
840
841 {
842 data.SetSettingDefaultValues(false);
843 data.SetDataActive(true);
844
846 }
847
848 }
849
851 {
852
854 return;
855
856 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
857 data.m_ColorFormerTarget = data.m_ColorTarget;
858 data.m_ColorLast = data.m_ColorCurrent;
859 data.m_ColorStart = data.m_ColorCurrent;
860 if (!data.IsSettingDefaultValues())
861 {
862 data.SetSettingDefaultValues(true);
863
865 }
866
867 }
868
869
870
871
872
873
874
875
876
877
878
879
880
883 {
885
887 }
888
891 {
894 {
896 {
898 }
899 else
900 {
903 }
904 }
905 else
906 {
909 temp_map.Set(param_idx,data);
911 }
912
913 if (!data)
914 {
915 Error(
"GetRequestData | no data found in the structure");
916 }
917
919
920 return data;
921 }
922
924 {
926 switch (type)
927 {
928 case PPEConstants.VAR_TYPE_BOOL:
930 break;
931
932 case PPEConstants.VAR_TYPE_INT:
933 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
934 break;
935
936 case PPEConstants.VAR_TYPE_FLOAT:
938 break;
939
940 case PPEConstants.VAR_TYPE_COLOR:
941 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
942 break;
943 }
944 return data;
945 }
946
947
949 {
951 }
952
954 {
956 }
957
959 {
961 }
962
963
964
966 {
967
968
970 {
972 {
974 {
976 }
977 }
979 }
981 }
982
984 {
986 }
987
990 {
991
994 }
995
997 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
998 {
999 float ret = value;
1000 if (!relative)
1001 {
1002 switch (var_type)
1003 {
1004 case PPEConstants.VAR_TYPE_FLOAT:
1008 break;
1009 }
1010 }
1011
1012
1013 return ret;
1014 }
1015
1018 {
1019
1021
1023 {
1025 {
1027
1029 continue;
1030
1032 {
1033 case PPEConstants.VAR_TYPE_BOOL:
1035 break;
1036
1037 case PPEConstants.VAR_TYPE_INT:
1039 break;
1040
1041 case PPEConstants.VAR_TYPE_FLOAT:
1043 break;
1044
1045 case PPEConstants.VAR_TYPE_COLOR:
1047 break;
1048 }
1049 }
1050 }
1051 }
1052
1054 {
1055
1056 }
1057}
1058
1060
1062
1064{
1066 {
1068 }
1069}
1070
1072{
1074 {
1076 }
1077}
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.