488{
492
493 protected bool m_Valid =
false;
494
496
498 {
499 m_Valid = PPERequesterBank.VerifyRequester(
this);
500
501 m_IDX = requester_IDX;
505 }
506
509 {
511 {
512 Debug.
Log(
"" +
this +
" not valid!");
513 return;
514 }
515
517
518
519 if (state)
521 }
522
524 {
527 }
528
530 {
532 return;
533
536 }
537
539 {
541 }
542
545 {
547 }
548
551 {
553 }
554
557 {
559 }
560
561
562
564 {
566 return;
567
569 data.SetPriorityLayer(priority_layer);
570 data.SetInteractionMask(operator);
571
572 data.m_BoolTarget = val;
573 data.m_BoolLast = data.m_BoolCurrent;
574
575 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
576 {
577 data.SetSettingDefaultValues(false);
578 data.SetDataActive(true);
579
581 }
582
583 }
584
586 {
587
589 return;
590
592 data.m_BoolLast = data.m_BoolCurrent;
593 if (!data.IsSettingDefaultValues())
594 {
595 data.SetSettingDefaultValues(true);
596
598 }
599
600 }
601
603 {
605 return;
606
607 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
608 data.SetPriorityLayer(priority_layer);
609 data.SetInteractionMask(operator);
610
611 data.m_IntTarget = val;
612 data.m_IntLast = data.m_IntCurrent;
613 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
614 {
615 data.SetSettingDefaultValues(false);
616 data.SetDataActive(true);
617
619 }
620
621 }
622
624 {
625
627 return;
628
629 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
630 data.m_IntLast = data.m_IntCurrent;
631 if (!data.IsSettingDefaultValues())
632 {
633 data.SetSettingDefaultValues(true);
634
636 }
637
638 }
639
640 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
641 {
643 return;
644
646 data.SetPriorityLayer(priority_layer);
647 data.SetInteractionMask(operator);
648
649 data.m_FloatFormerTarget = data.m_FloatTarget;
650 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
651 data.m_FloatLast = data.m_FloatCurrent;
652 data.m_FloatStart = data.m_FloatCurrent;
653 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
654 {
655 data.SetSettingDefaultValues(false);
656 data.SetDataActive(true);
657
659 }
660
661 }
662
664 {
665
667 return;
668
670 data.m_FloatFormerTarget = data.m_FloatTarget;
671 data.m_FloatLast = data.m_FloatCurrent;
672 data.m_FloatStart = data.m_FloatCurrent;
673 if (!data.IsSettingDefaultValues())
674 {
675 data.SetSettingDefaultValues(true);
676
678 }
679
680 }
681
683 {
685 return;
686
687 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
688 data.SetPriorityLayer(priority_layer);
689 data.SetInteractionMask(operator);
690 data.m_ColorFormerTarget = data.m_ColorTarget;
691
692 data.m_ColorTarget.Copy(val);
693
694 data.m_ColorLast = data.m_ColorCurrent;
695 data.m_ColorStart = data.m_ColorCurrent;
696
697 {
698 data.SetSettingDefaultValues(false);
699 data.SetDataActive(true);
700
702 }
703
704 }
705
707 {
708
710 return;
711
712 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
713 data.m_ColorFormerTarget = data.m_ColorTarget;
714 data.m_ColorLast = data.m_ColorCurrent;
715 data.m_ColorStart = data.m_ColorCurrent;
716 if (!data.IsSettingDefaultValues())
717 {
718 data.SetSettingDefaultValues(true);
719
721 }
722
723 }
724
725
726
727
728
729
730
731
732
733
734
735
736
739 {
741
743 }
744
747 {
750 {
752 {
754 }
755 else
756 {
759 }
760 }
761 else
762 {
765 temp_map.Set(param_idx,data);
767 }
768
769 if (!data)
770 {
771 Error(
"GetRequestData | no data found in the structure");
772 }
773
775
776 return data;
777 }
778
780 {
782 switch (type)
783 {
784 case PPEConstants.VAR_TYPE_BOOL:
786 break;
787
788 case PPEConstants.VAR_TYPE_INT:
789 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
790 break;
791
792 case PPEConstants.VAR_TYPE_FLOAT:
794 break;
795
796 case PPEConstants.VAR_TYPE_COLOR:
797 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
798 break;
799 }
800 return data;
801 }
802
803
805 {
807 }
808
810 {
812 }
813
815 {
817 }
818
819
820
822 {
823
824
826 {
828 {
830 {
832 }
833 }
835 }
837 }
838
840 {
842 }
843
846 {
847
850 }
851
853 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
854 {
855 float ret = value;
856 if (!relative)
857 {
858 switch (var_type)
859 {
860 case PPEConstants.VAR_TYPE_FLOAT:
864 break;
865 }
866 }
867
868
869 return ret;
870 }
871
874 {
875
877
879 {
881 {
883
885 continue;
886
888 {
889 case PPEConstants.VAR_TYPE_BOOL:
891 break;
892
893 case PPEConstants.VAR_TYPE_INT:
895 break;
896
897 case PPEConstants.VAR_TYPE_FLOAT:
899 break;
900
901 case PPEConstants.VAR_TYPE_COLOR:
903 break;
904 }
905 }
906 }
907 }
908
910 {
911
912 }
913}
914
916
918
920{
922 {
924 }
925}
926
928{
930 {
932 }
933}
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.