actionswitchlights.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. class ActionSwitchLights: ActionInteractBase
  2. {
  3. void ActionSwitchLights()
  4. {
  5. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_HEADLIGHT;
  6. m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  7. m_Text = "#switch_lights";
  8. }
  9. override void CreateConditionComponents()
  10. {
  11. m_ConditionItem = new CCINone;
  12. m_ConditionTarget = new CCTNone;
  13. }
  14. override typename GetInputType()
  15. {
  16. return ToggleLightsActionInput;
  17. }
  18. override bool HasTarget()
  19. {
  20. return false;
  21. }
  22. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  23. {
  24. HumanCommandVehicle vehCommand = player.GetCommand_Vehicle();
  25. if ( vehCommand )
  26. {
  27. Transport trans = vehCommand.GetTransport();
  28. if ( trans )
  29. {
  30. CarScript car;
  31. if ( Class.CastTo(car, trans) )
  32. {
  33. if ( car.CrewMemberIndex( player ) == DayZPlayerConstants.VEHICLESEAT_DRIVER )
  34. {
  35. if ( !car.IsScriptedLightsOn() )
  36. {
  37. EntityAI neededItem = null;
  38. if ( car.IsVitalCarBattery() ) neededItem = car.FindAttachmentBySlotName("CarBattery");
  39. if ( car.IsVitalTruckBattery() ) neededItem = car.FindAttachmentBySlotName("TruckBattery");
  40. if (neededItem && !neededItem.IsRuined())
  41. {
  42. return neededItem.GetCompEM() && neededItem.GetCompEM().GetEnergy() > 0;
  43. }
  44. }
  45. else
  46. {
  47. return true;
  48. }
  49. }
  50. }
  51. }
  52. }
  53. return false;
  54. }
  55. override void OnExecuteServer( ActionData action_data )
  56. {
  57. HumanCommandVehicle vehCommand = action_data.m_Player.GetCommand_Vehicle();
  58. if ( vehCommand )
  59. {
  60. Transport trans = vehCommand.GetTransport();
  61. if ( trans )
  62. {
  63. CarScript car;
  64. if ( Class.CastTo(car, trans) )
  65. {
  66. car.ToggleHeadlights();
  67. }
  68. }
  69. }
  70. }
  71. override bool CanBeUsedInVehicle()
  72. {
  73. return true;
  74. }
  75. };