lr-core
Version:
Line Rider core library
57 lines (42 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LineTypes = undefined;
var _LineTypes = require('./LineTypes.js');
Object.defineProperty(exports, 'LineTypes', {
enumerable: true,
get: function () {
return _interopRequireDefault(_LineTypes).default;
}
});
exports.createLineFromJson = createLineFromJson;
var _LineTypes2 = _interopRequireDefault(_LineTypes);
var _SolidLine = require('./SolidLine.js');
var _SolidLine2 = _interopRequireDefault(_SolidLine);
var _AccLine = require('./AccLine.js');
var _AccLine2 = _interopRequireDefault(_AccLine);
var _SceneryLine = require('./SceneryLine.js');
var _SceneryLine2 = _interopRequireDefault(_SceneryLine);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const LEFT_EXTENDED = 1;
const RIGHT_EXTENDED = 2;
function createLineFromJson(data) {
if (data.extended) {
data.leftExtended = !!(LEFT_EXTENDED & data.extended);
data.rightExtended = !!(RIGHT_EXTENDED & data.extended);
}
switch (data.type) {
case undefined:
throw new TypeError(`Line JSON requires type: ${ data.toString() }`);
case _LineTypes2.default.SOLID:
return new _SolidLine2.default(data);
case _LineTypes2.default.ACC:
return new _AccLine2.default(data);
case _LineTypes2.default.SCENERY:
return new _SceneryLine2.default(data);
default:
console.warn(`Line JSON has unknown type, creating as scenery line: ${ data.toString() }`);
// return new Line(data)
}
}