494{
498
499 protected bool m_Valid =
false;
500
502
504 {
505 m_Valid = PPERequesterBank.VerifyRequester(
this);
506
507 m_IDX = requester_IDX;
511 }
512
515 {
517 {
518 Debug.
Log(
"" +
this +
" not valid!");
519 return;
520 }
521
523
524
525 if (state)
527 }
528
530 {
533 }
534
536 {
538 return;
539
542 }
543
545 {
547 }
548
551 {
553 }
554
557 {
559 }
560
563 {
565 }
566
567
568
570 {
572 return;
573
575 data.SetPriorityLayer(priority_layer);
576 data.SetInteractionMask(operator);
577
578 data.m_BoolTarget = val;
579 data.m_BoolLast = data.m_BoolCurrent;
580
581 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
582 {
583 data.SetSettingDefaultValues(false);
584 data.SetDataActive(true);
585
587 }
588
589 }
590
592 {
593
595 return;
596
598 data.m_BoolLast = data.m_BoolCurrent;
599 if (!data.IsSettingDefaultValues())
600 {
601 data.SetSettingDefaultValues(true);
602
604 }
605
606 }
607
609 {
611 return;
612
613 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
614 data.SetPriorityLayer(priority_layer);
615 data.SetInteractionMask(operator);
616
617 data.m_IntTarget = val;
618 data.m_IntLast = data.m_IntCurrent;
619 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
620 {
621 data.SetSettingDefaultValues(false);
622 data.SetDataActive(true);
623
625 }
626
627 }
628
630 {
631
633 return;
634
635 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
636 data.m_IntLast = data.m_IntCurrent;
637 if (!data.IsSettingDefaultValues())
638 {
639 data.SetSettingDefaultValues(true);
640
642 }
643
644 }
645
646 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
647 {
649 return;
650
652 data.SetPriorityLayer(priority_layer);
653 data.SetInteractionMask(operator);
654
655 data.m_FloatFormerTarget = data.m_FloatTarget;
656 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
657 data.m_FloatLast = data.m_FloatCurrent;
658 data.m_FloatStart = data.m_FloatCurrent;
659 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
660 {
661 data.SetSettingDefaultValues(false);
662 data.SetDataActive(true);
663
665 }
666
667 }
668
670 {
671
673 return;
674
676 data.m_FloatFormerTarget = data.m_FloatTarget;
677 data.m_FloatLast = data.m_FloatCurrent;
678 data.m_FloatStart = data.m_FloatCurrent;
679 if (!data.IsSettingDefaultValues())
680 {
681 data.SetSettingDefaultValues(true);
682
684 }
685
686 }
687
689 {
691 return;
692
693 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
694 data.SetPriorityLayer(priority_layer);
695 data.SetInteractionMask(operator);
696 data.m_ColorFormerTarget = data.m_ColorTarget;
697
698 data.m_ColorTarget.Copy(val);
699
700 data.m_ColorLast = data.m_ColorCurrent;
701 data.m_ColorStart = data.m_ColorCurrent;
702
703 {
704 data.SetSettingDefaultValues(false);
705 data.SetDataActive(true);
706
708 }
709
710 }
711
713 {
714
716 return;
717
718 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
719 data.m_ColorFormerTarget = data.m_ColorTarget;
720 data.m_ColorLast = data.m_ColorCurrent;
721 data.m_ColorStart = data.m_ColorCurrent;
722 if (!data.IsSettingDefaultValues())
723 {
724 data.SetSettingDefaultValues(true);
725
727 }
728
729 }
730
731
732
733
734
735
736
737
738
739
740
741
742
745 {
747
749 }
750
753 {
756 {
758 {
760 }
761 else
762 {
765 }
766 }
767 else
768 {
771 temp_map.Set(param_idx,data);
773 }
774
775 if (!data)
776 {
777 Error(
"GetRequestData | no data found in the structure");
778 }
779
781
782 return data;
783 }
784
786 {
788 switch (type)
789 {
790 case PPEConstants.VAR_TYPE_BOOL:
792 break;
793
794 case PPEConstants.VAR_TYPE_INT:
795 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
796 break;
797
798 case PPEConstants.VAR_TYPE_FLOAT:
800 break;
801
802 case PPEConstants.VAR_TYPE_COLOR:
803 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
804 break;
805 }
806 return data;
807 }
808
809
811 {
813 }
814
816 {
818 }
819
821 {
823 }
824
825
826
828 {
829
830
832 {
834 {
836 {
838 }
839 }
841 }
843 }
844
846 {
848 }
849
852 {
853
856 }
857
859 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
860 {
861 float ret = value;
862 if (!relative)
863 {
864 switch (var_type)
865 {
866 case PPEConstants.VAR_TYPE_FLOAT:
870 break;
871 }
872 }
873
874
875 return ret;
876 }
877
880 {
881
883
885 {
887 {
889
891 continue;
892
894 {
895 case PPEConstants.VAR_TYPE_BOOL:
897 break;
898
899 case PPEConstants.VAR_TYPE_INT:
901 break;
902
903 case PPEConstants.VAR_TYPE_FLOAT:
905 break;
906
907 case PPEConstants.VAR_TYPE_COLOR:
909 break;
910 }
911 }
912 }
913 }
914
916 {
917
918 }
919}
920
922
924
926{
928 {
930 }
931}
932
934{
936 {
938 }
939}
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.