Showing the changes to examples/example/scripts/controllerScriptingExamples.js (1 of 1 file). Show all
Unified · Split
| @@ -0,0 +1,94 @@ | |||
| 1 | // | ||
| 2 | // controllerScriptingExamples.js | ||
| 3 | // examples | ||
| 4 | // | ||
| 5 | // Created by Sam Gondelman on 6/2/15 | ||
| 6 | // Copyright 2015 High Fidelity, Inc. | ||
| 7 | // | ||
| 8 | // Distributed under the Apache License, Version 2.0. | ||
| 9 | // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html | ||
| 10 | // | ||
| 11 | |||
| 12 | // Resets every device to its default key bindings: | ||
| 13 | Controller.resetAllDeviceBindings() | ||
| 14 | |||
| 15 | // Query all actions | ||
| 16 | print("All Actions: \n" + Controller.getAllActions()) | ||
| 17 | |||
| 18 | // Each action stores: | ||
| 19 | // action: int representation of enum | ||
| 20 | print("Action 5 int: \n" + Controller.getAllActions()[5].action) | ||
| 21 | |||
| 22 | // actionName: string representation of enum | ||
| 23 | print("Action 5 name: \n" + Controller.getAllActions()[5].actionName) | ||
| 24 | |||
| 25 | // inputChannels: list of all inputchannels that control that action | ||
| 26 | print("Action 5 input channels: \n" + Controller.getAllActions()[5].inputChannels + "\n") | ||
| 27 | |||
| 28 | |||
| 29 | // Each input channel stores: | ||
| 30 | // action: Action that this InputChannel maps to | ||
| 31 | print("Input channel action: \n" + Controller.getAllActions()[5].inputChannels[0].action) | ||
| 32 | |||
| 33 | // scale: sensitivity of input | ||
| 34 | print("Input channel scale: \n" + Controller.getAllActions()[5].inputChannels[0].scale) | ||
| 35 | |||
| 36 | // input and modifier: Inputs | ||
| 37 | print("Input channel input and modifier: \n" + Controller.getAllActions()[5].inputChannels[0].input + "\n" + Controller.getAllActions()[5].inputChannels[0].modifier + "\n") | ||
| 38 | |||
| 39 | |||
| 40 | // Each Input stores: | ||
| 41 | // device: device of input | ||
| 42 | print("Input device: \n" + Controller.getAllActions()[5].inputChannels[0].input.device) | ||
| 43 | |||
| 44 | // channel: channel of input | ||
| 45 | print("Input channel: \n" + Controller.getAllActions()[5].inputChannels[0].input.channel) | ||
| 46 | |||
| 47 | // type: type of input (Unknown, Button, Axis, Joint) | ||
| 48 | print("Input type: \n" + Controller.getAllActions()[5].inputChannels[0].input.type) | ||
| 49 | |||
| 50 | // id: id of input | ||
| 51 | print("Input id: \n" + Controller.getAllActions()[5].inputChannels[0].input.id + "\n") | ||
| 52 | |||
| 53 | |||
| 54 | // You can get the name of a device from its id | ||
| 55 | print("Device 1 name: \n" + Controller.getDeviceName(Controller.getAllActions()[5].inputChannels[0].input.id)) | ||
| 56 | |||
| 57 | // You can also get all of a devices input channels | ||
| 58 | print("Device 1's input channels: \n" + Controller.getAllInputsForDevice(1) + "\n") | ||
| 59 | |||
| 60 | |||
| 61 | // Modifying properties: | ||
| 62 | // The following code will switch the "w" and "s" key functionality and adjust their scales | ||
| 63 | var s = Controller.getAllActions()[0].inputChannels[0] | ||
| 64 | var w = Controller.getAllActions()[1].inputChannels[0] | ||
| 65 | |||
| 66 | // You must remove an input controller before modifying it so the old input controller isn't registered anymore | ||
| 67 | // removeInputChannel and addInputChannel return true if successful, false otherwise | ||
| 68 | Controller.removeInputChannel(s) | ||
| 69 | Controller.removeInputChannel(w) | ||
| 70 | print(s.scale) | ||
| 71 | s.action = 1 | ||
| 72 | s.scale = .01 | ||
| 73 | |||
| 74 | w.action = 0 | ||
| 75 | w.scale = 10000 | ||
| 76 | Controller.addInputChannel(s) | ||
| 77 | Controller.addInputChannel(w) | ||
| 78 | print(s.scale) | ||
| 79 | |||
| 80 | // You can get all the available inputs for any device | ||
| 81 | // Each AvailableInput has: | ||
| 82 | // input: the Input itself | ||
| 83 | // inputName: string representing the input | ||
| 84 | var availableInputs = Controller.getAvailableInputs(1) | ||
| 85 | for (i = 0; i < availableInputs.length; i++) { | ||
| 86 | print(availableInputs[i].inputName); | ||
| 87 | } | ||
| 88 | |||
| 89 | // You can modify key bindings by using these avaiable inputs | ||
| 90 | // This will replace e (up) with 6 | ||
| 91 | var e = Controller.getAllActions()[5].inputChannels[0] | ||
| 92 | Controller.removeInputChannel(e) | ||
| 93 | e.input = availableInputs[6].input | ||
| 94 | Controller.addInputChannel(e) | ||