516{
520
522 {
523 m_dmgContactCoef = 0.0790;
524
525 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
526 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
527 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
528 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
529 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
530 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
531
532 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
533 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
534
535 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
536 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
537
538 SetEnginePos("0 0.7 -1.7");
539 }
540
542 {
546 }
547
549 {
550 super.EEInit();
551
553 {
560
563 }
564 }
565
567 {
568 super.OnEngineStart();
569
571 {
574 }
575 }
576
578 {
579 super.OnEngineStop();
580
582 {
585 }
586 }
587
589 {
591 {
593 {
595 }
596 }
597 }
598
600 {
602 }
603
605 {
606 switch (posIdx)
607 {
608 case 0:
610 case 1:
612 case 2:
614 case 3:
616 }
617
618 return 0;
619 }
620
621
623 {
625 }
626
627
629 {
631 }
632
634 {
635 if (!super.CanReleaseAttachment(attachment))
636 {
637 return false;
638 }
639
640 string attType = attachment.GetType();
641 switch (attType)
642 {
643 case "CarBattery":
645 {
646 return false;
647 }
648 break;
649
650 case "SparkPlug":
652 {
653 return false;
654 }
655 break;
656
657 case "CarRadiator":
659 {
660 return false;
661 }
662 break;
663 }
664
665 return true;
666 }
667
669 {
671 }
672
674 {
675 if ( !super.CanDisplayAttachmentCategory(category_name))
676 {
677 return false;
678 }
679
681 if (category_name.
Contains(
"engine"))
682 {
684 {
685 return false;
686 }
687 }
688
689 if (category_name.
Contains(
"trunk"))
690 {
692 {
693 return false;
694 }
695 }
696
697 return true;
698 }
699
701 {
702 if ( !super.CanDisplayCargo() )
703 return false;
704
706 return false;
707
708 return true;
709 }
710
712 {
714
715 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
716 if (!carDoor)
717 {
719 }
720
721 switch (slotType)
722 {
723 case "Sedan_02_Door_1_1":
724 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
725
726 case "Sedan_02_Door_2_1":
727 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
728
729 case "Sedan_02_Door_1_2":
730 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
731
732 case "Sedan_02_Door_2_2":
733 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
734
735 case "Sedan_02_Hood":
736 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
737
738 case "Sedan_02_Trunk":
739 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
740 }
741
743 }
744
745
747 {
748 switch( posIdx )
749 {
750 case 0:
752 return false;
753
754 return true;
755 break;
756
757 case 1:
759 return false;
760
761 return true;
762 break;
763
764 case 2:
766 return false;
767
768 return true;
769 break;
770
771 case 3:
773 return false;
774
775 return true;
776 break;
777 }
778
779 return false;
780 }
781
783 {
784 switch( posIdx )
785 {
786 case 0:
787 return "doors_driver";
788 break;
789 case 1:
790 return "doors_codriver";
791 break;
792 case 2:
793 return "doors_cargo1";
794 break;
795 case 3:
796 return "doors_cargo2";
797 break;
798 }
799
800 return super.GetDoorSelectionNameFromSeatPos(posIdx);
801 }
802
804 {
805 switch( posIdx )
806 {
807 case 0:
808 return "Sedan_02_Door_1_1";
809 break;
810 case 1:
811 return "Sedan_02_Door_2_1";
812 break;
813 case 2:
814 return "Sedan_02_Door_1_2";
815 break;
816 case 3:
817 return "Sedan_02_Door_2_2";
818 break;
819 }
820
821 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
822 }
823
825 {
826 switch ( ctrl )
827 {
829 float newValue = 0;
831 {
832 newValue += 0.25;
833 }
834
836 {
837 newValue += 0.25;
838 }
839
841 {
842 newValue += 0.25;
843 }
844
846 {
847 newValue += 0.25;
848 }
849
851 break;
852 }
853
854 return super.OnSound(ctrl, oldValue);
855 }
856
858 {
859 switch( selection )
860 {
861 case "doors_driver":
862 return "DoorsDriver";
863 case "doors_codriver":
864 return "DoorsCoDriver";
865 case "doors_cargo1":
866 return "DoorsCargo1";
867 case "doors_cargo2":
868 return "DoorsCargo2";
869 case "doors_hood":
870 return "DoorsHood";
871 case "doors_trunk":
872 return "DoorsTrunk";
873 }
874
875 return "";
876 }
877
878
880 {
881 return false;
882 }
883
885 {
886 return false;
887 }
888
890 {
891 switch (currentSeat)
892 {
893 case 0:
894 return nextSeat == 1;
895
896 case 1:
897 return nextSeat == 0;
898
899 case 2:
900 return nextSeat == 3;
901
902 case 3:
903 return nextSeat == 2;
904 }
905
906 return false;
907 }
908
910 {
911 switch (pCurrentSeat)
912 {
913 case 0:
914 return pDoorsSelection == "DoorsDriver";
915
916 case 1:
917 return pDoorsSelection == "DoorsCoDriver";
918
919 case 2:
920 return pDoorsSelection == "DoorsCargo1";
921
922 case 3:
923 return pDoorsSelection == "DoorsCargo2";
924 }
925
926 return false;
927 }
928
930 {
931 SpawnUniversalParts();
932 SpawnAdditionalItems();
933 FillUpCarFluids();
934
941
948
949
952 }
953}
954
956{
958 {
959 SpawnUniversalParts();
960 SpawnAdditionalItems();
961 FillUpCarFluids();
962
963 GameInventory inventory = GetInventory();
968
975
976
979 }
980}
981
983{
985 {
986 SpawnUniversalParts();
987 SpawnAdditionalItems();
988 FillUpCarFluids();
989
990 GameInventory inventory = GetInventory();
995
1002
1003
1006 }
1007}
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.