473{
477
478 protected bool m_Valid =
false;
479
481
483 {
484 m_Valid = PPERequesterBank.VerifyRequester(
this);
485
486 m_IDX = requester_IDX;
490 }
491
494 {
496 {
497 Debug.
Log(
"" +
this +
" not valid!");
498 return;
499 }
500
502
503
504 if (state)
506 }
507
509 {
512 }
513
515 {
517 return;
518
521 }
522
524 {
526 }
527
530 {
532 }
533
536 {
538 }
539
542 {
544 }
545
546
547
549 {
551 return;
552
554 data.SetPriorityLayer(priority_layer);
555 data.SetInteractionMask(operator);
556
557 data.m_BoolTarget = val;
558 data.m_BoolLast = data.m_BoolCurrent;
559
560 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
561 {
562 data.SetSettingDefaultValues(false);
563 data.SetDataActive(true);
564
566 }
567
568 }
569
571 {
572
574 return;
575
577 data.m_BoolLast = data.m_BoolCurrent;
578 if (!data.IsSettingDefaultValues())
579 {
580 data.SetSettingDefaultValues(true);
581
583 }
584
585 }
586
588 {
590 return;
591
592 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
593 data.SetPriorityLayer(priority_layer);
594 data.SetInteractionMask(operator);
595
596 data.m_IntTarget = val;
597 data.m_IntLast = data.m_IntCurrent;
598 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
599 {
600 data.SetSettingDefaultValues(false);
601 data.SetDataActive(true);
602
604 }
605
606 }
607
609 {
610
612 return;
613
614 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
615 data.m_IntLast = data.m_IntCurrent;
616 if (!data.IsSettingDefaultValues())
617 {
618 data.SetSettingDefaultValues(true);
619
621 }
622
623 }
624
625 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
626 {
628 return;
629
631 data.SetPriorityLayer(priority_layer);
632 data.SetInteractionMask(operator);
633
634 data.m_FloatFormerTarget = data.m_FloatTarget;
635 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
636 data.m_FloatLast = data.m_FloatCurrent;
637 data.m_FloatStart = data.m_FloatCurrent;
638 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
639 {
640 data.SetSettingDefaultValues(false);
641 data.SetDataActive(true);
642
644 }
645
646 }
647
649 {
650
652 return;
653
655 data.m_FloatFormerTarget = data.m_FloatTarget;
656 data.m_FloatLast = data.m_FloatCurrent;
657 data.m_FloatStart = data.m_FloatCurrent;
658 if (!data.IsSettingDefaultValues())
659 {
660 data.SetSettingDefaultValues(true);
661
663 }
664
665 }
666
668 {
670 return;
671
672 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
673 data.SetPriorityLayer(priority_layer);
674 data.SetInteractionMask(operator);
675 data.m_ColorFormerTarget = data.m_ColorTarget;
676
677 data.m_ColorTarget.Copy(val);
678
679 data.m_ColorLast = data.m_ColorCurrent;
680 data.m_ColorStart = data.m_ColorCurrent;
681
682 {
683 data.SetSettingDefaultValues(false);
684 data.SetDataActive(true);
685
687 }
688
689 }
690
692 {
693
695 return;
696
697 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
698 data.m_ColorFormerTarget = data.m_ColorTarget;
699 data.m_ColorLast = data.m_ColorCurrent;
700 data.m_ColorStart = data.m_ColorCurrent;
701 if (!data.IsSettingDefaultValues())
702 {
703 data.SetSettingDefaultValues(true);
704
706 }
707
708 }
709
710
711
712
713
714
715
716
717
718
719
720
721
724 {
726
728 }
729
732 {
735 {
737 {
739 }
740 else
741 {
744 }
745 }
746 else
747 {
750 temp_map.Set(param_idx,data);
752 }
753
754 if (!data)
755 {
756 Error(
"GetRequestData | no data found in the structure");
757 }
758
760
761 return data;
762 }
763
765 {
767 switch (type)
768 {
769 case PPEConstants.VAR_TYPE_BOOL:
771 break;
772
773 case PPEConstants.VAR_TYPE_INT:
774 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
775 break;
776
777 case PPEConstants.VAR_TYPE_FLOAT:
779 break;
780
781 case PPEConstants.VAR_TYPE_COLOR:
782 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
783 break;
784 }
785 return data;
786 }
787
788
790 {
792 }
793
795 {
797 }
798
800 {
802 }
803
804
805
807 {
808
809
811 {
813 {
815 {
817 }
818 }
820 }
822 }
823
825 {
827 }
828
831 {
832
835 }
836
838 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
839 {
840 float ret = value;
841 if (!relative)
842 {
843 switch (var_type)
844 {
845 case PPEConstants.VAR_TYPE_FLOAT:
849 break;
850 }
851 }
852
853
854 return ret;
855 }
856
859 {
860
862
864 {
866 {
868
870 continue;
871
873 {
874 case PPEConstants.VAR_TYPE_BOOL:
876 break;
877
878 case PPEConstants.VAR_TYPE_INT:
880 break;
881
882 case PPEConstants.VAR_TYPE_FLOAT:
884 break;
885
886 case PPEConstants.VAR_TYPE_COLOR:
888 break;
889 }
890 }
891 }
892 }
893
895 {
896
897 }
898}
899
901
903
905{
907 {
909 }
910}
911
913{
915 {
917 }
918}
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.