Skip to content

Instantly share code, notes, and snippets.

@nicjohnson
Last active August 29, 2015 14:14
Show Gist options
  • Save nicjohnson/d63c926462817b249e6b to your computer and use it in GitHub Desktop.
Save nicjohnson/d63c926462817b249e6b to your computer and use it in GitHub Desktop.
Elevator Saga
{
init: function(elevators, floors) {
var requestedFloors = {};
for (var i = 0; i < floors.length; i++) {
(function (i) {
var floor = floors[i];
floor.on('up_button_pressed', function () {
requestedFloors[i] = true;
});
floor.on('down_button_pressed', function () {
requestedFloors[i] = true;
});
})(i);
};
for (var i = 0; i < elevators.length; i++) {
(function (i) {
var elevator = elevators[i];
elevator.on('idle', function() {
elevator.goToFloor(0);
});
elevator.on('floor_button_pressed', function (floorNum) {
elevator.goToFloor(floorNum);
});
elevator.on('passing_floor', function (floorNum, direction) {
if (requestedFloors[floorNum] === true && elevator.loadFactor() < 1) {
elevator.goToFloor(floorNum, true);
};
});
elevator.on('stopped_at_floor', function (floorNum) {
requestedFloors[floorNum] = false;
});
})(i);
};
},
update: function(dt, elevators, floors) {
// We normally don't need to do anything here
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment