Merge pull request #151 from argonui/location-snap-tags

Option: Location snap tags for play area
This commit is contained in:
Chr1Z 2023-01-04 10:04:39 +01:00 committed by GitHub
commit 98b2298f71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1023 additions and 442 deletions

View File

@ -56,446 +56,6 @@
"z": 0 "z": 0
} }
}, },
{
"Position": {
"x": -43.37,
"y": 1.647,
"z": 15.19
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -43.37,
"y": 1.644,
"z": 7.57
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -43.37,
"y": 1.642,
"z": -0.03
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -43.37,
"y": 1.64,
"z": -7.7
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -43.37,
"y": 1.638,
"z": -15.28
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -36.773,
"y": 1.629,
"z": -15.28
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -36.773,
"y": 1.631,
"z": -7.7
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -36.773,
"y": 1.633,
"z": -0.03
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -36.773,
"y": 1.635,
"z": 7.57
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -36.773,
"y": 1.638,
"z": 15.19
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -30.224,
"y": 1.628,
"z": 15.19
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -30.224,
"y": 1.626,
"z": 7.57
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -30.224,
"y": 1.624,
"z": -0.03
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -30.224,
"y": 1.622,
"z": -7.7
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -30.224,
"y": 1.62,
"z": -15.28
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -23.677,
"y": 1.61,
"z": -15.28
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -23.677,
"y": 1.613,
"z": -7.7
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -23.677,
"y": 1.615,
"z": -0.03
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -23.677,
"y": 1.617,
"z": 7.57
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -23.677,
"y": 1.619,
"z": 15.19
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -17.12,
"y": 1.611,
"z": 15.19
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -17.12,
"y": 1.608,
"z": 7.57
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -17.12,
"y": 1.606,
"z": -0.03
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -17.12,
"y": 1.603,
"z": -7.7
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -17.12,
"y": 1.602,
"z": -15.28
},
"Rotation": {
"x": 0,
"y": 270,
"z": 0
}
},
{
"Position": {
"x": -43.37,
"y": 1.645,
"z": 11.46
}
},
{
"Position": {
"x": -43.37,
"y": 1.643,
"z": 3.86
}
},
{
"Position": {
"x": -43.37,
"y": 1.641,
"z": -3.83
}
},
{
"Position": {
"x": -43.37,
"y": 1.639,
"z": -11.51
}
},
{
"Position": {
"x": -36.773,
"y": 1.631,
"z": -11.51
}
},
{
"Position": {
"x": -36.773,
"y": 1.632,
"z": -3.83
}
},
{
"Position": {
"x": -36.773,
"y": 1.634,
"z": 3.86
}
},
{
"Position": {
"x": -36.773,
"y": 1.636,
"z": 11.46
}
},
{
"Position": {
"x": -30.224,
"y": 1.626,
"z": 11.46
}
},
{
"Position": {
"x": -30.224,
"y": 1.625,
"z": 3.86
}
},
{
"Position": {
"x": -30.224,
"y": 1.623,
"z": -3.83
}
},
{
"Position": {
"x": -30.224,
"y": 1.621,
"z": -11.51
}
},
{
"Position": {
"x": -23.677,
"y": 1.612,
"z": -11.51
}
},
{
"Position": {
"x": -23.677,
"y": 1.614,
"z": -3.83
}
},
{
"Position": {
"x": -23.677,
"y": 1.616,
"z": 3.86
}
},
{
"Position": {
"x": -23.677,
"y": 1.619,
"z": 11.46
}
},
{
"Position": {
"x": -17.12,
"y": 1.609,
"z": 11.46
}
},
{
"Position": {
"x": -17.12,
"y": 1.607,
"z": 3.86
}
},
{
"Position": {
"x": -17.12,
"y": 1.605,
"z": -3.83
}
},
{
"Position": {
"x": -17.12,
"y": 1.603,
"z": -11.51
}
},
{ {
"Position": { "Position": {
"x": 22.951, "x": 22.951,

View File

@ -156,6 +156,9 @@
} }
}, },
"Sticky": true, "Sticky": true,
"Tags": [
"Location"
],
"Tooltip": true, "Tooltip": true,
"Transform": { "Transform": {
"posX": -50.369, "posX": -50.369,

View File

@ -1 +1 @@
{"optionPanel":{"showAttachmentHelper":false,"showChaosBagManager":false,"showCleanUpHelper":false,"useClueClickers":false,"showCustomPlaymatImages":false,"showCYOA":false,"showDisplacementTool":false,"showDrawButton":false,"showHandHelper":[],"showNavigationOverlay":false,"useSnapTags":true,"showTitleSplash":true,"showTokenArranger":false}} {"optionPanel":{"playAreaSnapTags":true,"showAttachmentHelper":false,"showChaosBagManager":false,"showCleanUpHelper":false,"useClueClickers":false,"showCustomPlaymatImages":false,"showCYOA":false,"showDisplacementTool":false,"showDrawButton":false,"showHandHelper":[],"showNavigationOverlay":false,"useSnapTags":true,"showTitleSplash":true,"showTokenArranger":false}}

View File

@ -4,6 +4,943 @@
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
"AttachedSnapPoints": [
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": -1.09
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": -0.43
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": 0.23
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": 0.89
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.53,
"y": 0.1,
"z": 1.55
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": -1.09
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": -0.43
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": 0.23
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": 0.89
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 1.148,
"y": 0.1,
"z": 1.55
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": -1.09
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": -0.43
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": 0.23
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": 0.89
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.765,
"y": 0.1,
"z": 1.55
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": -1.09
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": -0.43
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": 0.23
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": 0.89
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0.383,
"y": 0.1,
"z": 1.55
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": -1.09
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": -0.43
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": 0.23
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": 0.89
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": 0,
"y": 0.1,
"z": 1.55
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": -1.09
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": -0.43
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": 0.23
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": 0.89
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.383,
"y": 0.1,
"z": 1.55
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": -1.09
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": -0.43
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": 0.23
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": 0.89
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -0.765,
"y": 0.1,
"z": 1.55
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": -1.09
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": -0.43
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": 0.23
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": 0.89
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.148,
"y": 0.1,
"z": 1.55
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": -1.09
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": -0.76
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": -0.43
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": -0.1
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": 0.23
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": 0.56
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": 0.89
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": 1.22
},
"Tags": [
"Location"
]
},
{
"Position": {
"x": -1.53,
"y": 0.1,
"z": 1.55
},
"Rotation": {
"x": 0,
"y": 0,
"z": 0
},
"Tags": [
"Location"
]
}
],
"Autoraise": true, "Autoraise": true,
"ColorDiffuse": { "ColorDiffuse": {
"b": 1, "b": 1,
@ -34,7 +971,7 @@
"LayoutGroupSortIndex": 0, "LayoutGroupSortIndex": 0,
"Locked": true, "Locked": true,
"LuaScript": "require(\"core/PlayArea\")", "LuaScript": "require(\"core/PlayArea\")",
"LuaScriptState": "[]", "LuaScriptState": "{\"trackedLocations\":[]}",
"MeasureMovement": false, "MeasureMovement": false,
"Name": "Custom_Token", "Name": "Custom_Token",
"Nickname": "Playarea", "Nickname": "Playarea",

View File

@ -35,6 +35,7 @@ local bagSearchers = {}
local hideTitleSplashWaitFunctionId = nil local hideTitleSplashWaitFunctionId = nil
local playmatAPI = require("playermat/PlaymatApi") local playmatAPI = require("playermat/PlaymatApi")
local tokenManager = require("core/token/TokenManager") local tokenManager = require("core/token/TokenManager")
local playAreaAPI = require("core/PlayAreaApi")
--------------------------------------------------------- ---------------------------------------------------------
-- data for tokens -- data for tokens
@ -822,6 +823,11 @@ function applyOptionPanelChange(id, state)
elseif id == "useResourceCounters" then elseif id == "useResourceCounters" then
optionPanel[id] = state optionPanel[id] = state
-- option: Play area snap tags
elseif id == "playAreaSnapTags" then
playAreaAPI.setLimitSnapsByType(state)
optionPanel[id] = state
-- option: Show Title on placing scenarios -- option: Show Title on placing scenarios
elseif id == "showTitleSplash" then elseif id == "showTitleSplash" then
optionPanel[id] = state optionPanel[id] = state
@ -967,6 +973,7 @@ function onClick_defaultSettings()
-- clean reset of variable -- clean reset of variable
optionPanel = { optionPanel = {
playAreaSnapTags = true,
showAttachmentHelper = false, showAttachmentHelper = false,
showCleanUpHelper = false, showCleanUpHelper = false,
showChaosBagManager = false, showChaosBagManager = false,

View File

@ -449,3 +449,56 @@ end
function showLocationLinks() function showLocationLinks()
return not LOC_LINK_EXCLUDE_SCENARIOS[currentScenario] return not LOC_LINK_EXCLUDE_SCENARIOS[currentScenario]
end end
-- Sets this playmat's snap points to limit snapping to locations or not.
-- If matchTypes is false, snap points will be reset to snap all cards.
---@param matchTypes Boolean Whether snap points should only snap for the matching card types.
function setLimitSnapsByType(matchTypes)
local snaps = self.getSnapPoints()
for i, snap in ipairs(snaps) do
local snapTags = snaps[i].tags
if matchTypes then
if snapTags == nil then
snaps[i].tags = { "Location" }
else
table.insert(snaps[i].tags, "Location")
end
else
snaps[i].tags = nil
end
end
self.setSnapPoints(snaps)
end
-- rebuilds local snap points (could be useful in the future again)
function buildSnaps()
local upperleft = { x = 1.53, z = -1.09}
local lowerright = {x = -1.53, z = 1.55}
local snaps = {}
-- creates 81 snap points, for uneven rows + columns it makes a rotation snap point
for i = 1, 9 do
for j = 1, 9 do
local snap = {}
snap.position = {}
snap.position.x = round(upperleft.x - (upperleft.x - lowerright.x) * (i - 1) / 8, 3)
snap.position.y = 0.1
snap.position.z = round(upperleft.z - (upperleft.z - lowerright.z) * (j - 1) / 8, 3)
-- enable rotation snaps for uneven rows / columns
if (i % 2 ~= 0) and (j % 2 ~= 0) then
snap.rotation = {0, 0, 0}
snap.rotation_snap = true
end
table.insert(snaps, snap)
end
end
self.setSnapPoints(snaps)
end
-- utility function
function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end

View File

@ -41,5 +41,12 @@ do
getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName)
end end
-- Sets this playmat's snap points to limit snapping to locations or not.
-- If matchTypes is false, snap points will be reset to snap all cards.
---@param matchTypes Boolean Whether snap points should only snap for the matching card types.
PlayAreaApi.setLimitSnapsByType = function(matchCardTypes)
getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes)
end
return PlayAreaApi return PlayAreaApi
end end

View File

@ -142,6 +142,20 @@
</Cell> </Cell>
</Row> </Row>
<!-- Option: play area snap tags -->
<Row class="option-text">
<Cell class="option-text">
<VerticalLayout class="text-column">
<Text class="option-header">Enable snap tags for play area</Text>
<Text class="description">Only cards with the tag "Location" will snap (official cards are supported by default). Disable this if you are having issues with custom content.</Text>
</VerticalLayout>
</Cell>
<Cell class="option-button">
<Toggle id="playAreaSnapTags"
onValueChanged="onClick_toggleOption(playAreaSnapTags)"/>
</Cell>
</Row>
<!-- Option: use clickable resource counters --> <!-- Option: use clickable resource counters -->
<Row class="option-text"> <Row class="option-text">
<Cell class="option-text"> <Cell class="option-text">