mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 08:49:05 +02:00
Merge pull request #16313 from RebeccaStankus/controllerSignals
Added flag to ensure mouse event signals are not connected twice
This commit is contained in:
commit
ad863a1cef
3 changed files with 49 additions and 38 deletions
|
@ -168,6 +168,8 @@ void EntityTreeRenderer::resetEntitiesScriptEngine() {
|
|||
entityScriptingInterface->setEntitiesScriptEngine(entitiesScriptEngineProvider);
|
||||
|
||||
// Connect mouse events to entity script callbacks
|
||||
if (!_mouseAndPreloadSignalHandlersConnected) {
|
||||
|
||||
connect(entityScriptingInterface.data(), &EntityScriptingInterface::mousePressOnEntity, _entitiesScriptEngine.data(), [&](const EntityItemID& entityID, const PointerEvent& event) {
|
||||
_entitiesScriptEngine->callEntityScriptMethod(entityID, "mousePressOnEntity", event);
|
||||
});
|
||||
|
@ -209,6 +211,9 @@ void EntityTreeRenderer::resetEntitiesScriptEngine() {
|
|||
entity->setScriptHasFinishedPreload(true);
|
||||
}
|
||||
});
|
||||
|
||||
_mouseAndPreloadSignalHandlersConnected = true;
|
||||
}
|
||||
}
|
||||
|
||||
void EntityTreeRenderer::stopDomainAndNonOwnedEntities() {
|
||||
|
|
|
@ -210,6 +210,8 @@ private:
|
|||
std::function<RayToEntityIntersectionResult(unsigned int)> _getPrevRayPickResultOperator;
|
||||
std::function<void(unsigned int, bool)> _setPrecisionPickingOperator;
|
||||
|
||||
bool _mouseAndPreloadSignalHandlersConnected { false };
|
||||
|
||||
class LayeredZone {
|
||||
public:
|
||||
LayeredZone(std::shared_ptr<ZoneEntityItem> zone) : zone(zone), id(zone->getID()), volume(zone->getVolumeEstimate()) {}
|
||||
|
|
|
@ -595,6 +595,10 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
|||
Controller.disableMapping(MAPPING_NAME);
|
||||
_this.pointerManager.removePointers();
|
||||
Pointers.removePointer(this.mouseRayPointer);
|
||||
Overlays.mouseReleaseOnOverlay.disconnect(mouseReleaseOnOverlay);
|
||||
Overlays.mousePressOnOverlay.disconnect(mousePress);
|
||||
Entities.mousePressOnEntity.disconnect(mousePress);
|
||||
Messages.messageReceived.disconnect(controllerDispatcher.handleMessage);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue