573{
577
578 protected bool m_Valid =
false;
579
581
583 {
584 m_Valid = PPERequesterBank.VerifyRequester(
this);
585
586 m_IDX = requester_IDX;
590 }
591
594 {
596 {
597 Debug.
Log(
"" +
this +
" not valid!");
598 return;
599 }
600
602
603
604 if (state)
606 }
607
609 {
612 }
613
615 {
617 return;
618
621 }
622
624 {
626 }
627
630 {
632 }
633
636 {
638 }
639
642 {
644 }
645
646
647
649 {
651 return;
652
654 data.SetPriorityLayer(priority_layer);
655 data.SetInteractionMask(operator);
656
657 data.m_BoolTarget = val;
658 data.m_BoolLast = data.m_BoolCurrent;
659
660 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
661 {
662 data.SetSettingDefaultValues(false);
663 data.SetDataActive(true);
664
666 }
667
668 }
669
671 {
672
674 return;
675
677 data.m_BoolLast = data.m_BoolCurrent;
678 if (!data.IsSettingDefaultValues())
679 {
680 data.SetSettingDefaultValues(true);
681
683 }
684
685 }
686
688 {
690 return;
691
692 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
693 data.SetPriorityLayer(priority_layer);
694 data.SetInteractionMask(operator);
695
696 data.m_IntTarget = val;
697 data.m_IntLast = data.m_IntCurrent;
698 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
699 {
700 data.SetSettingDefaultValues(false);
701 data.SetDataActive(true);
702
704 }
705
706 }
707
709 {
710
712 return;
713
714 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
715 data.m_IntLast = data.m_IntCurrent;
716 if (!data.IsSettingDefaultValues())
717 {
718 data.SetSettingDefaultValues(true);
719
721 }
722
723 }
724
725 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
726 {
728 return;
729
731 data.SetPriorityLayer(priority_layer);
732 data.SetInteractionMask(operator);
733
734 data.m_FloatFormerTarget = data.m_FloatTarget;
735 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
736 data.m_FloatLast = data.m_FloatCurrent;
737 data.m_FloatStart = data.m_FloatCurrent;
738 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
739 {
740 data.SetSettingDefaultValues(false);
741 data.SetDataActive(true);
742
744 }
745
746 }
747
749 {
750
752 return;
753
755 data.m_FloatFormerTarget = data.m_FloatTarget;
756 data.m_FloatLast = data.m_FloatCurrent;
757 data.m_FloatStart = data.m_FloatCurrent;
758 if (!data.IsSettingDefaultValues())
759 {
760 data.SetSettingDefaultValues(true);
761
763 }
764
765 }
766
768 {
770 return;
771
772 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
773 data.SetPriorityLayer(priority_layer);
774 data.SetInteractionMask(operator);
775 data.m_ColorFormerTarget = data.m_ColorTarget;
776
777 data.m_ColorTarget.Copy(val);
778
779 data.m_ColorLast = data.m_ColorCurrent;
780 data.m_ColorStart = data.m_ColorCurrent;
781
782 {
783 data.SetSettingDefaultValues(false);
784 data.SetDataActive(true);
785
787 }
788
789 }
790
792 {
793
795 return;
796
797 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
798 data.m_ColorFormerTarget = data.m_ColorTarget;
799 data.m_ColorLast = data.m_ColorCurrent;
800 data.m_ColorStart = data.m_ColorCurrent;
801 if (!data.IsSettingDefaultValues())
802 {
803 data.SetSettingDefaultValues(true);
804
806 }
807
808 }
809
810
811
812
813
814
815
816
817
818
819
820
821
824 {
826
828 }
829
832 {
835 {
837 {
839 }
840 else
841 {
844 }
845 }
846 else
847 {
850 temp_map.Set(param_idx,data);
852 }
853
854 if (!data)
855 {
856 Error(
"GetRequestData | no data found in the structure");
857 }
858
860
861 return data;
862 }
863
865 {
867 switch (type)
868 {
869 case PPEConstants.VAR_TYPE_BOOL:
871 break;
872
873 case PPEConstants.VAR_TYPE_INT:
874 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
875 break;
876
877 case PPEConstants.VAR_TYPE_FLOAT:
879 break;
880
881 case PPEConstants.VAR_TYPE_COLOR:
882 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
883 break;
884 }
885 return data;
886 }
887
888
890 {
892 }
893
895 {
897 }
898
900 {
902 }
903
904
905
907 {
908
909
911 {
913 {
915 {
917 }
918 }
920 }
922 }
923
925 {
927 }
928
931 {
932
935 }
936
938 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
939 {
940 float ret = value;
941 if (!relative)
942 {
943 switch (var_type)
944 {
945 case PPEConstants.VAR_TYPE_FLOAT:
949 break;
950 }
951 }
952
953
954 return ret;
955 }
956
959 {
960
962
964 {
966 {
968
970 continue;
971
973 {
974 case PPEConstants.VAR_TYPE_BOOL:
976 break;
977
978 case PPEConstants.VAR_TYPE_INT:
980 break;
981
982 case PPEConstants.VAR_TYPE_FLOAT:
984 break;
985
986 case PPEConstants.VAR_TYPE_COLOR:
988 break;
989 }
990 }
991 }
992 }
993
995 {
996
997 }
998}
999
1001
1003
1005{
1007 {
1009 }
1010}
1011
1013{
1015 {
1017 }
1018}
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.