| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- {
 - 	init: function(elevators, floors) {
 - 		console.clear();
 - 		console.log("----" + "\n");
 - 		console.log("Starting...");
 - 		console.log("----" + "\n");
 - 
 - 		let floorCount = floors.length;
 - 		let bottomFloor = 0;
 - 		let topFloor = floorCount - 1;
 - 		let elevatorCount = elevators.length;
 - 
 - 		let upRequestFloorSet = new Set();
 - 		let downRequestFloorSet = new Set();
 - 
 - 		// Register floor button presses
 - 		floors.forEach(function (floor) {
 - 			floor.on("up_button_pressed", function() {
 - 				console.log("Up request: " + floor.level);
 - 				upRequestFloorSet.add(floor.floorNum);
 - 			});
 - 
 - 			floor.on("down_button_pressed", function() {
 - 				console.log("Down request: " + floor.level);
 - 				downRequestFloorSet.add(floor.floorNum);
 - 			});
 - 		});
 - 
 - 		// Individual elevators
 - 		let elevator = elevators[0];
 - 		let elevatorIndex = elevators.indexOf(elevator);
 - 
 - 		let destinationSet = new Set();
 - 
 - 		let defaultRange = [
 - 			(elevatorIndex + 0) * Math.floor(floorCount / (elevatorCount + 1)),
 - 			(elevatorIndex + 1) * Math.floor(floorCount / (elevatorCount + 1)),
 - 			(elevatorIndex + 2) * Math.floor(floorCount / (elevatorCount + 1))
 - 		]
 - 
 - 		// Elevator starts on floor 0; must be going up
 - 		elevator.goingUpIndicator(true);
 - 		elevator.goingDownIndicator(false);
 - 
 - 		// Go to designated starting floor
 - 		console.log("Sending elevator[" + elevatorIndex + "] to floor[" + defaultRange[0] + "]")
 - 		elevator.goToFloor((elevatorIndex + 0) * Math.floor(floorCount / (elevatorCount + 1)));
 - 
 - 		elevator.on("idle", function() {
 - 			console.log("Idle...");
 - 			elevator.goingUpIndicator(false);
 - 			elevator.goingDownIndicator(false);
 - 		});
 - 
 - 		elevator.on("floor_button_pressed", function(floorNum) {
 - 			console.log("Floor pressed: " + floorNum);
 - 			destinationSet.add(floorNum);
 - 			elevator.goToFloor(floorNum);
 - 		});
 - 
 - 		elevator.on("passing_floor", function(floorNum, direction) {
 - 			if(upRequestFloorSet.has(floorNum) || downRequestFloorSet.has(floorNum) || destinationSet.has(floorNum)) {
 - 				elevator.goToFloor(floorNum);
 - 			}
 - 		});
 - 
 - 		elevator.on("stopped_at_floor", function(floorNum) {
 - 			console.log("Stopped at: " + floorNum);
 - 			upRequestFloorSet.delete(floorNum);
 - 			downRequestFloorSet.delete(floorNum);
 - 			destinationSet.delete(floorNum);
 - 		});
 - 	},
 - 
 - 	update: function(dt, elevators, floors) {}
 - }
 
 
  |