3
0

ScriptCanvasAssetIdDataInterface.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 <GraphCanvas/Components/NodePropertyDisplay/AssetIdDataInterface.h>
  10. #include <Editor/GraphCanvas/DataInterfaces/ScriptCanvasDataInterface.h>
  11. #include <AzCore/Asset/AssetCommon.h>
  12. #include <AzCore/Slice/SliceAsset.h>
  13. #include <QWidget>
  14. #include <QMenu>
  15. #include <QAction>
  16. namespace ScriptCanvasEditor
  17. {
  18. class ScriptCanvasAssetIdDataInterface
  19. : public ScriptCanvasDataInterface<GraphCanvas::AssetIdDataInterface>
  20. {
  21. public:
  22. AZ_CLASS_ALLOCATOR(ScriptCanvasAssetIdDataInterface, AZ::SystemAllocator);
  23. ScriptCanvasAssetIdDataInterface(const AZ::EntityId& nodeId, const ScriptCanvas::SlotId& slotId)
  24. : ScriptCanvasDataInterface(nodeId, slotId)
  25. {
  26. }
  27. ~ScriptCanvasAssetIdDataInterface() = default;
  28. // AssetIdDataInterface
  29. AZ::Data::AssetId GetAssetId() const override
  30. {
  31. const ScriptCanvas::Datum* object = GetSlotObject();
  32. if (object)
  33. {
  34. const AZ::Data::AssetId* retVal = object->GetAs<AZ::Data::AssetId>();
  35. if (retVal)
  36. {
  37. return (*retVal);
  38. }
  39. }
  40. return AZ::Data::AssetId();
  41. }
  42. void SetAssetId(const AZ::Data::AssetId& assetId) override
  43. {
  44. ScriptCanvas::ModifiableDatumView datumView;
  45. ModifySlotObject(datumView);
  46. if (datumView.IsValid())
  47. {
  48. datumView.SetAs(assetId);
  49. PostUndoPoint();
  50. PropertyGridRequestBus::Broadcast(&PropertyGridRequests::RefreshPropertyGrid);
  51. }
  52. }
  53. AZ::Data::AssetType GetAssetType() const override
  54. {
  55. return AZ::Uuid::CreateNull(); //hardcoded until the slot definitions can be queried for this
  56. }
  57. AZStd::string GetStringFilter() const override
  58. {
  59. return "*.*"; // hardcoded until the slot definitions can be queried for this
  60. }
  61. };
  62. }