forked from magwo/elevatorsaga
-
Notifications
You must be signed in to change notification settings - Fork 0
/
floor.js
39 lines (32 loc) · 1.21 KB
/
floor.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var asFloor = function(obj, floorLevel, yPosition) {
var floor = riot.observable(obj);
floor.level = floorLevel;
floor.yPosition = yPosition;
floor.buttonStates = {up: "", down: ""}
floor.pressUpButton = function() {
var prev = floor.buttonStates.up;
floor.buttonStates.up = "activated";
floor.trigger("buttonstate_change", floor.buttonStates);
if(prev !== floor.buttonStates.up) { floor.trigger("up_button_pressed"); }
}
floor.pressDownButton = function() {
var prev = floor.buttonStates.down;
floor.buttonStates.down = "activated";
floor.trigger("buttonstate_change", floor.buttonStates);
if(prev !== floor.buttonStates.down) { floor.trigger("down_button_pressed"); }
}
floor.elevatorAvailable = function(elevator) {
if(elevator.goingUpIndicator) {
floor.buttonStates.up = "";
floor.trigger("buttonstate_change", floor.buttonStates);
}
if(elevator.goingDownIndicator) {
floor.buttonStates.down = "";
floor.trigger("buttonstate_change", floor.buttonStates);
}
}
floor.floorNum = function() {
return floor.level;
}
return floor;
};