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

◆ PrepareData()

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

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

729{
730 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
731 protected bool m_ValuesSent;
732 protected int m_IDX;
733
734 protected bool m_Valid = false;
735
736 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
737
738 void PPERequesterBase(int requester_IDX)
739 {
740 m_Valid = PPERequesterBank.VerifyRequester(this);
741
742 m_IDX = requester_IDX;
743 m_ValuesSent = true;
744 m_IsRunning = false;
746 }
747
749 void SetRequesterUpdating(bool state)
750 {
751 if (!m_Valid)
752 {
753 Debug.Log("" + this + " not valid!");
754 return;
755 }
756
757 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
758
759 //TODO - separate into its own function?
760 if (state)
761 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
762 }
763
764 void Start(Param par = null)
765 {
766 OnStart(par);
767 m_IsRunning = true;
768 }
769
770 void Stop(Param par = null)
771 {
773 return;
774
775 OnStop(par);
776 m_IsRunning = false;
777 }
778
779 bool IsRequesterRunning()
780 {
781 return m_IsRunning;
782 }
783
785 void SetRequesterIDX(int idx)
786 {
787 m_IDX = idx;
788 }
789
791 int GetRequesterIDX()
792 {
793 return m_IDX;
794 }
795
797 int GetCategoryMask()
798 {
799 return PPERequesterCategory.NONE;
800 }
801
802 //SETTERS//
803 //vvvvvvv//
804 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
805 {
807 return;
808
809 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
810 data.SetPriorityLayer(priority_layer);
811 data.SetInteractionMask(operator);
812
813 data.m_BoolTarget = val;
814 data.m_BoolLast = data.m_BoolCurrent;
815
816 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
817 {
818 data.SetSettingDefaultValues(false);
819 data.SetDataActive(true);
820
822 }
823 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
824 }
825
826 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
827 {
828 //TODO - running check and cleanup rework (elsewhere!)
829 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
830 return;
831
832 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
833 data.m_BoolLast = data.m_BoolCurrent;
834 if (!data.IsSettingDefaultValues())
835 {
836 data.SetSettingDefaultValues(true);
837
839 }
840 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
841 }
842
843 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
844 {
846 return;
847
848 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
849 data.SetPriorityLayer(priority_layer);
850 data.SetInteractionMask(operator);
851
852 data.m_IntTarget = val;
853 data.m_IntLast = data.m_IntCurrent;
854 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
855 {
856 data.SetSettingDefaultValues(false);
857 data.SetDataActive(true);
858
860 }
861 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
862 }
863
864 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
865 {
866 //TODO - running check and cleanup rework (elsewhere!)
867 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
868 return;
869
870 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
871 data.m_IntLast = data.m_IntCurrent;
872 if (!data.IsSettingDefaultValues())
873 {
874 data.SetSettingDefaultValues(true);
875
877 }
878 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
879 }
880
881 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
882 {
884 return;
885
886 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
887 data.SetPriorityLayer(priority_layer);
888 data.SetInteractionMask(operator);
889
890 data.m_FloatFormerTarget = data.m_FloatTarget;
891 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
892 data.m_FloatLast = data.m_FloatCurrent;
893 data.m_FloatStart = data.m_FloatCurrent;
894 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
895 {
896 data.SetSettingDefaultValues(false);
897 data.SetDataActive(true);
898
900 }
901 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
902 }
903
904 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
905 {
906 //TODO - running check and cleanup rework (elsewhere!)
907 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
908 return;
909
910 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
911 data.m_FloatFormerTarget = data.m_FloatTarget;
912 data.m_FloatLast = data.m_FloatCurrent;
913 data.m_FloatStart = data.m_FloatCurrent;
914 if (!data.IsSettingDefaultValues())
915 {
916 data.SetSettingDefaultValues(true);
917
919 }
920 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
921 }
922
923 protected void SetTargetValueColor(int mat_id, int param_idx, array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
924 {
926 return;
927
928 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
929 data.SetPriorityLayer(priority_layer);
930 data.SetInteractionMask(operator);
931 data.m_ColorFormerTarget = data.m_ColorTarget;
932
933 data.m_ColorTarget.Copy(val);
934
935 data.m_ColorLast = data.m_ColorCurrent;
936 data.m_ColorStart = data.m_ColorCurrent;
937 //if (data.m_ColorTarget != data.m_ColorCurrent)
938 {
939 data.SetSettingDefaultValues(false);
940 data.SetDataActive(true);
941
943 }
944 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
945 }
946
947 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
948 {
949 //TODO - running check and cleanup rework (elsewhere!)
950 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
951 return;
952
953 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
954 data.m_ColorFormerTarget = data.m_ColorTarget;
955 data.m_ColorLast = data.m_ColorCurrent;
956 data.m_ColorStart = data.m_ColorCurrent;
957 if (!data.IsSettingDefaultValues())
958 {
959 data.SetSettingDefaultValues(true);
960
962 }
963 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
964 }
965
966 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
967 {
968 }
969
970 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
971 {
972 }*/
973
974 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
975 {
976 }*/
977
979 protected void QueueValuesSend()
980 {
981 m_ValuesSent = false;
982 //m_IsRunning = true;
984 }
985
987 PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
988 {
990 if ( m_RequestDataStructure.Get(mat_id) )
991 {
992 if (m_RequestDataStructure.Get(mat_id).Get(param_idx))
993 {
994 data = m_RequestDataStructure.Get(mat_id).Get(param_idx);
995 }
996 else
997 {
998 data = PrepareData(mat_id,param_idx,type);
999 m_RequestDataStructure.Get(mat_id).Set(param_idx,data);
1000 }
1001 }
1002 else
1003 {
1004 data = PrepareData(mat_id,param_idx,type);
1006 temp_map.Set(param_idx,data);
1007 m_RequestDataStructure.Set(mat_id, temp_map);
1008 }
1009
1010 if (!data)
1011 {
1012 Error("GetRequestData | no data found in the structure");
1013 }
1014
1015 data.m_Requester = this;
1016
1017 return data;
1018 }
1019
1020 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1021 {
1023 switch (type)
1024 {
1025 case PPEConstants.VAR_TYPE_BOOL:
1026 data = new PPERequestParamDataBool(m_IDX, mat_id, param_idx);
1027 break;
1028
1029 case PPEConstants.VAR_TYPE_INT:
1030 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1031 break;
1032
1033 case PPEConstants.VAR_TYPE_FLOAT:
1034 data = new PPERequestParamDataFloat(m_IDX, mat_id, param_idx);
1035 break;
1036
1037 case PPEConstants.VAR_TYPE_COLOR:
1038 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1039 break;
1040 }
1041 return data;
1042 }
1043
1044 // unused?
1046 {
1048 }
1049
1050 protected void ClearRequesterData()
1051 {
1052 m_RequestDataStructure.Clear();
1053 }
1054
1056 {
1057 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1058 }
1059
1060 //EVENTS//
1061 //vvvvvv//
1062 void OnUpdate(float delta)
1063 {
1064 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1065
1066 if ( !m_ValuesSent )
1067 {
1068 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1069 {
1070 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1071 {
1072 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1073 }
1074 }
1075 m_ValuesSent = true;
1076 }
1077 SetRequesterUpdating(false);
1078 }
1079
1080 protected void OnStart(Param par = null)
1081 {
1083 }
1084
1086 protected void OnStop(Param par = null)
1087 {
1088 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1091 }
1092
1094 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1095 {
1096 float ret = value;
1097 if (!relative) //if not already relative...
1098 {
1099 switch (var_type)
1100 {
1101 case PPEConstants.VAR_TYPE_FLOAT:
1102 PPETemplateDefFloat p_float = PPETemplateDefFloat.Cast(PPEManagerStatic.GetPPEManager().GetPostProcessDefaultValues(mat_id,param_id));
1103 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1104 ret = Math.Clamp(ret,0.0,1.0);
1105 break;
1106 }
1107 }
1108 //Print("RelativizeValue: " + ret);
1109
1110 return ret;
1111 }
1112
1114 protected void SetDefaultValuesAll()
1115 {
1116 //<material<param_id,data>>
1117 PPERequestParamDataBase req_data;
1118
1119 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1120 {
1121 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1122 {
1123 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1124
1125 if (!req_data.IsDataActive())
1126 continue;
1127
1128 switch (req_data.GetVarType())
1129 {
1130 case PPEConstants.VAR_TYPE_BOOL:
1132 break;
1133
1134 case PPEConstants.VAR_TYPE_INT:
1136 break;
1137
1138 case PPEConstants.VAR_TYPE_FLOAT:
1140 break;
1141
1142 case PPEConstants.VAR_TYPE_COLOR:
1144 break;
1145 }
1146 }
1147 }
1148 }
1149
1150 void DbgPrnt(string text)
1151 {
1152 //Debug.Log(""+text);
1153 }
1154}
1155
1157// Base requester platforms //
1159
1161{
1162 override int GetCategoryMask()
1163 {
1164 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1165 }
1166}
1167
1169{
1170 override int GetCategoryMask()
1171 {
1172 return PPERequesterCategory.MENU_EFFECTS;
1173 }
1174}
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