| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #pragma once
- #include "DemoStatisticsNotifications.h"
- #include <AzCore/Component/Component.h>
- #include <AzCore/Component/EntityId.h>
- namespace AppleKraken
- {
- //! Component responsible for holding simulation statistics such as failed and picked apples, globally.
- class DemoStatisticsComponent
- : public AZ::Component
- , private DemoStatisticsNotificationBus::Handler
- {
- public:
- AZ_COMPONENT(DemoStatisticsComponent, "{C421B635-8B7A-479A-8617-86F5F1ACC4AE}");
- DemoStatisticsComponent() = default;
- ~DemoStatisticsComponent() = default;
- void Activate() override;
- void Deactivate() override;
- static void Reflect(AZ::ReflectContext* context);
- private:
- void DisplayNumberOfApples();
- void DisplayStatus();
- void AddApple(const AppleEvent& appleEvent) override;
- void OnApplePickerSpawned(const AZ::EntityId& entityId) override;
- void SetApplePickerStatus(const AZ::EntityId& entityId, const AZStd::string& status) override;
- bool HasTag(const AppleEvent& appleEvent, const AZStd::string& tag);
- bool IsFailed(const Tags& tags);
- bool IsAutomated(const Tags& tags);
- void UpdateTextField(const AZStd::string& fieldName, const AZStd::string& label, uint16_t counter, bool labelOnly = false);
- const AZStd::string m_appleGatheredElementName = "ApplesGathered";
- const AZStd::string m_appleFailedElementName = "ApplesFailed";
- const AZStd::string m_applePickerCountElementName = "ApplePickerCount";
- const AZStd::string m_applePickerStatusElementName = "ApplePickerStatus";
- AZ::EntityId m_uiEntity;
- struct ApplePickerStatus
- {
- AZ::EntityId m_entityId;
- AZStd::string m_status;
- };
- AZStd::list<ApplePickerStatus> m_applePickerStatus;
- uint16_t m_applesGathered = 0;
- uint16_t m_applesFailed = 0;
- };
- } // namespace AppleKraken
|