552{
556
557 protected bool m_Valid =
false;
558
560
562 {
563 m_Valid = PPERequesterBank.VerifyRequester(
this);
564
565 m_IDX = requester_IDX;
569 }
570
573 {
575 {
576 Debug.
Log(
"" +
this +
" not valid!");
577 return;
578 }
579
581
582
583 if (state)
585 }
586
588 {
591 }
592
594 {
596 return;
597
600 }
601
603 {
605 }
606
609 {
611 }
612
615 {
617 }
618
621 {
623 }
624
625
626
628 {
630 return;
631
633 data.SetPriorityLayer(priority_layer);
634 data.SetInteractionMask(operator);
635
636 data.m_BoolTarget = val;
637 data.m_BoolLast = data.m_BoolCurrent;
638
639 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
640 {
641 data.SetSettingDefaultValues(false);
642 data.SetDataActive(true);
643
645 }
646
647 }
648
650 {
651
653 return;
654
656 data.m_BoolLast = data.m_BoolCurrent;
657 if (!data.IsSettingDefaultValues())
658 {
659 data.SetSettingDefaultValues(true);
660
662 }
663
664 }
665
667 {
669 return;
670
671 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
672 data.SetPriorityLayer(priority_layer);
673 data.SetInteractionMask(operator);
674
675 data.m_IntTarget = val;
676 data.m_IntLast = data.m_IntCurrent;
677 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
678 {
679 data.SetSettingDefaultValues(false);
680 data.SetDataActive(true);
681
683 }
684
685 }
686
688 {
689
691 return;
692
693 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
694 data.m_IntLast = data.m_IntCurrent;
695 if (!data.IsSettingDefaultValues())
696 {
697 data.SetSettingDefaultValues(true);
698
700 }
701
702 }
703
704 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
705 {
707 return;
708
710 data.SetPriorityLayer(priority_layer);
711 data.SetInteractionMask(operator);
712
713 data.m_FloatFormerTarget = data.m_FloatTarget;
714 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
715 data.m_FloatLast = data.m_FloatCurrent;
716 data.m_FloatStart = data.m_FloatCurrent;
717 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
718 {
719 data.SetSettingDefaultValues(false);
720 data.SetDataActive(true);
721
723 }
724
725 }
726
728 {
729
731 return;
732
734 data.m_FloatFormerTarget = data.m_FloatTarget;
735 data.m_FloatLast = data.m_FloatCurrent;
736 data.m_FloatStart = data.m_FloatCurrent;
737 if (!data.IsSettingDefaultValues())
738 {
739 data.SetSettingDefaultValues(true);
740
742 }
743
744 }
745
747 {
749 return;
750
751 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
752 data.SetPriorityLayer(priority_layer);
753 data.SetInteractionMask(operator);
754 data.m_ColorFormerTarget = data.m_ColorTarget;
755
756 data.m_ColorTarget.Copy(val);
757
758 data.m_ColorLast = data.m_ColorCurrent;
759 data.m_ColorStart = data.m_ColorCurrent;
760
761 {
762 data.SetSettingDefaultValues(false);
763 data.SetDataActive(true);
764
766 }
767
768 }
769
771 {
772
774 return;
775
776 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
777 data.m_ColorFormerTarget = data.m_ColorTarget;
778 data.m_ColorLast = data.m_ColorCurrent;
779 data.m_ColorStart = data.m_ColorCurrent;
780 if (!data.IsSettingDefaultValues())
781 {
782 data.SetSettingDefaultValues(true);
783
785 }
786
787 }
788
789
790
791
792
793
794
795
796
797
798
799
800
803 {
805
807 }
808
811 {
814 {
816 {
818 }
819 else
820 {
823 }
824 }
825 else
826 {
829 temp_map.Set(param_idx,data);
831 }
832
833 if (!data)
834 {
835 Error(
"GetRequestData | no data found in the structure");
836 }
837
839
840 return data;
841 }
842
844 {
846 switch (type)
847 {
848 case PPEConstants.VAR_TYPE_BOOL:
850 break;
851
852 case PPEConstants.VAR_TYPE_INT:
853 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
854 break;
855
856 case PPEConstants.VAR_TYPE_FLOAT:
858 break;
859
860 case PPEConstants.VAR_TYPE_COLOR:
861 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
862 break;
863 }
864 return data;
865 }
866
867
869 {
871 }
872
874 {
876 }
877
879 {
881 }
882
883
884
886 {
887
888
890 {
892 {
894 {
896 }
897 }
899 }
901 }
902
904 {
906 }
907
910 {
911
914 }
915
917 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
918 {
919 float ret = value;
920 if (!relative)
921 {
922 switch (var_type)
923 {
924 case PPEConstants.VAR_TYPE_FLOAT:
928 break;
929 }
930 }
931
932
933 return ret;
934 }
935
938 {
939
941
943 {
945 {
947
949 continue;
950
952 {
953 case PPEConstants.VAR_TYPE_BOOL:
955 break;
956
957 case PPEConstants.VAR_TYPE_INT:
959 break;
960
961 case PPEConstants.VAR_TYPE_FLOAT:
963 break;
964
965 case PPEConstants.VAR_TYPE_COLOR:
967 break;
968 }
969 }
970 }
971 }
972
974 {
975
976 }
977}
978
980
982
984{
986 {
988 }
989}
990
992{
994 {
996 }
997}
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.