590{
594
595 protected bool m_Valid =
false;
596
598
600 {
601 m_Valid = PPERequesterBank.VerifyRequester(
this);
602
603 m_IDX = requester_IDX;
607 }
608
611 {
613 {
614 Debug.
Log(
"" +
this +
" not valid!");
615 return;
616 }
617
619
620
621 if (state)
623 }
624
626 {
629 }
630
632 {
634 return;
635
638 }
639
641 {
643 }
644
647 {
649 }
650
653 {
655 }
656
659 {
661 }
662
663
664
666 {
668 return;
669
671 data.SetPriorityLayer(priority_layer);
672 data.SetInteractionMask(operator);
673
674 data.m_BoolTarget = val;
675 data.m_BoolLast = data.m_BoolCurrent;
676
677 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
678 {
679 data.SetSettingDefaultValues(false);
680 data.SetDataActive(true);
681
683 }
684
685 }
686
688 {
689
691 return;
692
694 data.m_BoolLast = data.m_BoolCurrent;
695 if (!data.IsSettingDefaultValues())
696 {
697 data.SetSettingDefaultValues(true);
698
700 }
701
702 }
703
705 {
707 return;
708
709 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
710 data.SetPriorityLayer(priority_layer);
711 data.SetInteractionMask(operator);
712
713 data.m_IntTarget = val;
714 data.m_IntLast = data.m_IntCurrent;
715 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
716 {
717 data.SetSettingDefaultValues(false);
718 data.SetDataActive(true);
719
721 }
722
723 }
724
726 {
727
729 return;
730
731 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
732 data.m_IntLast = data.m_IntCurrent;
733 if (!data.IsSettingDefaultValues())
734 {
735 data.SetSettingDefaultValues(true);
736
738 }
739
740 }
741
742 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
743 {
745 return;
746
748 data.SetPriorityLayer(priority_layer);
749 data.SetInteractionMask(operator);
750
751 data.m_FloatFormerTarget = data.m_FloatTarget;
752 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
753 data.m_FloatLast = data.m_FloatCurrent;
754 data.m_FloatStart = data.m_FloatCurrent;
755 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
756 {
757 data.SetSettingDefaultValues(false);
758 data.SetDataActive(true);
759
761 }
762
763 }
764
766 {
767
769 return;
770
772 data.m_FloatFormerTarget = data.m_FloatTarget;
773 data.m_FloatLast = data.m_FloatCurrent;
774 data.m_FloatStart = data.m_FloatCurrent;
775 if (!data.IsSettingDefaultValues())
776 {
777 data.SetSettingDefaultValues(true);
778
780 }
781
782 }
783
785 {
787 return;
788
789 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
790 data.SetPriorityLayer(priority_layer);
791 data.SetInteractionMask(operator);
792 data.m_ColorFormerTarget = data.m_ColorTarget;
793
794 data.m_ColorTarget.Copy(val);
795
796 data.m_ColorLast = data.m_ColorCurrent;
797 data.m_ColorStart = data.m_ColorCurrent;
798
799 {
800 data.SetSettingDefaultValues(false);
801 data.SetDataActive(true);
802
804 }
805
806 }
807
809 {
810
812 return;
813
814 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
815 data.m_ColorFormerTarget = data.m_ColorTarget;
816 data.m_ColorLast = data.m_ColorCurrent;
817 data.m_ColorStart = data.m_ColorCurrent;
818 if (!data.IsSettingDefaultValues())
819 {
820 data.SetSettingDefaultValues(true);
821
823 }
824
825 }
826
827
828
829
830
831
832
833
834
835
836
837
838
841 {
843
845 }
846
849 {
852 {
854 {
856 }
857 else
858 {
861 }
862 }
863 else
864 {
867 temp_map.Set(param_idx,data);
869 }
870
871 if (!data)
872 {
873 Error(
"GetRequestData | no data found in the structure");
874 }
875
877
878 return data;
879 }
880
882 {
884 switch (type)
885 {
886 case PPEConstants.VAR_TYPE_BOOL:
888 break;
889
890 case PPEConstants.VAR_TYPE_INT:
891 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
892 break;
893
894 case PPEConstants.VAR_TYPE_FLOAT:
896 break;
897
898 case PPEConstants.VAR_TYPE_COLOR:
899 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
900 break;
901 }
902 return data;
903 }
904
905
907 {
909 }
910
912 {
914 }
915
917 {
919 }
920
921
922
924 {
925
926
928 {
930 {
932 {
934 }
935 }
937 }
939 }
940
942 {
944 }
945
948 {
949
952 }
953
955 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
956 {
957 float ret = value;
958 if (!relative)
959 {
960 switch (var_type)
961 {
962 case PPEConstants.VAR_TYPE_FLOAT:
966 break;
967 }
968 }
969
970
971 return ret;
972 }
973
976 {
977
979
981 {
983 {
985
987 continue;
988
990 {
991 case PPEConstants.VAR_TYPE_BOOL:
993 break;
994
995 case PPEConstants.VAR_TYPE_INT:
997 break;
998
999 case PPEConstants.VAR_TYPE_FLOAT:
1001 break;
1002
1003 case PPEConstants.VAR_TYPE_COLOR:
1005 break;
1006 }
1007 }
1008 }
1009 }
1010
1012 {
1013
1014 }
1015}
1016
1018
1020
1022{
1024 {
1026 }
1027}
1028
1030{
1032 {
1034 }
1035}
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.