actionignitefireplacebyair.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. class ActionIgniteFireplaceByAirCB : ActionContinuousBaseCB
  2. {
  3. override void CreateActionComponent()
  4. {
  5. m_ActionData.m_ActionComponent = new CAContinuousTime( UATimeSpent.FIREPLACE_IGNITE );
  6. }
  7. };
  8. class ActionIgniteFireplaceByAir: ActionContinuousBase
  9. {
  10. void ActionIgniteFireplaceByAir()
  11. {
  12. m_CallbackClass = ActionIgniteFireplaceByAirCB;
  13. m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_BLOWFIREPLACE;
  14. m_FullBody = true;
  15. m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
  16. m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
  17. m_Text = "#blow_air_into_fireplace";
  18. }
  19. override void CreateConditionComponents()
  20. {
  21. m_ConditionTarget = new CCTNonRuined( UAMaxDistances.DEFAULT );
  22. m_ConditionItem = new CCINotPresent;
  23. }
  24. override typename GetInputType()
  25. {
  26. return ContinuousInteractActionInput;
  27. }
  28. override bool ActionCondition ( PlayerBase player, ActionTarget target, ItemBase item )
  29. {
  30. Object target_object = target.GetObject();
  31. FireplaceBase fireplace_target = FireplaceBase.Cast( target_object );
  32. if ( target_object && target_object.IsFireplace() )
  33. {
  34. if ( fireplace_target.IsBaseFireplace() || fireplace_target.IsFireplaceIndoor() )
  35. {
  36. if ( !fireplace_target.IsBurning() && fireplace_target.GetTemperature() >= fireplace_target.PARAM_MIN_TEMP_TO_REIGNITE )
  37. {
  38. return true;
  39. }
  40. }
  41. }
  42. return false;
  43. }
  44. override void OnFinishProgressServer( ActionData action_data )
  45. {
  46. FireplaceBase fireplace_target = FireplaceBase.Cast( action_data.m_Target.GetObject() );
  47. //start fire
  48. fireplace_target.StartFire();
  49. }
  50. bool SkipKindlingCheck()
  51. {
  52. return false;
  53. }
  54. }