505{
509
511 {
512 m_dmgContactCoef = 0.0790;
513
514 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
515 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
516 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
517 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
518 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
519 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
520
521 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
522 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
523
524 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
525 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
526
527 SetEnginePos("0 0.7 -1.7");
528 }
529
531 {
535 }
536
538 {
539 super.EEInit();
540
542 {
549
552 }
553 }
554
556 {
557 super.OnEngineStart();
558
560 {
563 }
564 }
565
567 {
568 super.OnEngineStop();
569
571 {
574 }
575 }
576
578 {
580 {
582 {
584 }
585 }
586 }
587
589 {
591 }
592
594 {
595 switch (posIdx)
596 {
597 case 0:
599 case 1:
601 case 2:
603 case 3:
605 }
606
607 return 0;
608 }
609
610
612 {
614 }
615
616
618 {
620 }
621
623 {
624 if (!super.CanReleaseAttachment(attachment))
625 {
626 return false;
627 }
628
629 string attType = attachment.GetType();
630 switch (attType)
631 {
632 case "CarBattery":
634 {
635 return false;
636 }
637 break;
638
639 case "SparkPlug":
641 {
642 return false;
643 }
644 break;
645
646 case "CarRadiator":
648 {
649 return false;
650 }
651 break;
652 }
653
654 return true;
655 }
656
658 {
660 }
661
663 {
664 if ( !super.CanDisplayAttachmentCategory(category_name))
665 {
666 return false;
667 }
668
670 if (category_name.
Contains(
"engine"))
671 {
673 {
674 return false;
675 }
676 }
677
678 if (category_name.
Contains(
"trunk"))
679 {
681 {
682 return false;
683 }
684 }
685
686 return true;
687 }
688
690 {
691 if ( !super.CanDisplayCargo() )
692 return false;
693
695 return false;
696
697 return true;
698 }
699
701 {
703
704 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
705 if (!carDoor)
706 {
708 }
709
710 switch (slotType)
711 {
712 case "Sedan_02_Door_1_1":
713 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
714
715 case "Sedan_02_Door_2_1":
716 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
717
718 case "Sedan_02_Door_1_2":
719 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
720
721 case "Sedan_02_Door_2_2":
722 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
723
724 case "Sedan_02_Hood":
725 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
726
727 case "Sedan_02_Trunk":
728 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
729 }
730
732 }
733
734
736 {
737 switch( posIdx )
738 {
739 case 0:
741 return false;
742
743 return true;
744 break;
745
746 case 1:
748 return false;
749
750 return true;
751 break;
752
753 case 2:
755 return false;
756
757 return true;
758 break;
759
760 case 3:
762 return false;
763
764 return true;
765 break;
766 }
767
768 return false;
769 }
770
772 {
773 switch( posIdx )
774 {
775 case 0:
776 return "doors_driver";
777 break;
778 case 1:
779 return "doors_codriver";
780 break;
781 case 2:
782 return "doors_cargo1";
783 break;
784 case 3:
785 return "doors_cargo2";
786 break;
787 }
788
789 return super.GetDoorSelectionNameFromSeatPos(posIdx);
790 }
791
793 {
794 switch( posIdx )
795 {
796 case 0:
797 return "Sedan_02_Door_1_1";
798 break;
799 case 1:
800 return "Sedan_02_Door_2_1";
801 break;
802 case 2:
803 return "Sedan_02_Door_1_2";
804 break;
805 case 3:
806 return "Sedan_02_Door_2_2";
807 break;
808 }
809
810 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
811 }
812
814 {
815 switch ( ctrl )
816 {
818 float newValue = 0;
820 {
821 newValue += 0.25;
822 }
823
825 {
826 newValue += 0.25;
827 }
828
830 {
831 newValue += 0.25;
832 }
833
835 {
836 newValue += 0.25;
837 }
838
840 break;
841 }
842
843 return super.OnSound(ctrl, oldValue);
844 }
845
847 {
848 switch( selection )
849 {
850 case "doors_driver":
851 return "DoorsDriver";
852 case "doors_codriver":
853 return "DoorsCoDriver";
854 case "doors_cargo1":
855 return "DoorsCargo1";
856 case "doors_cargo2":
857 return "DoorsCargo2";
858 case "doors_hood":
859 return "DoorsHood";
860 case "doors_trunk":
861 return "DoorsTrunk";
862 }
863
864 return "";
865 }
866
867
869 {
870 return false;
871 }
872
874 {
875 return false;
876 }
877
879 {
880 switch (currentSeat)
881 {
882 case 0:
883 return nextSeat == 1;
884
885 case 1:
886 return nextSeat == 0;
887
888 case 2:
889 return nextSeat == 3;
890
891 case 3:
892 return nextSeat == 2;
893 }
894
895 return false;
896 }
897
899 {
900 switch (pCurrentSeat)
901 {
902 case 0:
903 return pDoorsSelection == "DoorsDriver";
904
905 case 1:
906 return pDoorsSelection == "DoorsCoDriver";
907
908 case 2:
909 return pDoorsSelection == "DoorsCargo1";
910
911 case 3:
912 return pDoorsSelection == "DoorsCargo2";
913 }
914
915 return false;
916 }
917
919 {
920 SpawnUniversalParts();
921 SpawnAdditionalItems();
922 FillUpCarFluids();
923
930
937
938
941 }
942}
943
945{
947 {
948 SpawnUniversalParts();
949 SpawnAdditionalItems();
950 FillUpCarFluids();
951
952 GameInventory inventory = GetInventory();
957
964
965
968 }
969}
970
972{
974 {
975 SpawnUniversalParts();
976 SpawnAdditionalItems();
977 FillUpCarFluids();
978
979 GameInventory inventory = GetInventory();
984
991
992
995 }
996}
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.