Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- motor_bottom = peripheral.wrap("carriage_0")
- motor_top = peripheral.wrap("carriage_1")
- --motor_top = peripheral.wrap("carriage_9")
- local moving = 0
- local top_floor = 2
- call_monitor_bottom = peripheral.wrap("monitor_37")
- call_monitor_top = peripheral.wrap("monitor_40")
- select_monitor_bottom = peripheral.wrap("monitor_36")
- select_monitor_top = peripheral.wrap("monitor_39")
- function GetFloor()
- local white_check = rs.getBundledInput("left")
- local blue_check = rs.getBundledInput("right")
- if white_check then
- return 1
- elseif blue_check then
- return 2
- else
- return 0
- end
- return 0
- end
- function MoveTo(floor_to)
- local current_floor = GetFloor()
- if moving == 1 then
- print("The elevator is already moving...")
- end
- if floor_to == current_floor then
- print("The elevator is already on that floor.")
- return 0
- end
- if floor_to > top_floor then
- floor_to = top_floor
- elseif floor_to <= 0 then
- floor_to = 1
- end
- print("Moving from floor " .. current_floor .. " to " .. floor_to)
- moving = 1
- direction = 0
- if floor_to > current_floor then
- direction = 1
- end
- on_floor = GetFloor()
- while on_floor ~= floor_to do
- motor_bottom.move(direction,false,true)
- motor_top.move(direction,false,true)
- on_floor = GetFloor()
- sleep(0.1)
- end
- print("Finished")
- moving = 0
- current_floor = GetFloor()
- end
- print("Elevator control system started")
- call_monitor_bottom.setTextScale(0.8)
- call_monitor_bottom.setTextColor(colors.white)
- call_monitor_bottom.setBackgroundColor(colors.black)
- call_monitor_bottom.setCursorPos(1,1)
- call_monitor_bottom.clear()
- call_monitor_bottom.write("Right-click to call...")
- call_monitor_top.setTextScale(0.8)
- call_monitor_top.setTextColor(colors.white)
- call_monitor_top.setBackgroundColor(colors.black)
- call_monitor_top.setCursorPos(1,1)
- call_monitor_top.clear()
- call_monitor_top.write("Right-click to call...")
- select_monitor_bottom.setTextScale(0.8)
- select_monitor_bottom.setTextColor(colors.white)
- select_monitor_bottom.setBackgroundColor(colors.black)
- select_monitor_bottom.setCursorPos(1,1)
- select_monitor_bottom.clear()
- select_monitor_bottom.write("Right-click to go up...")
- select_monitor_top.setTextScale(0.8)
- select_monitor_top.setTextColor(colors.white)
- select_monitor_top.setBackgroundColor(colors.black)
- select_monitor_top.setCursorPos(1,1)
- select_monitor_top.clear()
- select_monitor_top.write("Right-click to go down...")
- while true do
- event, side, xpos, ypos = os.pullEvent("monitor_touch")
- side = tostring(side)
- if side == "monitor_37" then
- MoveTo(1)
- elseif side == "monitor_36" then
- MoveTo(2)
- elseif side == "monitor_38" then
- MoveTo(1)
- elseif side == "monitor_40" then
- MoveTo(2)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement