portablegaslamp.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. class PortableGasLamp extends ItemBase
  2. {
  3. PortableGasLampLight m_Light;
  4. private const string GAS_LIGHT_MATERIAL_ON = "dz\\gear\\cooking\\data\\GasLightOn.rvmat";
  5. private const string GAS_LIGHT_MATERIAL_OFF = "dz\\data\\data\\default.rvmat";
  6. //sound
  7. const string SOUND_BURNING = "portablegaslamp_burn_SoundSet";
  8. const string SOUND_TURN_ON = "portablegaslamp_turn_on_SoundSet";
  9. const string SOUND_TURN_OFF = "portablegaslamp_turn_off_SoundSet";
  10. protected EffectSound m_SoundBurningLoop;
  11. protected EffectSound m_SoundTurnOn;
  12. protected EffectSound m_SoundTurnOff;
  13. //--- POWER EVENTS
  14. override void OnSwitchOn()
  15. {
  16. super.OnSwitchOn();
  17. //sound (client only)
  18. SoundTurnOn();
  19. }
  20. override void OnSwitchOff()
  21. {
  22. super.OnSwitchOff();
  23. //sound (client only)
  24. SoundTurnOff();
  25. }
  26. override void OnWorkStart()
  27. {
  28. if ( !GetGame().IsServer() || !GetGame().IsMultiplayer() ) // client side
  29. {
  30. m_Light = PortableGasLampLight.Cast( ScriptedLightBase.CreateLight( PortableGasLampLight, "0 0 0") );
  31. m_Light.AttachOnMemoryPoint(this, "light");
  32. }
  33. //refresh visual
  34. SetObjectMaterial( 0, GAS_LIGHT_MATERIAL_ON );
  35. //sound (client only)
  36. SoundBurningStart();
  37. }
  38. override void OnWorkStop()
  39. {
  40. if (m_Light)
  41. m_Light.FadeOut();
  42. //refresh visual
  43. SetObjectMaterial( 0, GAS_LIGHT_MATERIAL_OFF );
  44. //sound (client only)
  45. SoundBurningStop();
  46. }
  47. //================================================================
  48. // SOUNDS
  49. //================================================================
  50. protected void SoundBurningStart()
  51. {
  52. PlaySoundSetLoop( m_SoundBurningLoop, SOUND_BURNING, 0.1, 0.3 );
  53. }
  54. protected void SoundBurningStop()
  55. {
  56. StopSoundSet( m_SoundBurningLoop );
  57. }
  58. protected void SoundTurnOn()
  59. {
  60. PlaySoundSet( m_SoundTurnOn, SOUND_TURN_ON, 0.1, 0.1 );
  61. }
  62. protected void SoundTurnOff()
  63. {
  64. PlaySoundSet( m_SoundTurnOff, SOUND_TURN_OFF, 0.1, 0.1 );
  65. }
  66. override void SetActions()
  67. {
  68. super.SetActions();
  69. AddAction(ActionTurnOnWhileInHands);
  70. AddAction(ActionTurnOffWhileInHands);
  71. AddAction(ActionTurnOnWhileOnGround);
  72. AddAction(ActionTurnOffWhileOnGround);
  73. }
  74. }