ctevent.c 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. class CTEvent extends ScriptedWidgetEventHandler
  2. {
  3. protected int m_Index;
  4. protected int m_ActorIndex;
  5. protected int m_EventType;
  6. protected float m_EventTime;
  7. protected CameraToolsMenu m_Menu;
  8. protected Widget m_Root;
  9. protected TextWidget m_IndexWidget;
  10. protected EditBoxWidget m_EventActorWidget;
  11. protected EditBoxWidget m_EventTimeWidget;
  12. protected EditBoxWidget m_EventTypeWidget;
  13. protected CheckBoxWidget m_EventWalkWidget;
  14. protected HumanCommandActionCallback m_Callback;
  15. void CTEvent( int index, int actor, Widget root, bool walk, CameraToolsMenu parent )
  16. {
  17. m_Menu = parent;
  18. m_Index = index;
  19. m_ActorIndex = actor;
  20. m_Root = GetGame().GetWorkspace().CreateWidgets( "gui/layouts/camera_tools/event_entry.layout", root );
  21. m_IndexWidget = TextWidget.Cast( m_Root.FindAnyWidget( "event_id" ) );
  22. m_EventActorWidget = EditBoxWidget.Cast( m_Root.FindAnyWidget( "event_actor_edit" ) );
  23. m_EventTimeWidget = EditBoxWidget.Cast( m_Root.FindAnyWidget( "event_time_edit" ) );
  24. m_EventTypeWidget = EditBoxWidget.Cast( m_Root.FindAnyWidget( "event_type_edit" ) );
  25. m_EventWalkWidget = CheckBoxWidget.Cast( m_Root.FindAnyWidget( "auto_walk" ) );
  26. m_EventWalkWidget.SetChecked( walk );
  27. m_IndexWidget.SetText( m_Index.ToString() );
  28. m_EventActorWidget.SetText( m_ActorIndex.ToString() );
  29. m_Root.SetHandler( this );
  30. }
  31. void ~CTEvent()
  32. {
  33. delete m_Root;
  34. }
  35. void Play()
  36. {
  37. PlayerBase player = m_Menu.GetActor( GetEventActor() );
  38. if( player )
  39. {
  40. if( m_EventWalkWidget.IsChecked() )
  41. {
  42. player.GetInputController().OverrideMovementAngle( true, 1 );
  43. player.GetInputController().OverrideMovementSpeed( true, 1 );
  44. }
  45. else
  46. {
  47. if( player.GetCommand_Action() )
  48. {
  49. //player.GetCommand_Action().Cancel();
  50. }
  51. m_Callback = player.StartCommand_Action( GetEventType(), EmoteCB, DayZPlayerConstants.STANCEMASK_ALL );
  52. m_Callback.EnableCancelCondition(true);
  53. }
  54. }
  55. }
  56. void Stop()
  57. {
  58. if( m_Callback )
  59. {
  60. m_Callback.Cancel();
  61. m_Callback = null;
  62. }
  63. PlayerBase player = m_Menu.GetActor( GetEventActor() );
  64. if( player )
  65. {
  66. player.GetInputController().OverrideMovementSpeed( true, 0 );
  67. }
  68. }
  69. bool IsTime( float start_time, float end_time )
  70. {
  71. if( m_EventTime >= start_time )
  72. {
  73. if( m_EventTime <= end_time )
  74. {
  75. return true;
  76. }
  77. }
  78. return false;
  79. }
  80. void SetEventTime( float time )
  81. {
  82. m_EventTime = time;
  83. m_EventTimeWidget.SetText( time.ToString() );
  84. }
  85. void SetEventType( int type )
  86. {
  87. m_EventTypeWidget.SetText( type.ToString() );
  88. }
  89. float GetEventTime()
  90. {
  91. m_EventTime = m_EventTimeWidget.GetText().ToFloat();
  92. return m_EventTime;
  93. }
  94. int GetEventType()
  95. {
  96. return m_EventTypeWidget.GetText().ToInt();
  97. }
  98. int GetEventActor()
  99. {
  100. return m_EventActorWidget.GetText().ToInt();
  101. }
  102. bool GetEventWalk()
  103. {
  104. return m_EventWalkWidget.IsChecked();
  105. }
  106. void Select()
  107. {
  108. m_Root.FindAnyWidget( "spacer" ).SetAlpha( 1 );
  109. m_IndexWidget.SetColor( ARGBF( 1, 1, 0, 0 ) );
  110. m_EventTypeWidget.SetColor( ARGBF( 1, 1, 0, 0 ) );
  111. m_EventTypeWidget.SetColor( ARGBF( 1, 1, 0, 0 ) );
  112. }
  113. void Unselect()
  114. {
  115. m_Root.FindAnyWidget( "spacer" ).SetAlpha( 0.625 );
  116. m_IndexWidget.SetColor( ARGBF( 1, 1, 1, 1 ) );
  117. m_EventTypeWidget.SetColor( ARGBF( 1, 1, 1, 1 ) );
  118. m_EventTypeWidget.SetColor( ARGBF( 1, 1, 1, 1 ) );
  119. }
  120. }