527{
531
533 {
534 m_dmgContactCoef = 0.0790;
535
536 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
537 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
538 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
539 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
540 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
541 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
542
543 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
544 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
545
546 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
547 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
548
549 SetEnginePos("0 0.7 -1.7");
550 }
551
553 {
557 }
558
560 {
561 super.EEInit();
562
564 {
571
574 }
575 }
576
578 {
579 super.OnEngineStart();
580
582 {
585 }
586 }
587
589 {
590 super.OnEngineStop();
591
593 {
596 }
597 }
598
600 {
602 {
604 {
606 }
607 }
608 }
609
611 {
613 }
614
616 {
617 switch (posIdx)
618 {
619 case 0:
621 case 1:
623 case 2:
625 case 3:
627 }
628
629 return 0;
630 }
631
632
634 {
636 }
637
638
640 {
642 }
643
645 {
646 if (!super.CanReleaseAttachment(attachment))
647 {
648 return false;
649 }
650
651 string attType = attachment.GetType();
652 switch (attType)
653 {
654 case "CarBattery":
656 {
657 return false;
658 }
659 break;
660
661 case "SparkPlug":
663 {
664 return false;
665 }
666 break;
667
668 case "CarRadiator":
670 {
671 return false;
672 }
673 break;
674 }
675
676 return true;
677 }
678
680 {
682 }
683
685 {
686 if ( !super.CanDisplayAttachmentCategory(category_name))
687 {
688 return false;
689 }
690
692 if (category_name.
Contains(
"engine"))
693 {
695 {
696 return false;
697 }
698 }
699
700 if (category_name.
Contains(
"trunk"))
701 {
703 {
704 return false;
705 }
706 }
707
708 return true;
709 }
710
712 {
713 if ( !super.CanDisplayCargo() )
714 return false;
715
717 return false;
718
719 return true;
720 }
721
723 {
725
726 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
727 if (!carDoor)
728 {
730 }
731
732 switch (slotType)
733 {
734 case "Sedan_02_Door_1_1":
735 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
736
737 case "Sedan_02_Door_2_1":
738 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
739
740 case "Sedan_02_Door_1_2":
741 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
742
743 case "Sedan_02_Door_2_2":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
745
746 case "Sedan_02_Hood":
747 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
748
749 case "Sedan_02_Trunk":
750 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
751 }
752
754 }
755
756
758 {
759 switch( posIdx )
760 {
761 case 0:
763 return false;
764
765 return true;
766 break;
767
768 case 1:
770 return false;
771
772 return true;
773 break;
774
775 case 2:
777 return false;
778
779 return true;
780 break;
781
782 case 3:
784 return false;
785
786 return true;
787 break;
788 }
789
790 return false;
791 }
792
794 {
795 switch( posIdx )
796 {
797 case 0:
798 return "doors_driver";
799 break;
800 case 1:
801 return "doors_codriver";
802 break;
803 case 2:
804 return "doors_cargo1";
805 break;
806 case 3:
807 return "doors_cargo2";
808 break;
809 }
810
811 return super.GetDoorSelectionNameFromSeatPos(posIdx);
812 }
813
815 {
816 switch( posIdx )
817 {
818 case 0:
819 return "Sedan_02_Door_1_1";
820 break;
821 case 1:
822 return "Sedan_02_Door_2_1";
823 break;
824 case 2:
825 return "Sedan_02_Door_1_2";
826 break;
827 case 3:
828 return "Sedan_02_Door_2_2";
829 break;
830 }
831
832 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
833 }
834
836 {
837 switch ( ctrl )
838 {
840 float newValue = 0;
842 {
843 newValue += 0.25;
844 }
845
847 {
848 newValue += 0.25;
849 }
850
852 {
853 newValue += 0.25;
854 }
855
857 {
858 newValue += 0.25;
859 }
860
862 break;
863 }
864
865 return super.OnSound(ctrl, oldValue);
866 }
867
869 {
870 switch( selection )
871 {
872 case "doors_driver":
873 return "DoorsDriver";
874 case "doors_codriver":
875 return "DoorsCoDriver";
876 case "doors_cargo1":
877 return "DoorsCargo1";
878 case "doors_cargo2":
879 return "DoorsCargo2";
880 case "doors_hood":
881 return "DoorsHood";
882 case "doors_trunk":
883 return "DoorsTrunk";
884 }
885
886 return "";
887 }
888
889
891 {
892 return false;
893 }
894
896 {
897 return false;
898 }
899
901 {
902 switch (currentSeat)
903 {
904 case 0:
905 return nextSeat == 1;
906
907 case 1:
908 return nextSeat == 0;
909
910 case 2:
911 return nextSeat == 3;
912
913 case 3:
914 return nextSeat == 2;
915 }
916
917 return false;
918 }
919
921 {
922 switch (pCurrentSeat)
923 {
924 case 0:
925 return pDoorsSelection == "DoorsDriver";
926
927 case 1:
928 return pDoorsSelection == "DoorsCoDriver";
929
930 case 2:
931 return pDoorsSelection == "DoorsCargo1";
932
933 case 3:
934 return pDoorsSelection == "DoorsCargo2";
935 }
936
937 return false;
938 }
939
941 {
942 SpawnUniversalParts();
943 SpawnAdditionalItems();
944 FillUpCarFluids();
945
952
959
960
963 }
964}
965
967{
969 {
970 SpawnUniversalParts();
971 SpawnAdditionalItems();
972 FillUpCarFluids();
973
974 GameInventory inventory = GetInventory();
979
986
987
990 }
991}
992
994{
996 {
997 SpawnUniversalParts();
998 SpawnAdditionalItems();
999 FillUpCarFluids();
1000
1001 GameInventory inventory = GetInventory();
1006
1013
1014
1017 }
1018}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
class Sedan_02 extends CarScript OnDebugSpawn()
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.