compass.c 912 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. class Compass : ItemCompass
  2. {
  3. protected ref OpenableBehaviour m_Openable;
  4. void Compass()
  5. {
  6. m_Openable = new OpenableBehaviour(false);
  7. RegisterNetSyncVariableBool("m_Openable.m_IsOpened");
  8. UpdateVisualState();
  9. }
  10. override void Open()
  11. {
  12. m_Openable.Open();
  13. SetSynchDirty();
  14. UpdateVisualState();
  15. }
  16. override void Close()
  17. {
  18. m_Openable.Close();
  19. SetSynchDirty();
  20. UpdateVisualState();
  21. }
  22. override bool IsOpen()
  23. {
  24. return m_Openable.IsOpened();
  25. }
  26. protected void UpdateVisualState()
  27. {
  28. if ( IsOpen() )
  29. {
  30. SetAnimationPhase("cover", 1.0);
  31. }
  32. else
  33. {
  34. SetAnimationPhase("cover", 0.0);
  35. }
  36. }
  37. override void OnVariablesSynchronized()
  38. {
  39. super.OnVariablesSynchronized();
  40. UpdateVisualState();
  41. }
  42. override void SetActions()
  43. {
  44. super.SetActions();
  45. AddAction(ActionOpen);
  46. AddAction(ActionClose);
  47. AddAction(ActionViewCompass);
  48. }
  49. }