<commit_before>#pragma once

#include <memory>
#include <string>
#include <Utility/LockBox.hpp>
#include <vector>
#include "../linking.hpp"
#include "SuperTrigger.hpp"


class Entity;
class TriggerManager;

namespace triggerEvent {
    struct EventStruct {
        int m_eventID = 0;
        int m_shapeID = 0;
        int m_targetID = 0;
        int m_scriptID = 0;
        bool check[4] = { false }; /// Simple check, should probably be replaced soon.
    };
}

namespace Physics {
    class Trigger;
}

/// %Trigger that can be executed multiple times.
class TriggerRepeat : public SuperTrigger {
    friend class ::TriggerManager;

    public:
        /// Constructor.
        ENGINE_API TriggerRepeat();

        /// Destructor.
        ENGINE_API ~TriggerRepeat();

        /// Setup the trigger to listen for `enter` events on the trigger
        /// volume, forgetting any previously set listener
        ENGINE_API void OnEnter();

        /// Setup the trigger to listen for `retain` events on the trigger
        /// volume, forgetting any previously set listener
        ENGINE_API void OnRetain();

        /// Setup the trigger to listen for `leave` events on the trigger
        /// volume, forgetting any previously set listener
        ENGINE_API void OnLeave();

        /// Get the name of the trigger.
        /**
         * @return The name of the trigger.
         */
        ENGINE_API const std::string& GetName() const;

        /// Set the name of the trigger.
        /**
         * @param value The name of the trigger.
         */
        ENGINE_API void SetName(std::string& value);

        /// Vector containing name of target functions.
        /**
         * @return Pointer to the vector containing name of target functions.
         */
        ENGINE_API std::vector<std::string> *GetTargetFunction();

        /// Get if the trigger starts active or not.
        /**
         * @return If the trigger starts active or not.
         */
        ENGINE_API bool GetStartActive();

        /// Set if the trigger starts active or not.
        /**
         * @param value If the trigger starts active or not.
         */
        ENGINE_API void SetStartActive(bool value);

        /// Get the delay before the trigger gets active.
        /**<commit_msg>Fix missing const in header.<commit_after>#pragma once

#include <memory>
#include <string>
#include <Utility/LockBox.hpp>
#include <vector>
#include "../linking.hpp"
#include "SuperTrigger.hpp"


class Entity;
class TriggerManager;

namespace triggerEvent {
    struct EventStruct {
        int m_eventID = 0;
        int m_shapeID = 0;
        int m_targetID = 0;
        int m_scriptID = 0;
        bool check[4] = { false }; /// Simple check, should probably be replaced soon.
    };
}

namespace Physics {
    class Trigger;
}

/// %Trigger that can be executed multiple times.
class TriggerRepeat : public SuperTrigger {
    friend class ::TriggerManager;

    public:
        /// Constructor.
        ENGINE_API TriggerRepeat();

        /// Destructor.
        ENGINE_API ~TriggerRepeat();

        /// Setup the trigger to listen for `enter` events on the trigger
        /// volume, forgetting any previously set listener
        ENGINE_API void OnEnter();

        /// Setup the trigger to listen for `retain` events on the trigger
        /// volume, forgetting any previously set listener
        ENGINE_API void OnRetain();

        /// Setup the trigger to listen for `leave` events on the trigger
        /// volume, forgetting any previously set listener
        ENGINE_API void OnLeave();

        /// Get the name of the trigger.
        /**
         * @return The name of the trigger.
         */
        ENGINE_API const std::string& GetName() const;

        /// Set the name of the trigger.
        /**
         * @param value The name of the trigger.
         */
        ENGINE_API void SetName(const std::string& value);

        /// Vector containing name of target functions.
        /**
         * @return Pointer to the vector containing name of target functions.
         */
        ENGINE_API std::vector<std::string> *GetTargetFunction();

        /// Get if the trigger starts active or not.
        /**
         * @return If the trigger starts active or not.
         */
        ENGINE_API bool GetStartActive();

        /// Set if the trigger starts active or not.
        /**
         * @param value If the trigger starts active or not.
         */
        ENGINE_API void SetStartActive(bool value);

        /// Get the delay before the trigger gets active.
        /**
{'fraction_non_alphanumeric': 0.09379760609357998, 'fraction_numerical': 0.002176278563656148, 'mean_word_length': 1.9941368078175896, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5508945', 'n_tokens_mistral': 1228, 'n_tokens_neox': 1167, 'n_words': 465}