| 90 | } |
| 91 | |
| 92 | void Trigger::unregisterEnvironment(sol::environment environment) |
| 93 | { |
| 94 | Debug::Log->trace("<Trigger> Unregistering Lua Environment {0} from Trigger {1}", |
| 95 | environment.pointer(), m_fullName); |
| 96 | for (const TriggerEnv& triggerEnv : m_registeredEnvs) |
| 97 | { |
| 98 | if (triggerEnv.environment == environment) |
| 99 | { |
| 100 | if (m_onUnregisterCallback) |
| 101 | { |
| 102 | Debug::Log->trace("<Trigger> Calling onUnregister callback " |
| 103 | "of Trigger {0}", |
| 104 | m_fullName); |
| 105 | m_onUnregisterCallback(triggerEnv); |
| 106 | } |
| 107 | } |
| 108 | } |
| 109 | if (m_currentlyTriggered) |
| 110 | { |
| 111 | m_envsToRemove.push_back(environment); |
| 112 | } |
| 113 | else |
| 114 | { |
| 115 | m_registeredEnvs.erase( |
| 116 | std::remove_if(m_registeredEnvs.begin(), m_registeredEnvs.end(), |
| 117 | [&environment]( |
| 118 | TriggerEnv& env) { return env.environment == environment; }), |
| 119 | m_registeredEnvs.end()); |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | void Trigger::execute() |
| 124 | { |