761{
765
767 {
768
769
770 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
771 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
772 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
773 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
774 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
775 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
776
777 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
778 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
779
780 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
781 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
782
783 SetEnginePos("0 0.7 1.4");
784 }
785
787 {
791 }
792
794 {
795 super.EEInit();
796
798 {
805
808 }
809 }
810
812 {
813 super.OnEngineStart();
814
816 {
819 }
820 }
821
823 {
824 super.OnEngineStop();
825
827 {
830 }
831 }
832
834 {
836 {
838 {
840 }
841 }
842 }
843
845 {
847 }
848
850 {
851 switch (posIdx)
852 {
853 case 0:
855 case 1:
857 case 2:
859 case 3:
861 }
862
863 return 0;
864 }
865
866
868 {
870 }
871
872
874 {
876 }
877
879 {
880 if (!super.CanReleaseAttachment(attachment))
881 {
882 return false;
883 }
884
886 {
887 string attType = attachment.GetType();
888 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
889 {
890 return false;
891 }
892 }
893
894 return true;
895 }
896
898 {
900 }
901
903 {
904
905 if ( !super.CanDisplayAttachmentCategory( category_name ) )
906 return false;
907
908
910 if ( category_name.
Contains(
"engine") )
911 {
913 return false;
914 }
915
916 return true;
917 }
918
920 {
921 if ( !super.CanDisplayCargo() )
922 return false;
923
925 return false;
926
927 return true;
928 }
929
931 {
933
934 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
935 if (!carDoor)
936 {
938 }
939
940 switch (slotType)
941 {
942 case "Hatchback_02_Door_1_1":
943 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
944
945 case "Hatchback_02_Door_2_1":
946 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
947
948 case "Hatchback_02_Door_1_2":
949 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
950
951 case "Hatchback_02_Door_2_2":
952 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
953
954 case "Hatchback_02_Hood":
955 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
956
957 case "Hatchback_02_Trunk":
958 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
959 }
960
962 }
963
964
966 {
967 switch (posIdx)
968 {
969 case 0:
971 {
972 return false;
973 }
974
975 return true;
976
977 case 1:
979 {
980 return false;
981 }
982
983 return true;
984
985 case 2:
987 {
988 return false;
989 }
990
991 return true;
992
993 case 3:
995 {
996 return false;
997 }
998
999 return true;
1000 }
1001
1002 return false;
1003 }
1004
1006 {
1007 switch( posIdx )
1008 {
1009 case 0:
1010 return "doors_driver";
1011 break;
1012 case 1:
1013 return "doors_codriver";
1014 break;
1015 case 2:
1016 return "doors_cargo1";
1017 break;
1018 case 3:
1019 return "doors_cargo2";
1020 break;
1021 }
1022
1023 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1024 }
1025
1027 {
1028 switch( posIdx )
1029 {
1030 case 0:
1031 return "Hatchback_02_Door_1_1";
1032 break;
1033 case 1:
1034 return "Hatchback_02_Door_2_1";
1035 break;
1036 case 2:
1037 return "Hatchback_02_Door_1_2";
1038 break;
1039 case 3:
1040 return "Hatchback_02_Door_2_2";
1041 break;
1042 }
1043
1044 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1045 }
1046
1048 {
1049 switch (ctrl)
1050 {
1052 float newValue = 0;
1054 {
1055 newValue += 0.25;
1056 }
1057
1059 {
1060 newValue += 0.25;
1061 }
1062
1064 {
1065 newValue += 0.25;
1066 }
1067
1069 {
1070 newValue += 0.25;
1071 }
1072
1074 break;
1075 }
1076
1077 return super.OnSound(ctrl, oldValue);
1078 }
1079
1081 {
1082 switch( selection )
1083 {
1084 case "doors_driver":
1085 return "DoorsDriver";
1086 case "doors_codriver":
1087 return "DoorsCoDriver";
1088 case "doors_cargo1":
1089 return "DoorsCargo1";
1090 case "doors_cargo2":
1091 return "DoorsCargo2";
1092 case "doors_hood":
1093 return "DoorsHood";
1094 case "doors_trunk":
1095 return "DoorsTrunk";
1096 }
1097
1098 return "";
1099 }
1100
1101
1103 {
1104 return false;
1105 }
1106
1108 {
1109 return false;
1110 }
1111
1113 {
1114 switch (currentSeat)
1115 {
1116 case 0:
1117 return nextSeat == 1;
1118 case 1:
1119 return nextSeat == 0;
1120 case 2:
1121 return nextSeat == 3;
1122 case 3:
1123 return nextSeat == 2;
1124 }
1125
1126 return false;
1127 }
1128
1130 {
1131 switch (pCurrentSeat)
1132 {
1133 case 0:
1134 return pDoorsSelection == "DoorsDriver";
1135 case 1:
1136 return pDoorsSelection == "DoorsCoDriver";
1137 case 2:
1138 return pDoorsSelection == "DoorsCargo1";
1139 case 3:
1140 return pDoorsSelection == "DoorsCargo2";
1141 }
1142
1143 return false;
1144 }
1145
1147 {
1148 SpawnUniversalParts();
1149 SpawnAdditionalItems();
1150 FillUpCarFluids();
1151
1157
1164
1165
1168 }
1169}
1170
1172{
1174 {
1175 SpawnUniversalParts();
1176 SpawnAdditionalItems();
1177 FillUpCarFluids();
1178
1179 GameInventory inventory = GetInventory();
1184
1191
1192
1195 }
1196};
1197
1199{
1201 {
1202 SpawnUniversalParts();
1203 SpawnAdditionalItems();
1204 FillUpCarFluids();
1205
1206 GameInventory inventory = GetInventory();
1211
1218
1219
1222 }
1223}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override void OnEngineStart()
override CarLightBase CreateFrontLight()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override CarRearLightBase CreateRearLight()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
DayZPlayerConstants
defined in C++
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
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'.
bool Contains(string sample)
Returns true if sample is substring of string.
proto int ToLower()
Changes string to lowercase. Returns length.