Gems/Umbra/Code/Source/UmbraObjectComponent/UmbraObjectComponentController.h (32 lines of code) (raw):

/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. */ #pragma once #include <AzCore/Component/Component.h> #include <Umbra/UmbraObjectComponent/UmbraObjectComponentBus.h> #include <Umbra/UmbraObjectComponent/UmbraObjectComponentConfig.h> namespace Umbra { //! Implements common functionality for umbra object run time and editor components. class UmbraObjectComponentController final : public UmbraObjectComponentRequestBus::Handler { public: friend class EditorUmbraObjectComponent; AZ_CLASS_ALLOCATOR(UmbraObjectComponentController, AZ::SystemAllocator); AZ_RTTI(UmbraObjectComponentController, "{71E651D8-48F3-4605-8A68-F21E71DF49FD}"); static void Reflect(AZ::ReflectContext* context); static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& services); static void GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& services); static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& services); UmbraObjectComponentController() = default; UmbraObjectComponentController(const UmbraObjectComponentConfig& config); void Activate(AZ::EntityId entityId); void Deactivate(); void SetConfiguration(const UmbraObjectComponentConfig& config); const UmbraObjectComponentConfig& GetConfiguration() const; //! UmbraObjectComponentRequestBus overrides... void SetCanOcclude(bool canOcclude) override; bool GetCanOcclude() const override; void SetCanBeOccluded(bool canBeOccluded) override; bool GetCanBeOccluded() const override; private: AZ_DISABLE_COPY_MOVE(UmbraObjectComponentController); AZ::EntityId m_entityId; UmbraObjectComponentConfig m_configuration; }; } // namespace Umbra