AttachPlayerWeaponComponent.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project
  3. *
  4. * SPDX-License-Identifier: Apache-2.0 OR MIT
  5. *
  6. */
  7. #pragma once
  8. #include <AzCore/Component/Component.h>
  9. #include <AzCore/Math/Transform.h>
  10. #include <AzFramework/Spawnable/Spawnable.h>
  11. #include <AzFramework/Spawnable/SpawnableEntitiesInterface.h>
  12. namespace MultiplayerSample
  13. {
  14. //! @class AttachPlayerWeaponComponent
  15. //! @brief Spawns a non-network gun prefab and attaches it to the player entity.
  16. class AttachPlayerWeaponComponent final
  17. : public AZ::Component
  18. {
  19. public:
  20. AZ_COMPONENT(MultiplayerSample::AttachPlayerWeaponComponent, "{7ebfc648-eae7-487f-b707-308ca93aeda7}");
  21. static void Reflect(AZ::ReflectContext* context);
  22. //! AZ::Component overrides.
  23. //! @{
  24. void Activate() override;
  25. void Deactivate() override;
  26. //! }@
  27. private:
  28. AZStd::shared_ptr<AzFramework::EntitySpawnTicket> m_weaponTicket;
  29. AZ::Data::Asset<AzFramework::Spawnable> m_weaponAsset;
  30. AZStd::string m_boneToAttachTo;
  31. AZ::Transform m_attachmentTransform;
  32. };
  33. }