2 Commits

3 changed files with 11 additions and 6 deletions

View File

@@ -1,3 +1,7 @@
## v1.2.4
### Bugfix
- Fixed a race condition that may cause doors to not be properly synchronized across scenes
## v1.2.3
### Other
- Smart Doors is now compatible with Arms Reach

View File

@@ -2,7 +2,7 @@
"name": "smart-doors",
"title": "Smart Doors",
"description": "Makes doors smarter. Allows doors to synchronize across multiple scenes and sends chat messages when players try to open locked doors.",
"version": "1.2.3",
"version": "1.2.4",
"minimumCoreVersion" : "0.7.7",
"compatibleCoreVersion" : "0.7.9",
"authors": [
@@ -24,7 +24,7 @@
],
"url": "https://github.com/manuelVo/foundryvtt-smart-doors",
"manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-smart-doors/master/module.json",
"download": "https://github.com/manuelVo/foundryvtt-smart-doors/archive/v1.2.3.zip",
"download": "https://github.com/manuelVo/foundryvtt-smart-doors/archive/v1.2.4.zip",
"readme": "https://github.com/manuelVo/foundryvtt-smart-doors/blob/master/README.md",
"changelog": "https://github.com/manuelVo/foundryvtt-smart-doors/blob/master/CHANGELOG.md",
"bugs": "https://github.com/manuelVo/foundryvtt-smart-doors/issues"

View File

@@ -121,12 +121,13 @@ export function onDoorRightClick() {
}
// Updates all doors in the specified synchronization group with the provided data
function updateSynchronizedDoors(updateData, synchronizationGroup) {
async function updateSynchronizedDoors(updateData, synchronizationGroup) {
// Search for doors belonging to the synchronization group in all scenes
let scenes = Util.filterAllWalls(wall => wall.door && wall.flags.smartdoors?.synchronizationGroup === synchronizationGroup);
// Update all doors in the synchronization group
scenes.forEach((scene) => {
scene.scene.updateEmbeddedEntity("Wall", scene.walls.map((wall) => {return {_id: wall._id, ...updateData}}))
})
for (const scene of scenes) {
// When VFTT 0.8 is out look for a way to do this in a single call.
await scene.scene.updateEmbeddedEntity("Wall", scene.walls.map((wall) => {return {_id: wall._id, ...updateData}}))
}
}