openfl
Version:
A fast, productive library for 2D cross-platform development.
100 lines (84 loc) • 3.36 kB
JavaScript
// Class: lime.ui.Joystick
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../hxClasses_stub").default;
var $hxEnums = require("./../../hxEnums_stub").default;
var $import = require("./../../import_stub").default;
function haxe_ds_IntMap() {return require("./../../haxe/ds/IntMap");}
function lime_app__$Event_$lime_$ui_$Joystick_$Void() {return require("./../../lime/app/_Event_lime_ui_Joystick_Void");}
function haxe_CallStack() {return require("./../../haxe/CallStack");}
function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");}
function lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void() {return require("./../../lime/app/_Event_Int_lime_ui_JoystickHatPosition_Void");}
function lime_app__$Event_$Void_$Void() {return require("./../../lime/app/_Event_Void_Void");}
function lime_app__$Event_$Int_$Void() {return require("./../../lime/app/_Event_Int_Void");}
function lime_app__$Event_$Int_$Float_$Void() {return require("./../../lime/app/_Event_Int_Float_Void");}
// Constructor
var Joystick = function(id) {
this.onHatMove = new (lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void().default)();
this.onDisconnect = new (lime_app__$Event_$Void_$Void().default)();
this.onButtonUp = new (lime_app__$Event_$Int_$Void().default)();
this.onButtonDown = new (lime_app__$Event_$Int_$Void().default)();
this.onAxisMove = new (lime_app__$Event_$Int_$Float_$Void().default)();
this.id = id;
this.connected = true;
}
// Meta
Joystick.__name__ = "lime.ui.Joystick";
Joystick.__isInterface__ = false;
Joystick.prototype = {
get_guid: function() {
var devices = Joystick.__getDeviceData();
return devices[this.id].id;
},
get_name: function() {
var devices = Joystick.__getDeviceData();
return devices[this.id].id;
},
get_numAxes: function() {
var devices = Joystick.__getDeviceData();
return devices[this.id].axes.length;
},
get_numButtons: function() {
var devices = Joystick.__getDeviceData();
return devices[this.id].buttons.length;
},
get_numHats: function() {
return 0;
}
};
Joystick.prototype.__class__ = Joystick.prototype.constructor = $hxClasses["lime.ui.Joystick"] = Joystick;
// Init
// Statics
Joystick.__connect = function(id) {
if(!Joystick.devices.exists(id)) {
var joystick = new Joystick(id);
Joystick.devices.set(id,joystick);
Joystick.onConnect.dispatch(joystick);
}
}
Joystick.__disconnect = function(id) {
var joystick = Joystick.devices.get(id);
if(joystick != null) {
joystick.connected = false;
}
Joystick.devices.remove(id);
if(joystick != null) {
joystick.onDisconnect.dispatch();
}
}
Joystick.__getDeviceData = function() {
var res = null;
try {
res = navigator.getGamepads ? navigator.getGamepads() : navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null;
} catch( err ) {
(haxe_CallStack().default).lastException = err;
var err1 = ((err) instanceof (js__$Boot_HaxeError().default)) ? err.val : err;
}
return res;
}
Joystick.devices = new (haxe_ds_IntMap().default)()
Joystick.onConnect = new (lime_app__$Event_$lime_$ui_$Joystick_$Void().default)()
// Export
exports.default = Joystick;