mirror of
https://github.com/redphx/better-xcloud.git
synced 2025-06-07 08:07:18 +02:00
Test new structure
This commit is contained in:
parent
e4c1e74bd5
commit
415b880e31
7
touch-layouts/dev/1610974574.json
Normal file
7
touch-layouts/dev/1610974574.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "Cocoon",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"cocoon"
|
||||||
|
]
|
||||||
|
}
|
@ -1,284 +1,7 @@
|
|||||||
{
|
{
|
||||||
"schema_version": 2,
|
|
||||||
"name": "Palworld",
|
"name": "Palworld",
|
||||||
"default_layout": "type-a",
|
"default_layout": "custom",
|
||||||
"layouts": {
|
"layouts": [
|
||||||
"type-a": {
|
"palworld"
|
||||||
"name": "Type A",
|
|
||||||
"content": {
|
|
||||||
"left": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "leftJoystick",
|
|
||||||
"deadzone": {
|
|
||||||
"threshold": 0.01,
|
|
||||||
"radial": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"action": "leftThumb",
|
|
||||||
"actionThreshold": 2,
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"knob": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "walk"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"activated": {
|
|
||||||
"knob": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "run"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
null,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "leftJoystick",
|
|
||||||
"deadzone": {
|
|
||||||
"threshold": -0.3,
|
|
||||||
"radial": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"action": "rightTrigger",
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"knob": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "rightTrigger"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
null
|
|
||||||
],
|
|
||||||
{
|
|
||||||
"type": "directionalPad",
|
|
||||||
"scale": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "rightThumb"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "touchpad",
|
|
||||||
"axis": [
|
|
||||||
{
|
|
||||||
"input": "axisX",
|
|
||||||
"output": "leftJoystickX",
|
|
||||||
"sensitivity": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "axisY",
|
|
||||||
"output": "leftJoystickY",
|
|
||||||
"sensitivity": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"renderAsButton": true,
|
|
||||||
"action": [
|
|
||||||
"leftBumper"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "touchpad",
|
|
||||||
"axis": [
|
|
||||||
{
|
|
||||||
"input": "axisX",
|
|
||||||
"output": "leftJoystickX",
|
|
||||||
"sensitivity": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "axisY",
|
|
||||||
"output": "leftJoystickY",
|
|
||||||
"sensitivity": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"renderAsButton": true,
|
|
||||||
"action": [
|
|
||||||
"rightBumper"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "touchpad",
|
|
||||||
"axis": [
|
|
||||||
{
|
|
||||||
"input": "axisX",
|
|
||||||
"output": "leftJoystickX",
|
|
||||||
"sensitivity": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "axisY",
|
|
||||||
"output": "leftJoystickY",
|
|
||||||
"sensitivity": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"renderAsButton": true,
|
|
||||||
"action": [
|
|
||||||
"leftTrigger"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
|
||||||
},
|
|
||||||
"right": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "rightJoystick",
|
|
||||||
"deadzone": {
|
|
||||||
"threshold": 0.01,
|
|
||||||
"radial": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"knob": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "look"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "leftTrigger",
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "aim"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"toggle": true
|
|
||||||
},
|
|
||||||
null
|
|
||||||
],
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadB",
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "roll"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadA",
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "jump"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "blank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "touchpad",
|
|
||||||
"axis": [
|
|
||||||
{
|
|
||||||
"input": "axisX",
|
|
||||||
"output": "rightJoystickX",
|
|
||||||
"sensitivity": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "axisY",
|
|
||||||
"output": "rightJoystickY",
|
|
||||||
"sensitivity": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"renderAsButton": true,
|
|
||||||
"action": [
|
|
||||||
"rightTrigger",
|
|
||||||
"leftTrigger"
|
|
||||||
],
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "fire"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadX",
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "reload"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadY",
|
|
||||||
"styles": {
|
|
||||||
"default": {
|
|
||||||
"faceImage": {
|
|
||||||
"type": "icon",
|
|
||||||
"value": "weaponSelect"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"upper": {
|
|
||||||
"right": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "menu"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "view"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sensors": [
|
|
||||||
{
|
|
||||||
"type": "gyroscope",
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "rightJoystick",
|
|
||||||
"sensitivity": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
7
touch-layouts/dev/1985701699.json
Normal file
7
touch-layouts/dev/1985701699.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "Forza Horizon 4",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"forza-horizon-4-5"
|
||||||
|
]
|
||||||
|
}
|
7
touch-layouts/dev/1994003829.json
Normal file
7
touch-layouts/dev/1994003829.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "FIFA 23 (Xbox One)",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"fifa"
|
||||||
|
]
|
||||||
|
}
|
@ -1,280 +1,7 @@
|
|||||||
{
|
{
|
||||||
"schema_version": 2,
|
|
||||||
"name": "Brotato",
|
"name": "Brotato",
|
||||||
"default_layout": "one-handed-left",
|
"default_layout": "one-handed-left",
|
||||||
"layouts": {
|
"layouts": [
|
||||||
"one-handed-left": {
|
"brotato"
|
||||||
"name": "One-handed (Left)",
|
|
||||||
"content": {
|
|
||||||
"left": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"relative": false,
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "leftJoystick"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
null,
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadA",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "directionalPad",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "leftBumper",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadB",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"upper": {
|
|
||||||
"right": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "menu"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
|
||||||
"one-handed-right": {
|
|
||||||
"name": "One-handed (Right)",
|
|
||||||
"content": {
|
|
||||||
"right": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"relative": false,
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "leftJoystick"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadB",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "rightBumper",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "directionalPad",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadA",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"upper": {
|
|
||||||
"right": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "menu"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"simplified": {
|
|
||||||
"name": "Simplified",
|
|
||||||
"content": {
|
|
||||||
"left": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"relative": false,
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "leftJoystick"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "directionalPad",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"right": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadA"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
{
|
|
||||||
"type": "blank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadB"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"upper": {
|
|
||||||
"right": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "menu"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "rightBumper"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"simplified-full": {
|
|
||||||
"name": "Simplified (2 joysticks)",
|
|
||||||
"content": {
|
|
||||||
"left": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"relative": false,
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "leftJoystick"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "directionalPad",
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"right": {
|
|
||||||
"inner": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadA"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outer": [
|
|
||||||
{
|
|
||||||
"type": "blank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "gamepadB"
|
|
||||||
},
|
|
||||||
null,
|
|
||||||
{
|
|
||||||
"type": "blank"
|
|
||||||
},
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"type": "joystick",
|
|
||||||
"axis": {
|
|
||||||
"input": "axisXY",
|
|
||||||
"output": "rightJoystick"
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"idle": {
|
|
||||||
"knob": {
|
|
||||||
"opacity": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"upper": {
|
|
||||||
"right": [
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "menu"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "button",
|
|
||||||
"action": "rightBumper"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
7
touch-layouts/dev/2030093255.json
Normal file
7
touch-layouts/dev/2030093255.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "Forza Horizon 5",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"forza-horizon-4-5"
|
||||||
|
]
|
||||||
|
}
|
7
touch-layouts/dev/2071676002.json
Normal file
7
touch-layouts/dev/2071676002.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "FIFA 23 (Xbox Series)",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"fifa"
|
||||||
|
]
|
||||||
|
}
|
7
touch-layouts/dev/2122751230.json
Normal file
7
touch-layouts/dev/2122751230.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "A Short Hike",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"a-short-hike"
|
||||||
|
]
|
||||||
|
}
|
7
touch-layouts/dev/2136524032.json
Normal file
7
touch-layouts/dev/2136524032.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "Chicory",
|
||||||
|
"default_layout": "custom",
|
||||||
|
"layouts": [
|
||||||
|
"chicory"
|
||||||
|
]
|
||||||
|
}
|
7
touch-layouts/dev/374621264.json
Normal file
7
touch-layouts/dev/374621264.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "RESIDENT EVIL 2",
|
||||||
|
"default_layout": "type-a",
|
||||||
|
"layouts": [
|
||||||
|
"resident-evil-2"
|
||||||
|
]
|
||||||
|
}
|
7
touch-layouts/dev/918284490.json
Normal file
7
touch-layouts/dev/918284490.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "RESIDENT EVIL 2 (JP Z Version)",
|
||||||
|
"default_layout": "type-a",
|
||||||
|
"layouts": [
|
||||||
|
"resident-evil-2"
|
||||||
|
]
|
||||||
|
}
|
50
touch-layouts/dev/layouts/a-short-hike.json
Normal file
50
touch-layouts/dev/layouts/a-short-hike.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"custom": {
|
||||||
|
"name": "Custom",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadX"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
294
touch-layouts/dev/layouts/brotato.json
Normal file
294
touch-layouts/dev/layouts/brotato.json
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"one-handed-left": {
|
||||||
|
"name": "One-handed (Left)",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"relative": false,
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA",
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"scale": 1.2,
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftBumper",
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB",
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"one-handed-right": {
|
||||||
|
"name": "One-handed (Right)",
|
||||||
|
"content": {
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"relative": false,
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB",
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightBumper",
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"scale": 1.2,
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA",
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"simplified": {
|
||||||
|
"name": "Simplified",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"relative": false,
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"scale": 1.2,
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightBumper"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"simplified-full": {
|
||||||
|
"name": "Simplified (2 joysticks)",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"relative": false,
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"scale": 1.2,
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"idle": {
|
||||||
|
"knob": {
|
||||||
|
"opacity": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightBumper"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
193
touch-layouts/dev/layouts/chicory.json
Normal file
193
touch-layouts/dev/layouts/chicory.json
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"custom": {
|
||||||
|
"name": "Custom",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"relative": false,
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"outline": {
|
||||||
|
"stroke": {
|
||||||
|
"type": "solid",
|
||||||
|
"color": "#ff0000aa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"knob": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"type": "solid",
|
||||||
|
"color": "#ff0000aa"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightBumper",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightTrigger",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"fill": "#ff000033",
|
||||||
|
"stroke": {
|
||||||
|
"type": "solid",
|
||||||
|
"color": "#ff0000aa"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightThumb",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftTrigger",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftBumper",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadX"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.05,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"outline": {
|
||||||
|
"stroke": {
|
||||||
|
"type": "solid",
|
||||||
|
"color": "#ff0000aa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"knob": {
|
||||||
|
"background": {
|
||||||
|
"type": "color",
|
||||||
|
"value": "#ff000033"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"type": "solid",
|
||||||
|
"color": "#ff0000aa"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "view"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
42
touch-layouts/dev/layouts/cocoon.json
Normal file
42
touch-layouts/dev/layouts/cocoon.json
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"custom": {
|
||||||
|
"name": "Custom",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
173
touch-layouts/dev/layouts/fifa.json
Normal file
173
touch-layouts/dev/layouts/fifa.json
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"custom": {
|
||||||
|
"name": "Custom",
|
||||||
|
"content": {
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"expand": false,
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.05,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": [
|
||||||
|
{
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": "rightBumper",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "rightBumper"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"expand": false,
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.05,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"action": "rightTrigger",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "rightTrigger"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"scale": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftThumb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightThumb"
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": [
|
||||||
|
{
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": "leftBumper",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "leftBumper"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadX"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftTrigger"
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.05,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "view"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
244
touch-layouts/dev/layouts/forza-horizon-4-5.json
Normal file
244
touch-layouts/dev/layouts/forza-horizon-4-5.json
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"custom": {
|
||||||
|
"name": "Custom",
|
||||||
|
"content": {
|
||||||
|
"layers": {
|
||||||
|
"dPadDisplay": {
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"scale": 1.75,
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.1,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "steering"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftBumper"
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightThumb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.1,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"relative": false,
|
||||||
|
"expand": false,
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "switchCamera"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outline": {
|
||||||
|
"opacity": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightBumper"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": {
|
||||||
|
"type": "layer",
|
||||||
|
"target": "dPadDisplay"
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "dPad"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftThumb"
|
||||||
|
},
|
||||||
|
null
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightTrigger",
|
||||||
|
"pullAction": "gamepadA",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "gasPedal"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "add"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "handbrake2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftTrigger",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "brakePedal"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadX",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "subtract"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadY",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "repeatRefresh"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "view"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
333
touch-layouts/dev/layouts/palworld.json
Normal file
333
touch-layouts/dev/layouts/palworld.json
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"custom": {
|
||||||
|
"name": "Custom",
|
||||||
|
"content": {
|
||||||
|
"layers": {
|
||||||
|
"EnableGyro": {
|
||||||
|
"sensors": [
|
||||||
|
{
|
||||||
|
"type": "gyroscope",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"sensitivity": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.01,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"action": "leftThumb",
|
||||||
|
"actionThreshold": 2,
|
||||||
|
"expand": false,
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "walk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"activated": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "run"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": -0.3,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
"rightTrigger",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "rightTrigger"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"scale": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightThumb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
"leftBumper",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "leftBumper"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
"rightBumper",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "rightBumper"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
"leftTrigger",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "leftTrigger"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.01,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "look"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": [
|
||||||
|
"leftTrigger",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "aim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"toggle": true
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "roll"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "jump"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "touchpad",
|
||||||
|
"axis": [
|
||||||
|
{
|
||||||
|
"input": "axisX",
|
||||||
|
"output": "rightJoystickX",
|
||||||
|
"sensitivity": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "axisY",
|
||||||
|
"output": "rightJoystickY",
|
||||||
|
"sensitivity": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renderAsButton": true,
|
||||||
|
"action": [
|
||||||
|
"rightTrigger",
|
||||||
|
"leftTrigger",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "fire"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadX",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "reload"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadY",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "weaponSelect"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "view"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
250
touch-layouts/dev/layouts/resident-evil-2.json
Normal file
250
touch-layouts/dev/layouts/resident-evil-2.json
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"layouts": {
|
||||||
|
"type-a": {
|
||||||
|
"name": "Type A",
|
||||||
|
"content": {
|
||||||
|
"layers": {
|
||||||
|
"EnableGyro": {
|
||||||
|
"sensors": [
|
||||||
|
{
|
||||||
|
"type": "gyroscope",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"sensitivity": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"AimTouchpad": {
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "touchpad",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"sensitivity": 2
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "aim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.01,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expand": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
"leftBumper",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "leftBumper"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "leftJoystick"
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
"leftTrigger",
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "EnableGyro"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "layer",
|
||||||
|
"target": "AimTouchpad"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"knob": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "leftTrigger"
|
||||||
|
},
|
||||||
|
"stroke": {
|
||||||
|
"opacity": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightThumb"
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "rightBumper"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
null
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"inner": [
|
||||||
|
{
|
||||||
|
"type": "joystick",
|
||||||
|
"axis": {
|
||||||
|
"input": "axisXY",
|
||||||
|
"output": "rightJoystick",
|
||||||
|
"deadzone": {
|
||||||
|
"threshold": 0.01,
|
||||||
|
"radial": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outer": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadY",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "inventory"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadA"
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "leftThumb",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "run"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"type": "directionalPad",
|
||||||
|
"interaction": {
|
||||||
|
"activationType": "exclusive"
|
||||||
|
},
|
||||||
|
"scale": 1.2
|
||||||
|
},
|
||||||
|
null
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"type": "touchpad",
|
||||||
|
"axis": [
|
||||||
|
{
|
||||||
|
"input": "axisX",
|
||||||
|
"output": "rightJoystickX",
|
||||||
|
"sensitivity": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "axisY",
|
||||||
|
"output": "rightJoystickY",
|
||||||
|
"sensitivity": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renderAsButton": true,
|
||||||
|
"action": "rightTrigger"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "gamepadX",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "reload"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upper": {
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "menu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "button",
|
||||||
|
"action": "view",
|
||||||
|
"styles": {
|
||||||
|
"default": {
|
||||||
|
"faceImage": {
|
||||||
|
"type": "icon",
|
||||||
|
"value": "map"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user