613{
617
618 protected bool m_Valid =
false;
619
621
623 {
624 m_Valid = PPERequesterBank.VerifyRequester(
this);
625
626 m_IDX = requester_IDX;
630 }
631
634 {
636 {
637 Debug.
Log(
"" +
this +
" not valid!");
638 return;
639 }
640
642
643
644 if (state)
646 }
647
649 {
652 }
653
655 {
657 return;
658
661 }
662
664 {
666 }
667
670 {
672 }
673
676 {
678 }
679
682 {
684 }
685
686
687
689 {
691 return;
692
694 data.SetPriorityLayer(priority_layer);
695 data.SetInteractionMask(operator);
696
697 data.m_BoolTarget = val;
698 data.m_BoolLast = data.m_BoolCurrent;
699
700 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
701 {
702 data.SetSettingDefaultValues(false);
703 data.SetDataActive(true);
704
706 }
707
708 }
709
711 {
712
714 return;
715
717 data.m_BoolLast = data.m_BoolCurrent;
718 if (!data.IsSettingDefaultValues())
719 {
720 data.SetSettingDefaultValues(true);
721
723 }
724
725 }
726
728 {
730 return;
731
732 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
733 data.SetPriorityLayer(priority_layer);
734 data.SetInteractionMask(operator);
735
736 data.m_IntTarget = val;
737 data.m_IntLast = data.m_IntCurrent;
738 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
739 {
740 data.SetSettingDefaultValues(false);
741 data.SetDataActive(true);
742
744 }
745
746 }
747
749 {
750
752 return;
753
754 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
755 data.m_IntLast = data.m_IntCurrent;
756 if (!data.IsSettingDefaultValues())
757 {
758 data.SetSettingDefaultValues(true);
759
761 }
762
763 }
764
765 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
766 {
768 return;
769
771 data.SetPriorityLayer(priority_layer);
772 data.SetInteractionMask(operator);
773
774 data.m_FloatFormerTarget = data.m_FloatTarget;
775 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
776 data.m_FloatLast = data.m_FloatCurrent;
777 data.m_FloatStart = data.m_FloatCurrent;
778 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
779 {
780 data.SetSettingDefaultValues(false);
781 data.SetDataActive(true);
782
784 }
785
786 }
787
789 {
790
792 return;
793
795 data.m_FloatFormerTarget = data.m_FloatTarget;
796 data.m_FloatLast = data.m_FloatCurrent;
797 data.m_FloatStart = data.m_FloatCurrent;
798 if (!data.IsSettingDefaultValues())
799 {
800 data.SetSettingDefaultValues(true);
801
803 }
804
805 }
806
808 {
810 return;
811
812 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
813 data.SetPriorityLayer(priority_layer);
814 data.SetInteractionMask(operator);
815 data.m_ColorFormerTarget = data.m_ColorTarget;
816
817 data.m_ColorTarget.Copy(val);
818
819 data.m_ColorLast = data.m_ColorCurrent;
820 data.m_ColorStart = data.m_ColorCurrent;
821
822 {
823 data.SetSettingDefaultValues(false);
824 data.SetDataActive(true);
825
827 }
828
829 }
830
832 {
833
835 return;
836
837 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
838 data.m_ColorFormerTarget = data.m_ColorTarget;
839 data.m_ColorLast = data.m_ColorCurrent;
840 data.m_ColorStart = data.m_ColorCurrent;
841 if (!data.IsSettingDefaultValues())
842 {
843 data.SetSettingDefaultValues(true);
844
846 }
847
848 }
849
850
851
852
853
854
855
856
857
858
859
860
861
864 {
866
868 }
869
872 {
875 {
877 {
879 }
880 else
881 {
884 }
885 }
886 else
887 {
890 temp_map.Set(param_idx,data);
892 }
893
894 if (!data)
895 {
896 Error(
"GetRequestData | no data found in the structure");
897 }
898
900
901 return data;
902 }
903
905 {
907 switch (type)
908 {
909 case PPEConstants.VAR_TYPE_BOOL:
911 break;
912
913 case PPEConstants.VAR_TYPE_INT:
914 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
915 break;
916
917 case PPEConstants.VAR_TYPE_FLOAT:
919 break;
920
921 case PPEConstants.VAR_TYPE_COLOR:
922 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
923 break;
924 }
925 return data;
926 }
927
928
930 {
932 }
933
935 {
937 }
938
940 {
942 }
943
944
945
947 {
948
949
951 {
953 {
955 {
957 }
958 }
960 }
962 }
963
965 {
967 }
968
971 {
972
975 }
976
978 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
979 {
980 float ret = value;
981 if (!relative)
982 {
983 switch (var_type)
984 {
985 case PPEConstants.VAR_TYPE_FLOAT:
989 break;
990 }
991 }
992
993
994 return ret;
995 }
996
999 {
1000
1002
1004 {
1006 {
1008
1010 continue;
1011
1013 {
1014 case PPEConstants.VAR_TYPE_BOOL:
1016 break;
1017
1018 case PPEConstants.VAR_TYPE_INT:
1020 break;
1021
1022 case PPEConstants.VAR_TYPE_FLOAT:
1024 break;
1025
1026 case PPEConstants.VAR_TYPE_COLOR:
1028 break;
1029 }
1030 }
1031 }
1032 }
1033
1035 {
1036
1037 }
1038}
1039
1041
1043
1045{
1047 {
1049 }
1050}
1051
1053{
1055 {
1057 }
1058}
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.