535{
539
540 protected bool m_Valid =
false;
541
543
545 {
546 m_Valid = PPERequesterBank.VerifyRequester(
this);
547
548 m_IDX = requester_IDX;
552 }
553
556 {
558 {
559 Debug.
Log(
"" +
this +
" not valid!");
560 return;
561 }
562
564
565
566 if (state)
568 }
569
571 {
574 }
575
577 {
579 return;
580
583 }
584
586 {
588 }
589
592 {
594 }
595
598 {
600 }
601
604 {
606 }
607
608
609
611 {
613 return;
614
616 data.SetPriorityLayer(priority_layer);
617 data.SetInteractionMask(operator);
618
619 data.m_BoolTarget = val;
620 data.m_BoolLast = data.m_BoolCurrent;
621
622 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
623 {
624 data.SetSettingDefaultValues(false);
625 data.SetDataActive(true);
626
628 }
629
630 }
631
633 {
634
636 return;
637
639 data.m_BoolLast = data.m_BoolCurrent;
640 if (!data.IsSettingDefaultValues())
641 {
642 data.SetSettingDefaultValues(true);
643
645 }
646
647 }
648
650 {
652 return;
653
654 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
655 data.SetPriorityLayer(priority_layer);
656 data.SetInteractionMask(operator);
657
658 data.m_IntTarget = val;
659 data.m_IntLast = data.m_IntCurrent;
660 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
661 {
662 data.SetSettingDefaultValues(false);
663 data.SetDataActive(true);
664
666 }
667
668 }
669
671 {
672
674 return;
675
676 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
677 data.m_IntLast = data.m_IntCurrent;
678 if (!data.IsSettingDefaultValues())
679 {
680 data.SetSettingDefaultValues(true);
681
683 }
684
685 }
686
687 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
688 {
690 return;
691
693 data.SetPriorityLayer(priority_layer);
694 data.SetInteractionMask(operator);
695
696 data.m_FloatFormerTarget = data.m_FloatTarget;
697 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
698 data.m_FloatLast = data.m_FloatCurrent;
699 data.m_FloatStart = data.m_FloatCurrent;
700 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
701 {
702 data.SetSettingDefaultValues(false);
703 data.SetDataActive(true);
704
706 }
707
708 }
709
711 {
712
714 return;
715
717 data.m_FloatFormerTarget = data.m_FloatTarget;
718 data.m_FloatLast = data.m_FloatCurrent;
719 data.m_FloatStart = data.m_FloatCurrent;
720 if (!data.IsSettingDefaultValues())
721 {
722 data.SetSettingDefaultValues(true);
723
725 }
726
727 }
728
730 {
732 return;
733
734 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
735 data.SetPriorityLayer(priority_layer);
736 data.SetInteractionMask(operator);
737 data.m_ColorFormerTarget = data.m_ColorTarget;
738
739 data.m_ColorTarget.Copy(val);
740
741 data.m_ColorLast = data.m_ColorCurrent;
742 data.m_ColorStart = data.m_ColorCurrent;
743
744 {
745 data.SetSettingDefaultValues(false);
746 data.SetDataActive(true);
747
749 }
750
751 }
752
754 {
755
757 return;
758
759 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
760 data.m_ColorFormerTarget = data.m_ColorTarget;
761 data.m_ColorLast = data.m_ColorCurrent;
762 data.m_ColorStart = data.m_ColorCurrent;
763 if (!data.IsSettingDefaultValues())
764 {
765 data.SetSettingDefaultValues(true);
766
768 }
769
770 }
771
772
773
774
775
776
777
778
779
780
781
782
783
786 {
788
790 }
791
794 {
797 {
799 {
801 }
802 else
803 {
806 }
807 }
808 else
809 {
812 temp_map.Set(param_idx,data);
814 }
815
816 if (!data)
817 {
818 Error(
"GetRequestData | no data found in the structure");
819 }
820
822
823 return data;
824 }
825
827 {
829 switch (type)
830 {
831 case PPEConstants.VAR_TYPE_BOOL:
833 break;
834
835 case PPEConstants.VAR_TYPE_INT:
836 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
837 break;
838
839 case PPEConstants.VAR_TYPE_FLOAT:
841 break;
842
843 case PPEConstants.VAR_TYPE_COLOR:
844 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
845 break;
846 }
847 return data;
848 }
849
850
852 {
854 }
855
857 {
859 }
860
862 {
864 }
865
866
867
869 {
870
871
873 {
875 {
877 {
879 }
880 }
882 }
884 }
885
887 {
889 }
890
893 {
894
897 }
898
900 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
901 {
902 float ret = value;
903 if (!relative)
904 {
905 switch (var_type)
906 {
907 case PPEConstants.VAR_TYPE_FLOAT:
911 break;
912 }
913 }
914
915
916 return ret;
917 }
918
921 {
922
924
926 {
928 {
930
932 continue;
933
935 {
936 case PPEConstants.VAR_TYPE_BOOL:
938 break;
939
940 case PPEConstants.VAR_TYPE_INT:
942 break;
943
944 case PPEConstants.VAR_TYPE_FLOAT:
946 break;
947
948 case PPEConstants.VAR_TYPE_COLOR:
950 break;
951 }
952 }
953 }
954 }
955
957 {
958
959 }
960}
961
963
965
967{
969 {
971 }
972}
973
975{
977 {
979 }
980}
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.