SimpleDrawableGameComponent.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using Microsoft.Xna.Framework;
  3. namespace MonoGame.Extended
  4. {
  5. public abstract class SimpleDrawableGameComponent : SimpleGameComponent, IDrawable
  6. {
  7. protected SimpleDrawableGameComponent()
  8. {
  9. }
  10. private bool _isVisible = true;
  11. public bool Visible
  12. {
  13. get => _isVisible;
  14. set
  15. {
  16. if (_isVisible == value)
  17. return;
  18. _isVisible = value;
  19. VisibleChanged?.Invoke(this, EventArgs.Empty);
  20. }
  21. }
  22. bool IDrawable.Visible => _isVisible;
  23. private int _drawOrder;
  24. public int DrawOrder
  25. {
  26. get => _drawOrder;
  27. set
  28. {
  29. if (_drawOrder == value)
  30. return;
  31. _drawOrder = value;
  32. DrawOrderChanged?.Invoke(this, EventArgs.Empty);
  33. }
  34. }
  35. public event EventHandler<EventArgs> DrawOrderChanged;
  36. public event EventHandler<EventArgs> VisibleChanged;
  37. public abstract void Draw(GameTime gameTime);
  38. }
  39. }