Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #ifndef ANIMATION2BLENDCOMPONENT_H
- #define ANIMATION2BLENDCOMPONENT_H
- #include <AzCore/Component/Component.h>
- // LY EBUS
- #include <AzCore/Component/TickBus.h>
- #include <AzCore/Component/EntityBus.h>
- #include <AzFramework/Entity/GameEntityContextBus.h>
- #include <..\..\..\Gems\EMotionFX\Code\Include\Integration\ActorComponentBus.h>
- //<MCore/Source/StandardHeaders.h>
- #include <..\..\..\Gems\EMotionFX\Code\MCore\Source\StandardHeaders.h>
- #include "../../../Gems/EMotionFX/Code/EMotionFX/Source/ActorInstance.h"
- #include "../../../Gems/EMotionFX/Code/EMotionFX/Source/Skeleton.h"
- #include "../../../Gems/EMotionFX/Code/EMotionFX/Source/Actor.h"
- #include "Animation2BlendBus.h"
- namespace GameProject
- {
- class Animation2BlendComponent :
- public AZ::Component,
- public AZ::EntityBus::Handler,
- public AZ::TickBus::Handler,
- public AzFramework::GameEntityContextEventBus::Handler,
- public EMotionFX::Integration::ActorComponentNotificationBus::Handler,
- public Animation2BlendBus::Handler
- {
- public:
- AZ_COMPONENT(Animation2BlendComponent, "{4AEDA944-4B2A-4DED-AA9B-618124243BAE}", AZ::Component);
- Animation2BlendComponent() = default;
- virtual ~Animation2BlendComponent() {};
- // AZ::Component
- static void Reflect(AZ::ReflectContext* context);
- void Init() override;
- void Activate() override;
- void Deactivate() override;
- // AZ::TickBus
- void OnTick(float deltaTime, AZ::ScriptTimePoint time);
- int GetTickOrder() override { return AZ::ComponentTickBus::TICK_GAME + 1; };
- // EntityBus
- void OnEntityActivated(const AZ::EntityId& entityId) override;
- void OnEntityDeactivated(const AZ::EntityId& entityId) override;
- /// Notifies listeners when the component has created an actor instance.
- /// \param actorInstance - pointer to actor instance
- void OnActorInstanceCreated(EMotionFX::ActorInstance* actorInstance) override;
- /// Notifies listeners when the component is destroying an actor instance.
- /// \param actorInstance - pointer to actor instance
- void OnActorInstanceDestroyed(EMotionFX::ActorInstance* actorInstance) override;
- //GameEntityContextEventBus
- void OnGameEntitiesStarted() override;
- //Animation2BlendBus
- void SetAABBScale(float factor) override;
- private:
- void DrawDebug();
- void WriteXML();
- bool m_Inited = false;
- EMotionFX::ActorInstance* m_ActorInstance = nullptr;
- EMotionFX::Actor* m_Actor = nullptr;
- EMotionFX::Skeleton* m_Skeleton = nullptr;
- //Editor exposed properties
- float m_Value = 1.0f;
- AZ::Vector3 m_Vector = AZ::Vector3::CreateZero();
- AZStd::string m_Name;
- AZ::u32 m_boneCount = 0;
- AZStd::vector<AZStd::string> m_bonesNames;
- MCore::AABB originalAabb;
- };
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement