Difference between revisions of "Os.pullEvent"

From ComputerCraft Wiki
Jump to: navigation, search
m (Moved to CAT:LuaCoreFunctions)
m (Event types: Changed event page links to have suffix " (event)".)
Line 56: Line 56:
 
! 3
 
! 3
 
|-
 
|-
![[char]]
+
![[char (event)|char]]
 
|Fired when text is typed on the keyboard
 
|Fired when text is typed on the keyboard
 
|(string)the letter typed
 
|(string)the letter typed
Line 62: Line 62:
 
|
 
|
 
|-
 
|-
![[key]]
+
![[key (event)|key]]
 
|Fired when a key is pressed on the keyboard
 
|Fired when a key is pressed on the keyboard
 
|(number)numerical keycode
 
|(number)numerical keycode
Line 68: Line 68:
 
|
 
|
 
|-
 
|-
![[timer]]
+
![[timer (event)|timer]]
 
|Fired when a timeout started by [[os.startTimer]]() completes
 
|Fired when a timeout started by [[os.startTimer]]() completes
 
|(number)Value of the timer as returned by os.startTimer()
 
|(number)Value of the timer as returned by os.startTimer()
Line 74: Line 74:
 
|
 
|
 
|-
 
|-
![[alarm]]
+
![[alarm (event)|alarm]]
 
|Fired when a time passed to [[os.setAlarm]]() is reached
 
|Fired when a time passed to [[os.setAlarm]]() is reached
 
|(number)Value of the alarm as returned by os.setAlarm()
 
|(number)Value of the alarm as returned by os.setAlarm()
Line 80: Line 80:
 
|
 
|
 
|-
 
|-
![[redstone]]
+
![[redstone (event)|redstone]]
 
|Fired when the state of any of the redstone inputs change
 
|Fired when the state of any of the redstone inputs change
 
|
 
|
Line 86: Line 86:
 
|
 
|
 
|-
 
|-
![[terminate]]
+
![[terminate (event)|terminate]]
 
|Fired when a combination of keys CTRL and T is pressed and held for three seconds. It is handled by default by os.pullEvent() and causes calling of two other functions: error() - To terminate the program; and print() to inform the user that the program he or she was running has been terminated.
 
|Fired when a combination of keys CTRL and T is pressed and held for three seconds. It is handled by default by os.pullEvent() and causes calling of two other functions: error() - To terminate the program; and print() to inform the user that the program he or she was running has been terminated.
 
|
 
|
Line 92: Line 92:
 
|
 
|
 
|-
 
|-
![[disk]]
+
![[disk (event)|disk]]
 
|Fired when a disk is inserted into an adjacent disk drive
 
|Fired when a disk is inserted into an adjacent disk drive
 
|(string)side
 
|(string)side
Line 98: Line 98:
 
|
 
|
 
|-
 
|-
![[disk_eject]]
+
![[disk_eject (event)|disk_eject]]
 
|Fired when a disk is removed from an adjacent disk drive
 
|Fired when a disk is removed from an adjacent disk drive
 
|(string)side
 
|(string)side
Line 104: Line 104:
 
|
 
|
 
|-
 
|-
![[peripheral]]
+
![[peripheral (event)|peripheral]]
 
|Fired when peripheral is attached
 
|Fired when peripheral is attached
 
|(string)side
 
|(string)side
Line 110: Line 110:
 
|
 
|
 
|-
 
|-
![[peripheral_detach]]
+
![[peripheral_detach (event)| detach]]
 
|Fired when peripheral is removed
 
|Fired when peripheral is removed
 
|(string)side
 
|(string)side
Line 116: Line 116:
 
|
 
|
 
|-
 
|-
![[rednet_message]]
+
![[rednet_message (event)|rednet_message]]
 
|Fired when a rednet message is received from the [[Rednet_(API)|rednet API]]
 
|Fired when a rednet message is received from the [[Rednet_(API)|rednet API]]
 
|(number)senderID
 
|(number)senderID
Line 122: Line 122:
 
|(number)distance travelled
 
|(number)distance travelled
 
|-
 
|-
![[http_success]]
+
![[http_success (event)|http_success]]
|Fired when an attempt to receieve text from / post text on a website is successful
+
|Fired when an attempt to receive text from / post text on a website is successful
 
|(string)url of the site
 
|(string)url of the site
 
|(table)text on the site
 
|(table)text on the site
 
|
 
|
 
|-
 
|-
![[http_failure]]
+
![[http_failure (event)|http_failure]]
 
|Fired when an attempt to receive text from / post text on a website is unsuccessful
 
|Fired when an attempt to receive text from / post text on a website is unsuccessful
 
|(string)url of the site
 
|(string)url of the site
Line 134: Line 134:
 
|
 
|
 
|-
 
|-
![[mouse_click]]
+
![[mouse_click (event)|mouse_click]]
 
|Fired when a mouse button is pressed
 
|Fired when a mouse button is pressed
 
|(number)mouse button
 
|(number)mouse button
Line 140: Line 140:
 
|(number)y coordinate
 
|(number)y coordinate
 
|-
 
|-
![[mouse_scroll]]
+
![[mouse_scroll (event)|mouse_scroll]]
 
|Fired when a mousewheel is scrolled.
 
|Fired when a mousewheel is scrolled.
 
|(number)scroll direction (-1 for up, 1 for down)
 
|(number)scroll direction (-1 for up, 1 for down)
Line 146: Line 146:
 
|(number)y coordinate(in screen chars)
 
|(number)y coordinate(in screen chars)
 
|-
 
|-
![[mouse_drag]]
+
![[mouse_drag (event)|mouse_drag]]
 
|Fired when the mouse is moved after clicking.
 
|Fired when the mouse is moved after clicking.
 
|(number)x coordinate(in screen chars)
 
|(number)x coordinate(in screen chars)

Revision as of 22:04, 28 November 2012


Grid Redstone.png  Function os.pullEvent
Yields computer until event occurs
Syntax os.pullEvent((string) only-event-to-accept)
Returns (string)event, variable parameters(see table below)
Part of ComputerCraft
API os

Examples

Grid paper.png  Example
The program requires to wait for a keypress to do something:
Code
function clear()
   term.clear()
   term.setCursorPos (1,1)
end
while true do
   clear()
   print ("Press E to do something.")
   local event, param1 = os.pullEvent ("char") -- limit os.pullEvent to the char event
   if param1 == "e" then -- if the returned value was 'e'
       clear()
       write ("Name: ")
       local name = read()
       print (name)
       break
   else
       clear()
       print ("Wrong button!")
       sleep (1.5) -- I don't like a whole 2 seconds but 1 second is too short
   end
end


How it Works

When os.pullEvent() is called, regardless of whether it has variables to set, the computer is yielded until an event occurs. An event is anything the computer can use as input, such as a button being pushed on the keyboard or a redstone input. When said event occurs, the event's name is placed in the first variable (the variable 'event' in the section below). With the event comes returned values, and, depending on the event type, there can be different amounts and different data types of returned values.

For example, the event "char" returns "char" as the event and (let's say E was pressed) the first parameter will be set to "e", although whether or not Shift was pressed can change that "e" to an "E" as well.

The event "redstone" only returns the event type since any other information needed can be retrieved with redstone.getInput.

Common Syntax

event, param1, param2, param3 = os.pullEvent()

Event Types

Name Description Parameters
1 2 3
char Fired when text is typed on the keyboard (string)the letter typed
key Fired when a key is pressed on the keyboard (number)numerical keycode
timer Fired when a timeout started by os.startTimer() completes (number)Value of the timer as returned by os.startTimer()
alarm Fired when a time passed to os.setAlarm() is reached (number)Value of the alarm as returned by os.setAlarm()
redstone Fired when the state of any of the redstone inputs change
terminate Fired when a combination of keys CTRL and T is pressed and held for three seconds. It is handled by default by os.pullEvent() and causes calling of two other functions: error() - To terminate the program; and print() to inform the user that the program he or she was running has been terminated.
disk Fired when a disk is inserted into an adjacent disk drive (string)side
disk_eject Fired when a disk is removed from an adjacent disk drive (string)side
peripheral Fired when peripheral is attached (string)side
detach Fired when peripheral is removed (string)side
rednet_message Fired when a rednet message is received from the rednet API (number)senderID (string)message (number)distance travelled
http_success Fired when an attempt to receive text from / post text on a website is successful (string)url of the site (table)text on the site
http_failure Fired when an attempt to receive text from / post text on a website is unsuccessful (string)url of the site
mouse_click Fired when a mouse button is pressed (number)mouse button (number)x coordinate (number)y coordinate
mouse_scroll Fired when a mousewheel is scrolled. (number)scroll direction (-1 for up, 1 for down) (number)x coordinate(in screen chars) (number)y coordinate(in screen chars)
mouse_drag Fired when the mouse is moved after clicking. (number)x coordinate(in screen chars) (number)y coordinate(in screen chars)

Guides

Onionnion's Guide on os.pullEvent()