479{
483
484 protected bool m_Valid =
false;
485
487
489 {
490 m_Valid = PPERequesterBank.VerifyRequester(
this);
491
492 m_IDX = requester_IDX;
496 }
497
500 {
502 {
503 Debug.
Log(
"" +
this +
" not valid!");
504 return;
505 }
506
508
509
510 if (state)
512 }
513
515 {
518 }
519
521 {
523 return;
524
527 }
528
530 {
532 }
533
536 {
538 }
539
542 {
544 }
545
548 {
550 }
551
552
553
555 {
557 return;
558
560 data.SetPriorityLayer(priority_layer);
561 data.SetInteractionMask(operator);
562
563 data.m_BoolTarget = val;
564 data.m_BoolLast = data.m_BoolCurrent;
565
566 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
567 {
568 data.SetSettingDefaultValues(false);
569 data.SetDataActive(true);
570
572 }
573
574 }
575
577 {
578
580 return;
581
583 data.m_BoolLast = data.m_BoolCurrent;
584 if (!data.IsSettingDefaultValues())
585 {
586 data.SetSettingDefaultValues(true);
587
589 }
590
591 }
592
594 {
596 return;
597
598 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
599 data.SetPriorityLayer(priority_layer);
600 data.SetInteractionMask(operator);
601
602 data.m_IntTarget = val;
603 data.m_IntLast = data.m_IntCurrent;
604 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
605 {
606 data.SetSettingDefaultValues(false);
607 data.SetDataActive(true);
608
610 }
611
612 }
613
615 {
616
618 return;
619
620 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
621 data.m_IntLast = data.m_IntCurrent;
622 if (!data.IsSettingDefaultValues())
623 {
624 data.SetSettingDefaultValues(true);
625
627 }
628
629 }
630
631 protected void SetTargetValueFloat(
int mat_id,
int param_idx,
bool relative,
float val,
int priority_layer,
int operator =
PPOperators.ADD_RELATIVE)
632 {
634 return;
635
637 data.SetPriorityLayer(priority_layer);
638 data.SetInteractionMask(operator);
639
640 data.m_FloatFormerTarget = data.m_FloatTarget;
641 data.m_FloatTarget =
RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
642 data.m_FloatLast = data.m_FloatCurrent;
643 data.m_FloatStart = data.m_FloatCurrent;
644 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
645 {
646 data.SetSettingDefaultValues(false);
647 data.SetDataActive(true);
648
650 }
651
652 }
653
655 {
656
658 return;
659
661 data.m_FloatFormerTarget = data.m_FloatTarget;
662 data.m_FloatLast = data.m_FloatCurrent;
663 data.m_FloatStart = data.m_FloatCurrent;
664 if (!data.IsSettingDefaultValues())
665 {
666 data.SetSettingDefaultValues(true);
667
669 }
670
671 }
672
674 {
676 return;
677
678 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
679 data.SetPriorityLayer(priority_layer);
680 data.SetInteractionMask(operator);
681 data.m_ColorFormerTarget = data.m_ColorTarget;
682
683 data.m_ColorTarget.Copy(val);
684
685 data.m_ColorLast = data.m_ColorCurrent;
686 data.m_ColorStart = data.m_ColorCurrent;
687
688 {
689 data.SetSettingDefaultValues(false);
690 data.SetDataActive(true);
691
693 }
694
695 }
696
698 {
699
701 return;
702
703 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(
GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
704 data.m_ColorFormerTarget = data.m_ColorTarget;
705 data.m_ColorLast = data.m_ColorCurrent;
706 data.m_ColorStart = data.m_ColorCurrent;
707 if (!data.IsSettingDefaultValues())
708 {
709 data.SetSettingDefaultValues(true);
710
712 }
713
714 }
715
716
717
718
719
720
721
722
723
724
725
726
727
730 {
732
734 }
735
738 {
741 {
743 {
745 }
746 else
747 {
750 }
751 }
752 else
753 {
756 temp_map.Set(param_idx,data);
758 }
759
760 if (!data)
761 {
762 Error(
"GetRequestData | no data found in the structure");
763 }
764
766
767 return data;
768 }
769
771 {
773 switch (type)
774 {
775 case PPEConstants.VAR_TYPE_BOOL:
777 break;
778
779 case PPEConstants.VAR_TYPE_INT:
780 data =
new PPERequestParamDataInt(
m_IDX, mat_id, param_idx);
781 break;
782
783 case PPEConstants.VAR_TYPE_FLOAT:
785 break;
786
787 case PPEConstants.VAR_TYPE_COLOR:
788 data =
new PPERequestParamDataColor(
m_IDX, mat_id, param_idx);
789 break;
790 }
791 return data;
792 }
793
794
796 {
798 }
799
801 {
803 }
804
806 {
808 }
809
810
811
813 {
814
815
817 {
819 {
821 {
823 }
824 }
826 }
828 }
829
831 {
833 }
834
837 {
838
841 }
842
844 protected float RelativizeValue(
float value,
int var_type,
int mat_id,
int param_id,
bool relative)
845 {
846 float ret = value;
847 if (!relative)
848 {
849 switch (var_type)
850 {
851 case PPEConstants.VAR_TYPE_FLOAT:
855 break;
856 }
857 }
858
859
860 return ret;
861 }
862
865 {
866
868
870 {
872 {
874
876 continue;
877
879 {
880 case PPEConstants.VAR_TYPE_BOOL:
882 break;
883
884 case PPEConstants.VAR_TYPE_INT:
886 break;
887
888 case PPEConstants.VAR_TYPE_FLOAT:
890 break;
891
892 case PPEConstants.VAR_TYPE_COLOR:
894 break;
895 }
896 }
897 }
898 }
899
901 {
902
903 }
904}
905
907
909
911{
913 {
915 }
916}
917
919{
921 {
923 }
924}
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.