EditorModeFeedbackSystemComponent.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <Draw/DrawableMeshEntity.h>
  10. #include <AzCore/Component/Component.h>
  11. #include <AzToolsFramework/Entity/EditorEntityContextBus.h>
  12. #include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
  13. #include <EditorModeFeedback/EditorModeFeedbackInterface.h>
  14. namespace AZ
  15. {
  16. namespace RPI
  17. {
  18. class Material;
  19. }
  20. namespace Render
  21. {
  22. //! Component for the editor mode feedback system.
  23. class EditorModeFeedbackSystemComponent
  24. : public AzToolsFramework::Components::EditorComponentBase
  25. , public EditorModeFeedbackInterface
  26. , private AzToolsFramework::EditorEntityContextNotificationBus::Handler
  27. {
  28. public:
  29. AZ_EDITOR_COMPONENT(EditorModeFeedbackSystemComponent, "{A88EE29D-4C72-4995-B3BD-41EEDE480487}");
  30. static void Reflect(AZ::ReflectContext* context);
  31. // EditorComponentBase overrides ...
  32. void Activate() override;
  33. void Deactivate() override;
  34. // EditorModeFeedbackInterface overrides ...
  35. bool IsEnabled() const override;
  36. private:
  37. // EditorEntityContextNotificationBus overrides ...
  38. void OnStartPlayInEditorBegin() override;
  39. void OnStopPlayInEditor() override;
  40. // Enable/disable editor mode feedback rendering for the level viewport (main scene)
  41. void SetEnableRender(bool enableRender);
  42. //! Settings registry override for enabling/disabling editor mode feedback.
  43. bool m_registeryEnabled = false;
  44. };
  45. } // namespace Render
  46. } // namespace AZ