plugindoorruler.c 961 B

1234567891011121314151617181920212223242526272829303132333435
  1. class PluginDoorRuler extends PluginBase
  2. {
  3. PluginDeveloper m_ModuleDeveloper;
  4. ItemBase m_Ruler;
  5. ref Timer m_Timer;
  6. bool m_Initialized;
  7. void CheckInit()
  8. {
  9. if( FreeDebugCamera.GetInstance().IsActive() )
  10. Init();
  11. }
  12. void Init()
  13. {
  14. if(m_Ruler)
  15. m_Ruler.Delete();
  16. m_Initialized = true;
  17. m_Ruler = ItemBase.Cast( GetGame().CreateObject("DoorTestCamera", FreeDebugCamera.GetInstance().GetPosition(), false, false/*ai*/) );
  18. }
  19. override void OnUpdate(float delta_time)
  20. {
  21. if(!m_Initialized) return;
  22. if(!FreeDebugCamera.GetInstance().IsActive()) return;
  23. if(!m_Ruler) return;
  24. vector cam_pos = FreeDebugCamera.GetInstance().GetPosition();
  25. vector ruler_pos = m_Ruler.GetPosition();
  26. vector camera_dir = FreeDebugCamera.GetInstance().GetDirection();
  27. camera_dir.Normalize();
  28. m_Ruler.SetPosition(FreeDebugCamera.GetInstance().GetPosition() + ( camera_dir * 2) );
  29. m_Ruler.SetAngles(FreeDebugCamera.GetInstance().GetAngles());
  30. }
  31. }