513{
517
518 protected bool m_Valid =
false;
519
521
523 {
524 m_Valid = PPERequesterBank.VerifyRequester(
this);
525
526 m_IDX = requester_IDX;
530 }
531
534 {
536 {
537 Debug.
Log(
"" +
this +
" not valid!");
538 return;
539 }
540
542
543
544 if (state)
546 }
547
549 {
552 }
553
555 {
557 return;
558
561 }
562
564 {
566 }
567
570 {
572 }
573
576 {
578 }
579
582 {
584 }
585
586
587
589 {
591 return;
592
594 data.SetPriorityLayer(priority_layer);
595 data.SetInteractionMask(operator);
596
597 data.m_BoolTarget = val;
598 data.m_BoolLast = data.m_BoolCurrent;
599
600 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
601 {
602 data.SetSettingDefaultValues(false);
603 data.SetDataActive(true);
604
606 }
607
608 }
609
611 {
612
614 return;
615
617 data.m_BoolLast = data.m_BoolCurrent;
618 if (!data.IsSettingDefaultValues())
619 {
620 data.SetSettingDefaultValues(true);
621
623 }
624
625 }
626
628 {
630 return;
631
632 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
633 data.SetPriorityLayer(priority_layer);
634 data.SetInteractionMask(operator);
635
636 data.m_IntTarget = val;
637 data.m_IntLast = data.m_IntCurrent;
638 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
639 {
640 data.SetSettingDefaultValues(false);
641 data.SetDataActive(true);
642
644 }
645
646 }
647
649 {
650
652 return;
653
654 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
655 data.m_IntLast = data.m_IntCurrent;
656 if (!data.IsSettingDefaultValues())
657 {
658 data.SetSettingDefaultValues(true);
659
661 }
662
663 }
664
665 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
666 {
668 return;
669
671 data.SetPriorityLayer(priority_layer);
672 data.SetInteractionMask(operator);
673
674 data.m_FloatFormerTarget = data.m_FloatTarget;
675 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
676 data.m_FloatLast = data.m_FloatCurrent;
677 data.m_FloatStart = data.m_FloatCurrent;
678 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
679 {
680 data.SetSettingDefaultValues(false);
681 data.SetDataActive(true);
682
684 }
685
686 }
687
689 {
690
692 return;
693
695 data.m_FloatFormerTarget = data.m_FloatTarget;
696 data.m_FloatLast = data.m_FloatCurrent;
697 data.m_FloatStart = data.m_FloatCurrent;
698 if (!data.IsSettingDefaultValues())
699 {
700 data.SetSettingDefaultValues(true);
701
703 }
704
705 }
706
708 {
710 return;
711
712 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
713 data.SetPriorityLayer(priority_layer);
714 data.SetInteractionMask(operator);
715 data.m_ColorFormerTarget = data.m_ColorTarget;
716
717 data.m_ColorTarget.Copy(val);
718
719 data.m_ColorLast = data.m_ColorCurrent;
720 data.m_ColorStart = data.m_ColorCurrent;
721
722 {
723 data.SetSettingDefaultValues(false);
724 data.SetDataActive(true);
725
727 }
728
729 }
730
732 {
733
735 return;
736
737 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
738 data.m_ColorFormerTarget = data.m_ColorTarget;
739 data.m_ColorLast = data.m_ColorCurrent;
740 data.m_ColorStart = data.m_ColorCurrent;
741 if (!data.IsSettingDefaultValues())
742 {
743 data.SetSettingDefaultValues(true);
744
746 }
747
748 }
749
750
751
752
753
754
755
756
757
758
759
760
761
764 {
766
768 }
769
772 {
775 {
777 {
779 }
780 else
781 {
784 }
785 }
786 else
787 {
790 temp_map.Set(param_idx,data);
792 }
793
794 if (!data)
795 {
796 Error(
"GetRequestData | no data found in the structure");
797 }
798
800
801 return data;
802 }
803
805 {
807 switch (type)
808 {
809 case PPEConstants.VAR_TYPE_BOOL:
811 break;
812
813 case PPEConstants.VAR_TYPE_INT:
814 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
815 break;
816
817 case PPEConstants.VAR_TYPE_FLOAT:
819 break;
820
821 case PPEConstants.VAR_TYPE_COLOR:
822 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
823 break;
824 }
825 return data;
826 }
827
828
830 {
832 }
833
835 {
837 }
838
840 {
842 }
843
844
845
847 {
848
849
851 {
853 {
855 {
857 }
858 }
860 }
862 }
863
865 {
867 }
868
871 {
872
875 }
876
878 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
879 {
880 float ret = value;
881 if (!relative)
882 {
883 switch (var_type)
884 {
885 case PPEConstants.VAR_TYPE_FLOAT:
889 break;
890 }
891 }
892
893
894 return ret;
895 }
896
899 {
900
902
904 {
906 {
908
910 continue;
911
913 {
914 case PPEConstants.VAR_TYPE_BOOL:
916 break;
917
918 case PPEConstants.VAR_TYPE_INT:
920 break;
921
922 case PPEConstants.VAR_TYPE_FLOAT:
924 break;
925
926 case PPEConstants.VAR_TYPE_COLOR:
928 break;
929 }
930 }
931 }
932 }
933
935 {
936
937 }
938}
939
941
943
945{
947 {
949 }
950}
951
953{
955 {
957 }
958}
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.