DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GetRequestData()

PPERequestParamDataBase GetCategoryMask::GetRequestData ( int mat_id,
int param_idx,
int type )
protected

returns request data for specific parameter, or creates one if one does not exist in this request yet (singletons)

См. определение в файле PPERequestPlatformsBase.c строка 694

696{
697 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
698 protected bool m_ValuesSent;
699 protected int m_IDX;
700
701 protected bool m_Valid = false;
702
703 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
704
705 void PPERequesterBase(int requester_IDX)
706 {
707 m_Valid = PPERequesterBank.VerifyRequester(this);
708
709 m_IDX = requester_IDX;
710 m_ValuesSent = true;
711 m_IsRunning = false;
713 }
714
716 void SetRequesterUpdating(bool state)
717 {
718 if (!m_Valid)
719 {
720 Debug.Log("" + this + " not valid!");
721 return;
722 }
723
724 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
725
726 //TODO - separate into its own function?
727 if (state)
728 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
729 }
730
731 void Start(Param par = null)
732 {
733 OnStart(par);
734 m_IsRunning = true;
735 }
736
737 void Stop(Param par = null)
738 {
740 return;
741
742 OnStop(par);
743 m_IsRunning = false;
744 }
745
746 bool IsRequesterRunning()
747 {
748 return m_IsRunning;
749 }
750
752 void SetRequesterIDX(int idx)
753 {
754 m_IDX = idx;
755 }
756
758 int GetRequesterIDX()
759 {
760 return m_IDX;
761 }
762
764 int GetCategoryMask()
765 {
766 return PPERequesterCategory.NONE;
767 }
768
769 //SETTERS//
770 //vvvvvvv//
771 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
772 {
774 return;
775
776 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
777 data.SetPriorityLayer(priority_layer);
778 data.SetInteractionMask(operator);
779
780 data.m_BoolTarget = val;
781 data.m_BoolLast = data.m_BoolCurrent;
782
783 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
784 {
785 data.SetSettingDefaultValues(false);
786 data.SetDataActive(true);
787
789 }
790 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
791 }
792
793 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
794 {
795 //TODO - running check and cleanup rework (elsewhere!)
796 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
797 return;
798
799 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
800 data.m_BoolLast = data.m_BoolCurrent;
801 if (!data.IsSettingDefaultValues())
802 {
803 data.SetSettingDefaultValues(true);
804
806 }
807 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
808 }
809
810 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
811 {
813 return;
814
815 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
816 data.SetPriorityLayer(priority_layer);
817 data.SetInteractionMask(operator);
818
819 data.m_IntTarget = val;
820 data.m_IntLast = data.m_IntCurrent;
821 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
822 {
823 data.SetSettingDefaultValues(false);
824 data.SetDataActive(true);
825
827 }
828 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
829 }
830
831 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
832 {
833 //TODO - running check and cleanup rework (elsewhere!)
834 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
835 return;
836
837 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
838 data.m_IntLast = data.m_IntCurrent;
839 if (!data.IsSettingDefaultValues())
840 {
841 data.SetSettingDefaultValues(true);
842
844 }
845 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
846 }
847
848 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
849 {
851 return;
852
853 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
854 data.SetPriorityLayer(priority_layer);
855 data.SetInteractionMask(operator);
856
857 data.m_FloatFormerTarget = data.m_FloatTarget;
858 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
859 data.m_FloatLast = data.m_FloatCurrent;
860 data.m_FloatStart = data.m_FloatCurrent;
861 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
862 {
863 data.SetSettingDefaultValues(false);
864 data.SetDataActive(true);
865
867 }
868 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
869 }
870
871 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
872 {
873 //TODO - running check and cleanup rework (elsewhere!)
874 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
875 return;
876
877 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
878 data.m_FloatFormerTarget = data.m_FloatTarget;
879 data.m_FloatLast = data.m_FloatCurrent;
880 data.m_FloatStart = data.m_FloatCurrent;
881 if (!data.IsSettingDefaultValues())
882 {
883 data.SetSettingDefaultValues(true);
884
886 }
887 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
888 }
889
890 protected void SetTargetValueColor(int mat_id, int param_idx, array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
891 {
893 return;
894
895 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
896 data.SetPriorityLayer(priority_layer);
897 data.SetInteractionMask(operator);
898 data.m_ColorFormerTarget = data.m_ColorTarget;
899
900 data.m_ColorTarget.Copy(val);
901
902 data.m_ColorLast = data.m_ColorCurrent;
903 data.m_ColorStart = data.m_ColorCurrent;
904 //if (data.m_ColorTarget != data.m_ColorCurrent)
905 {
906 data.SetSettingDefaultValues(false);
907 data.SetDataActive(true);
908
910 }
911 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
912 }
913
914 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
915 {
916 //TODO - running check and cleanup rework (elsewhere!)
917 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
918 return;
919
920 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
921 data.m_ColorFormerTarget = data.m_ColorTarget;
922 data.m_ColorLast = data.m_ColorCurrent;
923 data.m_ColorStart = data.m_ColorCurrent;
924 if (!data.IsSettingDefaultValues())
925 {
926 data.SetSettingDefaultValues(true);
927
929 }
930 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
931 }
932
933 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
934 {
935 }
936
937 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
938 {
939 }*/
940
941 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
942 {
943 }*/
944
946 protected void QueueValuesSend()
947 {
948 m_ValuesSent = false;
949 //m_IsRunning = true;
951 }
952
954 PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
955 {
957 if ( m_RequestDataStructure.Get(mat_id) )
958 {
959 if (m_RequestDataStructure.Get(mat_id).Get(param_idx))
960 {
961 data = m_RequestDataStructure.Get(mat_id).Get(param_idx);
962 }
963 else
964 {
965 data = PrepareData(mat_id,param_idx,type);
966 m_RequestDataStructure.Get(mat_id).Set(param_idx,data);
967 }
968 }
969 else
970 {
971 data = PrepareData(mat_id,param_idx,type);
973 temp_map.Set(param_idx,data);
974 m_RequestDataStructure.Set(mat_id, temp_map);
975 }
976
977 if (!data)
978 {
979 Error("GetRequestData | no data found in the structure");
980 }
981
982 data.m_Requester = this;
983
984 return data;
985 }
986
987 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
988 {
990 switch (type)
991 {
992 case PPEConstants.VAR_TYPE_BOOL:
993 data = new PPERequestParamDataBool(m_IDX, mat_id, param_idx);
994 break;
995
996 case PPEConstants.VAR_TYPE_INT:
997 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
998 break;
999
1000 case PPEConstants.VAR_TYPE_FLOAT:
1001 data = new PPERequestParamDataFloat(m_IDX, mat_id, param_idx);
1002 break;
1003
1004 case PPEConstants.VAR_TYPE_COLOR:
1005 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1006 break;
1007 }
1008 return data;
1009 }
1010
1011 // unused?
1013 {
1015 }
1016
1017 protected void ClearRequesterData()
1018 {
1019 m_RequestDataStructure.Clear();
1020 }
1021
1023 {
1024 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1025 }
1026
1027 //EVENTS//
1028 //vvvvvv//
1029 void OnUpdate(float delta)
1030 {
1031 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1032
1033 if ( !m_ValuesSent )
1034 {
1035 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1036 {
1037 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1038 {
1039 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1040 }
1041 }
1042 m_ValuesSent = true;
1043 }
1044 SetRequesterUpdating(false);
1045 }
1046
1047 protected void OnStart(Param par = null)
1048 {
1050 }
1051
1053 protected void OnStop(Param par = null)
1054 {
1055 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1058 }
1059
1061 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1062 {
1063 float ret = value;
1064 if (!relative) //if not already relative...
1065 {
1066 switch (var_type)
1067 {
1068 case PPEConstants.VAR_TYPE_FLOAT:
1069 PPETemplateDefFloat p_float = PPETemplateDefFloat.Cast(PPEManagerStatic.GetPPEManager().GetPostProcessDefaultValues(mat_id,param_id));
1070 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1071 ret = Math.Clamp(ret,0.0,1.0);
1072 break;
1073 }
1074 }
1075 //Print("RelativizeValue: " + ret);
1076
1077 return ret;
1078 }
1079
1081 protected void SetDefaultValuesAll()
1082 {
1083 //<material<param_id,data>>
1084 PPERequestParamDataBase req_data;
1085
1086 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1087 {
1088 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1089 {
1090 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1091
1092 if (!req_data.IsDataActive())
1093 continue;
1094
1095 switch (req_data.GetVarType())
1096 {
1097 case PPEConstants.VAR_TYPE_BOOL:
1099 break;
1100
1101 case PPEConstants.VAR_TYPE_INT:
1103 break;
1104
1105 case PPEConstants.VAR_TYPE_FLOAT:
1107 break;
1108
1109 case PPEConstants.VAR_TYPE_COLOR:
1111 break;
1112 }
1113 }
1114 }
1115 }
1116
1117 void DbgPrnt(string text)
1118 {
1119 //Debug.Log(""+text);
1120 }
1121}
1122
1124// Base requester platforms //
1126
1128{
1129 override int GetCategoryMask()
1130 {
1131 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1132 }
1133}
1134
1136{
1137 override int GetCategoryMask()
1138 {
1139 return PPERequesterCategory.MENU_EFFECTS;
1140 }
1141}
map
Определения ControlsXboxNew.c:4
void Start()
Plays all elements this effects consists of.
Определения Effect.c:155
PPOperators
PP operators, specify operation between subsequent layers.
Определения PPEConstants.c:53
PPERequesterCategory
Определения PPEConstants.c:29
Param4< string, float, float, float > PPETemplateDefFloat
Определения PPEConstants.c:87
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)
Определения PPERequestData.c:111
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)
Определения PPERequestData.c:142
bool m_IsRunning
Определения PPERequestPlatformsBase.c:437
void SetTargetValueBoolDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:533
void SendCurrentValueData(PPERequestParamDataBase data)
Определения PPERequestPlatformsBase.c:762
void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator=PPOperators.SET)
Определения PPERequestPlatformsBase.c:511
ref map< int, ref map< int, ref PPERequestParamDataBase > > m_RequestDataStructure
Определения PPERequestPlatformsBase.c:443
void OnStart(Param par=null)
Определения PPERequestPlatformsBase.c:787
void SetTargetValueFloatDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:611
int GetRequesterIDX()
Returns requester index.
Определения PPERequestPlatformsBase.c:498
map< int, ref map< int, ref PPERequestParamDataBase > > GetActiveRequestStructure()
Определения PPERequestPlatformsBase.c:752
int m_IDX
Определения PPERequestPlatformsBase.c:439
bool IsRequesterRunning()
Определения PPERequestPlatformsBase.c:486
void SetTargetValueColorDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:654
void SetRequesterIDX(int idx)
automatically assigned by PPERequesterBank
Определения PPERequestPlatformsBase.c:492
float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
converts all values used to relative values (if not relative already)
Определения PPERequestPlatformsBase.c:801
void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Определения PPERequestPlatformsBase.c:588
void DbgPrnt(string text)
Определения PPERequestPlatformsBase.c:857
void SetDefaultValuesAll()
Sets all requested values to default, ignoring them in further calculations.
Определения PPERequestPlatformsBase.c:821
void QueueValuesSend()
Sets this requester to update in the manager.
Определения PPERequestPlatformsBase.c:686
void SetTargetValueColor(int mat_id, int param_idx, array< float > val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Определения PPERequestPlatformsBase.c:630
bool m_Valid
Определения PPERequestPlatformsBase.c:441
void SetRequesterUpdating(bool state)
Has to be set for the requester to be handled.
Определения PPERequestPlatformsBase.c:456
void PPERequesterBase(int requester_IDX)
Определения PPERequestPlatformsBase.c:445
class PPERequesterBase GetCategoryMask()
mask for mass-handling methods like 'StopAllEffects'
Определения PPERequestPlatformsBase.c:436
void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator=PPOperators.SET)
Определения PPERequestPlatformsBase.c:550
void SetTargetValueIntDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:571
PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
returns request data for specific parameter, or creates one if one does not exist in this request yet...
Определения PPERequestPlatformsBase.c:694
PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
Определения PPERequestPlatformsBase.c:727
bool m_ValuesSent
Определения PPERequestPlatformsBase.c:438
void ClearRequesterData()
Определения PPERequestPlatformsBase.c:757
@ Count
Определения RandomGeneratorSyncManager.c:8
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.
Определения Debug.c:122
Определения Debug.c:2
Определения EnMath.c:7
static PPEManager GetPPEManager()
Returns the manager instance singleton.
Определения PPEManager.c:27
Static component of PPE manager, used to hold the instance.
Определения PPEManager.c:3
PPERequesterBase m_Requester
Определения PPERequestData.c:4
int GetParameterID()
Определения PPERequestData.c:74
int GetMaterialID()
Определения PPERequestData.c:69
bool IsDataActive()
Определения PPERequestData.c:49
int GetVarType()
Определения PPERequestData.c:79
Data for one material parameter, requester side.
Определения PPERequestData.c:3
base, not to be used directly, would lead to layering collisions!
Определения PPERBloodLoss.c:2
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
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 OnStop()
Определения Sound.c:211
void Stop()
Stops all elements this effect consists of.
Определения Effect.c:181
proto native void OnUpdate()
Определения tools.c:349