| 129 | } |
| 130 | |
| 131 | bool EffekNode::update(double deltaTime) { |
| 132 | if (!_effeks.empty()) { |
| 133 | auto instance = SharedEffekManager.instance->efkManager.Get(); |
| 134 | auto it = std::remove_if(_effeks.begin(), _effeks.end(), [&](const Own<RunningEff>& effek) { |
| 135 | return !instance->Exists(effek->handle); |
| 136 | }); |
| 137 | if (it != _effeks.end()) { |
| 138 | for (auto tmpIt = it; tmpIt != _effeks.end(); ++tmpIt) { |
| 139 | EventArgs<int> event("EffekEnd"_slice, tmpIt->get()->handle); |
| 140 | emit(&event); |
| 141 | } |
| 142 | _effeks.erase(it, _effeks.end()); |
| 143 | } |
| 144 | } |
| 145 | return Node::update(deltaTime); |
| 146 | } |
| 147 | |
| 148 | void EffekNode::render() { |
| 149 | if (_effeks.empty()) { |