-- Singe's API for ZeroBrane Studio's autocompletion and tooltips (de). -- Generated by util/zbstudioApi.py from the Reference and Singe's own globals; do not edit. return { BILLBOARD_ALL = { type = "value", description = "Wie ein Knoten sich der Kamera zuwendet, für nodeSetBillboard.\n= 1", }, BILLBOARD_NONE = { type = "value", description = "Wie ein Knoten sich der Kamera zuwendet, für nodeSetBillboard.\n= 0", }, BILLBOARD_Y = { type = "value", description = "Wie ein Knoten sich der Kamera zuwendet, für nodeSetBillboard.\n= 2", }, BODY_DYNAMIC = { type = "value", description = "Körpertypen für bodyNew.\n= 1", }, BODY_KINEMATIC = { type = "value", description = "Körpertypen für bodyNew.\n= 2", }, BODY_STATIC = { type = "value", description = "Körpertypen für bodyNew.\n= 0", }, COLLIDE_FLOOR = { type = "value", description = "Wovon Partikel abprallen, für emitterSetCollide.\n= 1", }, COLLIDE_NONE = { type = "value", description = "Wovon Partikel abprallen, für emitterSetCollide.\n= 0", }, COLLIDE_SCENE = { type = "value", description = "Wovon Partikel abprallen, für emitterSetCollide.\n= 2", }, Colourb = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ alpha, blue, green, red, rgba }", }, __setters = { type = "value", description = "{ alpha, blue, green, red, rgba }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, Colourf = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ alpha, blue, green, red, rgba }", }, __setters = { type = "value", description = "{ alpha, blue, green, red, rgba }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, Context = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, CloseDataModel = { type = "function", description = "", args = "(...)", returns = "()", }, CreateDocument = { type = "function", description = "", args = "(...)", returns = "()", }, IsMouseInteracting = { type = "function", description = "", args = "(...)", returns = "()", }, LoadDocument = { type = "function", description = "", args = "(...)", returns = "()", }, OpenDataModel = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessKeyDown = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessKeyUp = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessMouseButtonDown = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessMouseButtonUp = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessMouseLeave = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessMouseMove = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessMouseWheel = { type = "function", description = "", args = "(...)", returns = "()", }, ProcessTextInput = { type = "function", description = "", args = "(...)", returns = "()", }, Render = { type = "function", description = "", args = "(...)", returns = "()", }, UnloadAllDocuments = { type = "function", description = "", args = "(...)", returns = "()", }, UnloadDocument = { type = "function", description = "", args = "(...)", returns = "()", }, Update = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ dimensions, documents, dp_ratio, focus_element, hover_element, name, root_element }", }, __setters = { type = "value", description = "{ dimensions, dp_ratio }", }, }, }, ContextDocumentsProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, DEBUG_ALL = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 15", }, DEBUG_CONSTRAINTS = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 2", }, DEBUG_CONTACTS = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 4", }, DEBUG_NONE = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 0", }, DEBUG_SHAPES = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 1", }, DEBUG_STATIC = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 16", }, DEBUG_VELOCITIES = { type = "value", description = "Was physicsSetDebug zeichnet; addiere sie.\n= 8", }, DIR = { type = "value", description = "Pfade in einem Skript sind relativ zu dem Ordner, aus dem Singe gestartet wurde, nicht zum Skript. Verwende die globale Variable DIR, die Framework.singe auf den eigenen Ordner des Skripts setzt, damit ein Spiel funktioniert, egal wo es installiert ist:", }, DISC_EJECTED = { type = "value", description = "Rückgabewerte von discGetState.\n= 5", }, DISC_PAUSED = { type = "value", description = "Rückgabewerte von discGetState.\n= 4", }, DISC_PLAYING = { type = "value", description = "Rückgabewerte von discGetState.\n= 3", }, DISC_STOPPED = { type = "value", description = "Rückgabewerte von discGetState.\n= 2", }, Document = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, Close = { type = "function", description = "", args = "(...)", returns = "()", }, CreateElement = { type = "function", description = "", args = "(...)", returns = "()", }, CreateTextNode = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, Hide = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, PullToFront = { type = "function", description = "", args = "(...)", returns = "()", }, PushToBack = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, Show = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, context, first_child, id, inner_rml, last_child, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name, title }", }, __setters = { type = "value", description = "{ class_name, id, inner_rml, scroll_left, scroll_top, title }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, DocumentFocus = { type = "lib", description = "", childs = { Auto = { type = "value", description = "= 3", }, Document = { type = "value", description = "= 1", }, Keep = { type = "value", description = "= 2", }, None = { type = "value", description = "= 0", }, }, }, DocumentModal = { type = "lib", description = "", childs = { Keep = { type = "value", description = "= 2", }, Modal = { type = "value", description = "= 1", }, None = { type = "value", description = "= 0", }, }, }, EASE_BACK_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 13", }, EASE_BACK_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 15", }, EASE_BACK_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 14", }, EASE_BOUNCE_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 19", }, EASE_BOUNCE_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 21", }, EASE_BOUNCE_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 20", }, EASE_CUBIC_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 4", }, EASE_CUBIC_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 6", }, EASE_CUBIC_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 5", }, EASE_ELASTIC_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 16", }, EASE_ELASTIC_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 18", }, EASE_ELASTIC_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 17", }, EASE_EXPO_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 10", }, EASE_EXPO_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 12", }, EASE_EXPO_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 11", }, EASE_LINEAR = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 0", }, EASE_QUAD_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 1", }, EASE_QUAD_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 3", }, EASE_QUAD_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 2", }, EASE_SINE_IN = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 7", }, EASE_SINE_IN_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 9", }, EASE_SINE_OUT = { type = "value", description = "Die Easing-Kurven sind die üblichen. EASE_LINEAR ist gar keine Kurve; EASE_QUAD_*, EASE_CUBIC_*, EASE_SINE_* und EASE_EXPO_* reichen von sanft bis scharf; EASE_BACK_* schießt über das Ziel hinaus und kommt zurück; EASE_ELASTIC_* federt; EASE_BOUNCE_* fällt und springt auf. Jede gibt es als _IN (langsam am Anfang), _OUT (langsam am Ende) und _IN_OUT (beides).\n= 8", }, Element = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ Document, ElementForm, ElementFormControl, ElementFormControlInput, ElementFormControlSelect, ElementFormControlTextArea, ElementTabSet, ElementText }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, first_child, id, inner_rml, last_child, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name }", }, __setters = { type = "value", description = "{ class_name, id, inner_rml, scroll_left, scroll_top }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementAttributesProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, ElementChildNodesProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, ElementForm = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, Submit = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, first_child, id, inner_rml, last_child, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name }", }, __setters = { type = "value", description = "{ class_name, id, inner_rml, scroll_left, scroll_top }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementFormControl = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, disabled, first_child, id, inner_rml, last_child, name, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name, value }", }, __setters = { type = "value", description = "{ class_name, disabled, id, inner_rml, name, scroll_left, scroll_top, value }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementFormControlInput = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, GetSelection = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, Select = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, SetSelection = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, checked, child_nodes, class_name, client_height, client_left, client_top, client_width, disabled, first_child, id, inner_rml, last_child, max, maxlength, min, name, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, size, step, style, tag_name, value }", }, __setters = { type = "value", description = "{ checked, class_name, disabled, id, inner_rml, max, maxlength, min, name, scroll_left, scroll_top, size, step, value }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementFormControlSelect = { type = "lib", description = "", childs = { Add = { type = "function", description = "", args = "(...)", returns = "()", }, AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, Remove = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, disabled, first_child, id, inner_rml, last_child, name, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, options, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, selection, style, tag_name, value }", }, __setters = { type = "value", description = "{ class_name, disabled, id, inner_rml, name, scroll_left, scroll_top, selection, value }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementFormControlTextArea = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, GetSelection = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, Select = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, SetSelection = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, cols, disabled, first_child, id, inner_rml, last_child, maxlength, name, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, rows, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name, value, wordwrap }", }, __setters = { type = "value", description = "{ class_name, cols, disabled, id, inner_rml, maxlength, name, rows, scroll_left, scroll_top, value, wordwrap }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementInstancer = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ InstanceElement }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementPtr = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, ElementStyleProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, ElementTabSet = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, SetPanel = { type = "function", description = "", args = "(...)", returns = "()", }, SetTab = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ active_tab, attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, first_child, id, inner_rml, last_child, next_sibling, num_tabs, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name }", }, __setters = { type = "value", description = "{ active_tab, class_name, id, inner_rml, scroll_left, scroll_top }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, ElementText = { type = "lib", description = "", childs = { AddEventListener = { type = "function", description = "", args = "(...)", returns = "()", }, AppendChild = { type = "function", description = "", args = "(...)", returns = "()", }, As = { type = "value", description = "{ }", }, Blur = { type = "function", description = "", args = "(...)", returns = "()", }, Click = { type = "function", description = "", args = "(...)", returns = "()", }, DispatchEvent = { type = "function", description = "", args = "(...)", returns = "()", }, Focus = { type = "function", description = "", args = "(...)", returns = "()", }, GetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementById = { type = "function", description = "", args = "(...)", returns = "()", }, GetElementsByTagName = { type = "function", description = "", args = "(...)", returns = "()", }, HasAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, HasChildNodes = { type = "function", description = "", args = "(...)", returns = "()", }, InsertBefore = { type = "function", description = "", args = "(...)", returns = "()", }, IsClassSet = { type = "function", description = "", args = "(...)", returns = "()", }, Matches = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelector = { type = "function", description = "", args = "(...)", returns = "()", }, QuerySelectorAll = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, RemoveChild = { type = "function", description = "", args = "(...)", returns = "()", }, ReplaceChild = { type = "function", description = "", args = "(...)", returns = "()", }, ScrollIntoView = { type = "function", description = "", args = "(...)", returns = "()", }, SetAttribute = { type = "function", description = "", args = "(...)", returns = "()", }, SetClass = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ attributes, child_nodes, class_name, client_height, client_left, client_top, client_width, first_child, id, inner_rml, last_child, next_sibling, offset_height, offset_left, offset_parent, offset_top, offset_width, owner_document, parent_node, previous_sibling, scroll_height, scroll_left, scroll_top, scroll_width, style, tag_name, text }", }, __setters = { type = "value", description = "{ class_name, id, inner_rml, scroll_left, scroll_top, text }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, Event = { type = "lib", description = "", childs = { StopImmediatePropagation = { type = "function", description = "", args = "(...)", returns = "()", }, StopPropagation = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ current_element, parameters, target_element, type }", }, __setters = { type = "value", description = "{ }", }, }, }, EventParametersProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, FILTER_LINEAR = { type = "value", description = "Texturabtastung für materialSetFilter.\n= 0", }, FILTER_NEAREST = { type = "value", description = "Texturabtastung für materialSetFilter.\n= 1", }, FONT_QUALITY_BLENDED = { type = "value", description = "Argumente für fontQuality.\n= 3", }, FONT_QUALITY_SHADED = { type = "value", description = "Argumente für fontQuality.\n= 2", }, FONT_QUALITY_SOLID = { type = "value", description = "Argumente für fontQuality.\n= 1", }, GAMEPAD_0 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { AXIS_LEFT_TRIGGER = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER\", value = 512 }", }, AXIS_LEFT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_N\", value = 513 }", }, AXIS_LEFT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_P\", value = 514 }", }, AXIS_LEFT_X = { type = "value", description = "{ name = \"AXIS_LEFT_X\", value = 500 }", }, AXIS_LEFT_X_L = { type = "value", description = "{ name = \"AXIS_LEFT_X_L\", value = 501 }", }, AXIS_LEFT_X_R = { type = "value", description = "{ name = \"AXIS_LEFT_X_R\", value = 502 }", }, AXIS_LEFT_Y = { type = "value", description = "{ name = \"AXIS_LEFT_Y\", value = 503 }", }, AXIS_LEFT_Y_D = { type = "value", description = "{ name = \"AXIS_LEFT_Y_D\", value = 505 }", }, AXIS_LEFT_Y_U = { type = "value", description = "{ name = \"AXIS_LEFT_Y_U\", value = 504 }", }, AXIS_RIGHT_TRIGGER = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER\", value = 515 }", }, AXIS_RIGHT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_N\", value = 516 }", }, AXIS_RIGHT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_P\", value = 517 }", }, AXIS_RIGHT_X = { type = "value", description = "{ name = \"AXIS_RIGHT_X\", value = 506 }", }, AXIS_RIGHT_X_L = { type = "value", description = "{ name = \"AXIS_RIGHT_X_L\", value = 507 }", }, AXIS_RIGHT_X_R = { type = "value", description = "{ name = \"AXIS_RIGHT_X_R\", value = 508 }", }, AXIS_RIGHT_Y = { type = "value", description = "{ name = \"AXIS_RIGHT_Y\", value = 509 }", }, AXIS_RIGHT_Y_D = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_D\", value = 511 }", }, AXIS_RIGHT_Y_U = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_U\", value = 510 }", }, BUTTON_A = { type = "value", description = "{ name = \"BUTTON_A\", value = 518 }", }, BUTTON_B = { type = "value", description = "{ name = \"BUTTON_B\", value = 519 }", }, BUTTON_BACK = { type = "value", description = "{ name = \"BUTTON_BACK\", value = 522 }", }, BUTTON_GUIDE = { type = "value", description = "{ name = \"BUTTON_GUIDE\", value = 523 }", }, BUTTON_LEFT_BUMPER = { type = "value", description = "{ name = \"BUTTON_LEFT_BUMPER\", value = 527 }", }, BUTTON_LEFT_STICK = { type = "value", description = "{ name = \"BUTTON_LEFT_STICK\", value = 525 }", }, BUTTON_RIGHT_BUMPER = { type = "value", description = "{ name = \"BUTTON_RIGHT_BUMPER\", value = 528 }", }, BUTTON_RIGHT_STICK = { type = "value", description = "{ name = \"BUTTON_RIGHT_STICK\", value = 526 }", }, BUTTON_START = { type = "value", description = "{ name = \"BUTTON_START\", value = 524 }", }, BUTTON_X = { type = "value", description = "{ name = \"BUTTON_X\", value = 520 }", }, BUTTON_Y = { type = "value", description = "{ name = \"BUTTON_Y\", value = 521 }", }, DPAD_DOWN = { type = "value", description = "{ name = \"DPAD_DOWN\", value = 530 }", }, DPAD_LEFT = { type = "value", description = "{ name = \"DPAD_LEFT\", value = 531 }", }, DPAD_RIGHT = { type = "value", description = "{ name = \"DPAD_RIGHT\", value = 532 }", }, DPAD_UP = { type = "value", description = "{ name = \"DPAD_UP\", value = 529 }", }, }, }, GAMEPAD_1 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { AXIS_LEFT_TRIGGER = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER\", value = 612 }", }, AXIS_LEFT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_N\", value = 613 }", }, AXIS_LEFT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_P\", value = 614 }", }, AXIS_LEFT_X = { type = "value", description = "{ name = \"AXIS_LEFT_X\", value = 600 }", }, AXIS_LEFT_X_L = { type = "value", description = "{ name = \"AXIS_LEFT_X_L\", value = 601 }", }, AXIS_LEFT_X_R = { type = "value", description = "{ name = \"AXIS_LEFT_X_R\", value = 602 }", }, AXIS_LEFT_Y = { type = "value", description = "{ name = \"AXIS_LEFT_Y\", value = 603 }", }, AXIS_LEFT_Y_D = { type = "value", description = "{ name = \"AXIS_LEFT_Y_D\", value = 605 }", }, AXIS_LEFT_Y_U = { type = "value", description = "{ name = \"AXIS_LEFT_Y_U\", value = 604 }", }, AXIS_RIGHT_TRIGGER = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER\", value = 615 }", }, AXIS_RIGHT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_N\", value = 616 }", }, AXIS_RIGHT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_P\", value = 617 }", }, AXIS_RIGHT_X = { type = "value", description = "{ name = \"AXIS_RIGHT_X\", value = 606 }", }, AXIS_RIGHT_X_L = { type = "value", description = "{ name = \"AXIS_RIGHT_X_L\", value = 607 }", }, AXIS_RIGHT_X_R = { type = "value", description = "{ name = \"AXIS_RIGHT_X_R\", value = 608 }", }, AXIS_RIGHT_Y = { type = "value", description = "{ name = \"AXIS_RIGHT_Y\", value = 609 }", }, AXIS_RIGHT_Y_D = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_D\", value = 611 }", }, AXIS_RIGHT_Y_U = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_U\", value = 610 }", }, BUTTON_A = { type = "value", description = "{ name = \"BUTTON_A\", value = 618 }", }, BUTTON_B = { type = "value", description = "{ name = \"BUTTON_B\", value = 619 }", }, BUTTON_BACK = { type = "value", description = "{ name = \"BUTTON_BACK\", value = 622 }", }, BUTTON_GUIDE = { type = "value", description = "{ name = \"BUTTON_GUIDE\", value = 623 }", }, BUTTON_LEFT_BUMPER = { type = "value", description = "{ name = \"BUTTON_LEFT_BUMPER\", value = 627 }", }, BUTTON_LEFT_STICK = { type = "value", description = "{ name = \"BUTTON_LEFT_STICK\", value = 625 }", }, BUTTON_RIGHT_BUMPER = { type = "value", description = "{ name = \"BUTTON_RIGHT_BUMPER\", value = 628 }", }, BUTTON_RIGHT_STICK = { type = "value", description = "{ name = \"BUTTON_RIGHT_STICK\", value = 626 }", }, BUTTON_START = { type = "value", description = "{ name = \"BUTTON_START\", value = 624 }", }, BUTTON_X = { type = "value", description = "{ name = \"BUTTON_X\", value = 620 }", }, BUTTON_Y = { type = "value", description = "{ name = \"BUTTON_Y\", value = 621 }", }, DPAD_DOWN = { type = "value", description = "{ name = \"DPAD_DOWN\", value = 630 }", }, DPAD_LEFT = { type = "value", description = "{ name = \"DPAD_LEFT\", value = 631 }", }, DPAD_RIGHT = { type = "value", description = "{ name = \"DPAD_RIGHT\", value = 632 }", }, DPAD_UP = { type = "value", description = "{ name = \"DPAD_UP\", value = 629 }", }, }, }, GAMEPAD_2 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { AXIS_LEFT_TRIGGER = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER\", value = 712 }", }, AXIS_LEFT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_N\", value = 713 }", }, AXIS_LEFT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_P\", value = 714 }", }, AXIS_LEFT_X = { type = "value", description = "{ name = \"AXIS_LEFT_X\", value = 700 }", }, AXIS_LEFT_X_L = { type = "value", description = "{ name = \"AXIS_LEFT_X_L\", value = 701 }", }, AXIS_LEFT_X_R = { type = "value", description = "{ name = \"AXIS_LEFT_X_R\", value = 702 }", }, AXIS_LEFT_Y = { type = "value", description = "{ name = \"AXIS_LEFT_Y\", value = 703 }", }, AXIS_LEFT_Y_D = { type = "value", description = "{ name = \"AXIS_LEFT_Y_D\", value = 705 }", }, AXIS_LEFT_Y_U = { type = "value", description = "{ name = \"AXIS_LEFT_Y_U\", value = 704 }", }, AXIS_RIGHT_TRIGGER = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER\", value = 715 }", }, AXIS_RIGHT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_N\", value = 716 }", }, AXIS_RIGHT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_P\", value = 717 }", }, AXIS_RIGHT_X = { type = "value", description = "{ name = \"AXIS_RIGHT_X\", value = 706 }", }, AXIS_RIGHT_X_L = { type = "value", description = "{ name = \"AXIS_RIGHT_X_L\", value = 707 }", }, AXIS_RIGHT_X_R = { type = "value", description = "{ name = \"AXIS_RIGHT_X_R\", value = 708 }", }, AXIS_RIGHT_Y = { type = "value", description = "{ name = \"AXIS_RIGHT_Y\", value = 709 }", }, AXIS_RIGHT_Y_D = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_D\", value = 711 }", }, AXIS_RIGHT_Y_U = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_U\", value = 710 }", }, BUTTON_A = { type = "value", description = "{ name = \"BUTTON_A\", value = 718 }", }, BUTTON_B = { type = "value", description = "{ name = \"BUTTON_B\", value = 719 }", }, BUTTON_BACK = { type = "value", description = "{ name = \"BUTTON_BACK\", value = 722 }", }, BUTTON_GUIDE = { type = "value", description = "{ name = \"BUTTON_GUIDE\", value = 723 }", }, BUTTON_LEFT_BUMPER = { type = "value", description = "{ name = \"BUTTON_LEFT_BUMPER\", value = 727 }", }, BUTTON_LEFT_STICK = { type = "value", description = "{ name = \"BUTTON_LEFT_STICK\", value = 725 }", }, BUTTON_RIGHT_BUMPER = { type = "value", description = "{ name = \"BUTTON_RIGHT_BUMPER\", value = 728 }", }, BUTTON_RIGHT_STICK = { type = "value", description = "{ name = \"BUTTON_RIGHT_STICK\", value = 726 }", }, BUTTON_START = { type = "value", description = "{ name = \"BUTTON_START\", value = 724 }", }, BUTTON_X = { type = "value", description = "{ name = \"BUTTON_X\", value = 720 }", }, BUTTON_Y = { type = "value", description = "{ name = \"BUTTON_Y\", value = 721 }", }, DPAD_DOWN = { type = "value", description = "{ name = \"DPAD_DOWN\", value = 730 }", }, DPAD_LEFT = { type = "value", description = "{ name = \"DPAD_LEFT\", value = 731 }", }, DPAD_RIGHT = { type = "value", description = "{ name = \"DPAD_RIGHT\", value = 732 }", }, DPAD_UP = { type = "value", description = "{ name = \"DPAD_UP\", value = 729 }", }, }, }, GAMEPAD_3 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { AXIS_LEFT_TRIGGER = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER\", value = 812 }", }, AXIS_LEFT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_N\", value = 813 }", }, AXIS_LEFT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_LEFT_TRIGGER_P\", value = 814 }", }, AXIS_LEFT_X = { type = "value", description = "{ name = \"AXIS_LEFT_X\", value = 800 }", }, AXIS_LEFT_X_L = { type = "value", description = "{ name = \"AXIS_LEFT_X_L\", value = 801 }", }, AXIS_LEFT_X_R = { type = "value", description = "{ name = \"AXIS_LEFT_X_R\", value = 802 }", }, AXIS_LEFT_Y = { type = "value", description = "{ name = \"AXIS_LEFT_Y\", value = 803 }", }, AXIS_LEFT_Y_D = { type = "value", description = "{ name = \"AXIS_LEFT_Y_D\", value = 805 }", }, AXIS_LEFT_Y_U = { type = "value", description = "{ name = \"AXIS_LEFT_Y_U\", value = 804 }", }, AXIS_RIGHT_TRIGGER = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER\", value = 815 }", }, AXIS_RIGHT_TRIGGER_N = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_N\", value = 816 }", }, AXIS_RIGHT_TRIGGER_P = { type = "value", description = "{ name = \"AXIS_RIGHT_TRIGGER_P\", value = 817 }", }, AXIS_RIGHT_X = { type = "value", description = "{ name = \"AXIS_RIGHT_X\", value = 806 }", }, AXIS_RIGHT_X_L = { type = "value", description = "{ name = \"AXIS_RIGHT_X_L\", value = 807 }", }, AXIS_RIGHT_X_R = { type = "value", description = "{ name = \"AXIS_RIGHT_X_R\", value = 808 }", }, AXIS_RIGHT_Y = { type = "value", description = "{ name = \"AXIS_RIGHT_Y\", value = 809 }", }, AXIS_RIGHT_Y_D = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_D\", value = 811 }", }, AXIS_RIGHT_Y_U = { type = "value", description = "{ name = \"AXIS_RIGHT_Y_U\", value = 810 }", }, BUTTON_A = { type = "value", description = "{ name = \"BUTTON_A\", value = 818 }", }, BUTTON_B = { type = "value", description = "{ name = \"BUTTON_B\", value = 819 }", }, BUTTON_BACK = { type = "value", description = "{ name = \"BUTTON_BACK\", value = 822 }", }, BUTTON_GUIDE = { type = "value", description = "{ name = \"BUTTON_GUIDE\", value = 823 }", }, BUTTON_LEFT_BUMPER = { type = "value", description = "{ name = \"BUTTON_LEFT_BUMPER\", value = 827 }", }, BUTTON_LEFT_STICK = { type = "value", description = "{ name = \"BUTTON_LEFT_STICK\", value = 825 }", }, BUTTON_RIGHT_BUMPER = { type = "value", description = "{ name = \"BUTTON_RIGHT_BUMPER\", value = 828 }", }, BUTTON_RIGHT_STICK = { type = "value", description = "{ name = \"BUTTON_RIGHT_STICK\", value = 826 }", }, BUTTON_START = { type = "value", description = "{ name = \"BUTTON_START\", value = 824 }", }, BUTTON_X = { type = "value", description = "{ name = \"BUTTON_X\", value = 820 }", }, BUTTON_Y = { type = "value", description = "{ name = \"BUTTON_Y\", value = 821 }", }, DPAD_DOWN = { type = "value", description = "{ name = \"DPAD_DOWN\", value = 830 }", }, DPAD_LEFT = { type = "value", description = "{ name = \"DPAD_LEFT\", value = 831 }", }, DPAD_RIGHT = { type = "value", description = "{ name = \"DPAD_RIGHT\", value = 832 }", }, DPAD_UP = { type = "value", description = "{ name = \"DPAD_UP\", value = 829 }", }, }, }, GAMEPAD_AXIS_LEFT_TRIGGER = { type = "value", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.\n= 4", }, GAMEPAD_AXIS_LEFT_X = { type = "value", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.\n= 0", }, GAMEPAD_AXIS_LEFT_Y = { type = "value", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.\n= 1", }, GAMEPAD_AXIS_RIGHT_TRIGGER = { type = "value", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.\n= 5", }, GAMEPAD_AXIS_RIGHT_X = { type = "value", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.\n= 2", }, GAMEPAD_AXIS_RIGHT_Y = { type = "value", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.\n= 3", }, JOINT_BALL = { type = "value", description = "Gelenktypen (die joint*-Aufrufe nennen sie direkt).\n= 1", }, JOINT_HINGE = { type = "value", description = "Gelenktypen (die joint*-Aufrufe nennen sie direkt).\n= 0", }, JOINT_SLIDER = { type = "value", description = "Gelenktypen (die joint*-Aufrufe nennen sie direkt).\n= 2", }, LAYER_FRONT = { type = "value", description = "Ob ein Knoten unter dem Overlay oder davor gezeichnet wird, für nodeSetLayer.\n= 1", }, LAYER_SCENE = { type = "value", description = "Ob ein Knoten unter dem Overlay oder davor gezeichnet wird, für nodeSetLayer.\n= 0", }, LIGHT_DIRECTIONAL = { type = "value", description = "Argumente für lightNew.\n= 0", }, LIGHT_POINT = { type = "value", description = "Argumente für lightNew.\n= 1", }, LIGHT_SPOT = { type = "value", description = "Argumente für lightNew.\n= 2", }, Log = { type = "lib", description = "", childs = { Message = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, logtype = { type = "value", description = "{ always = 0, debug = 5, error = 1, info = 4, warning = 3 }", }, }, }, LuaRmlUi = { type = "lib", description = "", childs = { CreateContext = { type = "function", description = "", args = "(...)", returns = "()", }, LoadFontFace = { type = "function", description = "", args = "(...)", returns = "()", }, RegisterTag = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ contexts, key_identifier, key_modifier }", }, __setters = { type = "value", description = "{ }", }, }, }, MANY_MOUSE = { type = "value", description = "Argumente für mouseSetMode.\n= 200", }, MODE_FULL = { type = "value", description = "Argumente für keyboardSetMode.\n= 1", }, MODE_NORMAL = { type = "value", description = "Argumente für keyboardSetMode.\n= 0", }, MODIFIER = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { ALT = { type = "value", description = "{ name = \"ALT\", value = 768 }", }, CAPS = { type = "value", description = "{ name = \"CAPS\", value = 8192 }", }, CTRL = { type = "value", description = "{ name = \"CTRL\", value = 192 }", }, GUI = { type = "value", description = "{ name = \"GUI\", value = 3072 }", }, LALT = { type = "value", description = "{ name = \"LALT\", value = 256 }", }, LCTRL = { type = "value", description = "{ name = \"LCTRL\", value = 64 }", }, LGUI = { type = "value", description = "{ name = \"LGUI\", value = 1024 }", }, LSHIFT = { type = "value", description = "{ name = \"LSHIFT\", value = 1 }", }, MODE = { type = "value", description = "{ name = \"MODE\", value = 16384 }", }, NONE = { type = "value", description = "{ name = \"NONE\", value = 0 }", }, NUM = { type = "value", description = "{ name = \"NUM\", value = 4096 }", }, RALT = { type = "value", description = "{ name = \"RALT\", value = 512 }", }, RCTRL = { type = "value", description = "{ name = \"RCTRL\", value = 128 }", }, RGUI = { type = "value", description = "{ name = \"RGUI\", value = 2048 }", }, RSHIFT = { type = "value", description = "{ name = \"RSHIFT\", value = 2 }", }, SCROLL = { type = "value", description = "{ name = \"SCROLL\", value = 32768 }", }, SHIFT = { type = "value", description = "{ name = \"SHIFT\", value = 3 }", }, }, }, MOUSE_0 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { BUTTON_LEFT = { type = "value", description = "{ name = \"BUTTON_LEFT\", value = 1000 }", }, BUTTON_MIDDLE = { type = "value", description = "{ name = \"BUTTON_MIDDLE\", value = 1002 }", }, BUTTON_RIGHT = { type = "value", description = "{ name = \"BUTTON_RIGHT\", value = 1001 }", }, BUTTON_X1 = { type = "value", description = "{ name = \"BUTTON_X1\", value = 1003 }", }, BUTTON_X2 = { type = "value", description = "{ name = \"BUTTON_X2\", value = 1004 }", }, WHEEL_DOWN = { type = "value", description = "{ name = \"WHEEL_DOWN\", value = 1006 }", }, WHEEL_UP = { type = "value", description = "{ name = \"WHEEL_UP\", value = 1005 }", }, }, }, MOUSE_1 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { BUTTON_LEFT = { type = "value", description = "{ name = \"BUTTON_LEFT\", value = 1100 }", }, BUTTON_MIDDLE = { type = "value", description = "{ name = \"BUTTON_MIDDLE\", value = 1102 }", }, BUTTON_RIGHT = { type = "value", description = "{ name = \"BUTTON_RIGHT\", value = 1101 }", }, BUTTON_X1 = { type = "value", description = "{ name = \"BUTTON_X1\", value = 1103 }", }, BUTTON_X2 = { type = "value", description = "{ name = \"BUTTON_X2\", value = 1104 }", }, WHEEL_DOWN = { type = "value", description = "{ name = \"WHEEL_DOWN\", value = 1106 }", }, WHEEL_UP = { type = "value", description = "{ name = \"WHEEL_UP\", value = 1105 }", }, }, }, MOUSE_2 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { BUTTON_LEFT = { type = "value", description = "{ name = \"BUTTON_LEFT\", value = 1200 }", }, BUTTON_MIDDLE = { type = "value", description = "{ name = \"BUTTON_MIDDLE\", value = 1202 }", }, BUTTON_RIGHT = { type = "value", description = "{ name = \"BUTTON_RIGHT\", value = 1201 }", }, BUTTON_X1 = { type = "value", description = "{ name = \"BUTTON_X1\", value = 1203 }", }, BUTTON_X2 = { type = "value", description = "{ name = \"BUTTON_X2\", value = 1204 }", }, WHEEL_DOWN = { type = "value", description = "{ name = \"WHEEL_DOWN\", value = 1206 }", }, WHEEL_UP = { type = "value", description = "{ name = \"WHEEL_UP\", value = 1205 }", }, }, }, MOUSE_3 = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { BUTTON_LEFT = { type = "value", description = "{ name = \"BUTTON_LEFT\", value = 1300 }", }, BUTTON_MIDDLE = { type = "value", description = "{ name = \"BUTTON_MIDDLE\", value = 1302 }", }, BUTTON_RIGHT = { type = "value", description = "{ name = \"BUTTON_RIGHT\", value = 1301 }", }, BUTTON_X1 = { type = "value", description = "{ name = \"BUTTON_X1\", value = 1303 }", }, BUTTON_X2 = { type = "value", description = "{ name = \"BUTTON_X2\", value = 1304 }", }, WHEEL_DOWN = { type = "value", description = "{ name = \"WHEEL_DOWN\", value = 1306 }", }, WHEEL_UP = { type = "value", description = "{ name = \"WHEEL_UP\", value = 1305 }", }, }, }, MOUSE_MANY = { type = "value", description = "Argumente für mouseSetMode.\n= 200", }, MOUSE_SINGLE = { type = "value", description = "Argumente für mouseSetMode.\n= 100", }, OVERLAY_NOT_UPDATED = { type = "value", description = "Rückgabewerte für onOverlayUpdate.\n= 0", }, OVERLAY_UPDATED = { type = "value", description = "Rückgabewerte für onOverlayUpdate.\n= 1", }, PARTICLE_ADD = { type = "value", description = "Blending für emitterSetBlend.\n= 1", }, PARTICLE_ALPHA = { type = "value", description = "Blending für emitterSetBlend.\n= 0", }, PARTICLE_OVER = { type = "value", description = "Wo 2D-Partikel gezeichnet werden, für emitterSetLayer.\n= 0", }, PARTICLE_UNDER = { type = "value", description = "Wo 2D-Partikel gezeichnet werden, für emitterSetLayer.\n= 1", }, RENDER_PIXELATED = { type = "value", description = "Argumente für spriteQuality / videoQuality.\n= 0", }, RENDER_SMOOTH = { type = "value", description = "Argumente für spriteQuality / videoQuality.\n= 1", }, RmlUiContextsProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, SCANCODE = { type = "lib", description = "Framework.singe fügt die Tabellen SCANCODE und MODIFIER hinzu (die Tasten- und Modifikatorwerte von SDL), GAMEPAD_0 bis GAMEPAD_3, MOUSE_0 bis MOUSE_3, die Indizes GAMEPAD_AXIS_* für controllerGetAxis und DIR.", childs = { A = { type = "value", description = "{ name = \"A\", value = 4 }", }, AC_BACK = { type = "value", description = "{ name = \"AC_BACK\", value = 270 }", }, AC_BOOKMARKS = { type = "value", description = "{ name = \"AC_BOOKMARKS\", value = 274 }", }, AC_FORWARD = { type = "value", description = "{ name = \"AC_FORWARD\", value = 271 }", }, AC_HOME = { type = "value", description = "{ name = \"AC_HOME\", value = 269 }", }, AC_REFRESH = { type = "value", description = "{ name = \"AC_REFRESH\", value = 273 }", }, AC_SEARCH = { type = "value", description = "{ name = \"AC_SEARCH\", value = 268 }", }, AC_STOP = { type = "value", description = "{ name = \"AC_STOP\", value = 272 }", }, AGAIN = { type = "value", description = "{ name = \"AGAIN\", value = 121 }", }, ALTERASE = { type = "value", description = "{ name = \"ALTERASE\", value = 153 }", }, APOSTROPHE = { type = "value", description = "{ name = \"APOSTROPHE\", value = 52 }", }, APP1 = { type = "value", description = "{ name = \"APP1\", value = 283 }", }, APP2 = { type = "value", description = "{ name = \"APP2\", value = 284 }", }, APPLICATION = { type = "value", description = "{ name = \"APPLICATION\", value = 101 }", }, AUDIOFASTFORWARD = { type = "value", description = "{ name = \"AUDIOFASTFORWARD\", value = 286 }", }, AUDIOMUTE = { type = "value", description = "{ name = \"AUDIOMUTE\", value = 262 }", }, AUDIONEXT = { type = "value", description = "{ name = \"AUDIONEXT\", value = 258 }", }, AUDIOPLAY = { type = "value", description = "{ name = \"AUDIOPLAY\", value = 261 }", }, AUDIOPREV = { type = "value", description = "{ name = \"AUDIOPREV\", value = 259 }", }, AUDIOREWIND = { type = "value", description = "{ name = \"AUDIOREWIND\", value = 285 }", }, AUDIOSTOP = { type = "value", description = "{ name = \"AUDIOSTOP\", value = 260 }", }, B = { type = "value", description = "{ name = \"B\", value = 5 }", }, BACKSLASH = { type = "value", description = "{ name = \"BACKSLASH\", value = 49 }", }, BACKSPACE = { type = "value", description = "{ name = \"BACKSPACE\", value = 42 }", }, BRIGHTNESSDOWN = { type = "value", description = "{ name = \"BRIGHTNESSDOWN\", value = 275 }", }, BRIGHTNESSUP = { type = "value", description = "{ name = \"BRIGHTNESSUP\", value = 276 }", }, C = { type = "value", description = "{ name = \"C\", value = 6 }", }, CALCULATOR = { type = "value", description = "{ name = \"CALCULATOR\", value = 266 }", }, CANCEL = { type = "value", description = "{ name = \"CANCEL\", value = 155 }", }, CAPSLOCK = { type = "value", description = "{ name = \"CAPSLOCK\", value = 57 }", }, CLEAR = { type = "value", description = "{ name = \"CLEAR\", value = 156 }", }, CLEARAGAIN = { type = "value", description = "{ name = \"CLEARAGAIN\", value = 162 }", }, COMMA = { type = "value", description = "{ name = \"COMMA\", value = 54 }", }, COMPUTER = { type = "value", description = "{ name = \"COMPUTER\", value = 267 }", }, COPY = { type = "value", description = "{ name = \"COPY\", value = 124 }", }, CRSEL = { type = "value", description = "{ name = \"CRSEL\", value = 163 }", }, CURRENCYSUBUNIT = { type = "value", description = "{ name = \"CURRENCYSUBUNIT\", value = 181 }", }, CURRENCYUNIT = { type = "value", description = "{ name = \"CURRENCYUNIT\", value = 180 }", }, CUT = { type = "value", description = "{ name = \"CUT\", value = 123 }", }, D = { type = "value", description = "{ name = \"D\", value = 7 }", }, DECIMALSEPARATOR = { type = "value", description = "{ name = \"DECIMALSEPARATOR\", value = 179 }", }, DELETE = { type = "value", description = "{ name = \"DELETE\", value = 76 }", }, DISPLAYSWITCH = { type = "value", description = "{ name = \"DISPLAYSWITCH\", value = 277 }", }, DOWN = { type = "value", description = "{ name = \"DOWN\", value = 81 }", }, E = { type = "value", description = "{ name = \"E\", value = 8 }", }, EJECT = { type = "value", description = "{ name = \"EJECT\", value = 281 }", }, END = { type = "value", description = "{ name = \"END\", value = 77 }", }, EQUALS = { type = "value", description = "{ name = \"EQUALS\", value = 46 }", }, ESCAPE = { type = "value", description = "{ name = \"ESCAPE\", value = 41 }", }, EXECUTE = { type = "value", description = "{ name = \"EXECUTE\", value = 116 }", }, EXSEL = { type = "value", description = "{ name = \"EXSEL\", value = 164 }", }, F = { type = "value", description = "{ name = \"F\", value = 9 }", }, F1 = { type = "value", description = "{ name = \"F1\", value = 58 }", }, F10 = { type = "value", description = "{ name = \"F10\", value = 67 }", }, F11 = { type = "value", description = "{ name = \"F11\", value = 68 }", }, F12 = { type = "value", description = "{ name = \"F12\", value = 69 }", }, F13 = { type = "value", description = "{ name = \"F13\", value = 104 }", }, F14 = { type = "value", description = "{ name = \"F14\", value = 105 }", }, F15 = { type = "value", description = "{ name = \"F15\", value = 106 }", }, F16 = { type = "value", description = "{ name = \"F16\", value = 107 }", }, F17 = { type = "value", description = "{ name = \"F17\", value = 108 }", }, F18 = { type = "value", description = "{ name = \"F18\", value = 109 }", }, F19 = { type = "value", description = "{ name = \"F19\", value = 110 }", }, F2 = { type = "value", description = "{ name = \"F2\", value = 59 }", }, F20 = { type = "value", description = "{ name = \"F20\", value = 111 }", }, F21 = { type = "value", description = "{ name = \"F21\", value = 112 }", }, F22 = { type = "value", description = "{ name = \"F22\", value = 113 }", }, F23 = { type = "value", description = "{ name = \"F23\", value = 114 }", }, F24 = { type = "value", description = "{ name = \"F24\", value = 115 }", }, F3 = { type = "value", description = "{ name = \"F3\", value = 60 }", }, F4 = { type = "value", description = "{ name = \"F4\", value = 61 }", }, F5 = { type = "value", description = "{ name = \"F5\", value = 62 }", }, F6 = { type = "value", description = "{ name = \"F6\", value = 63 }", }, F7 = { type = "value", description = "{ name = \"F7\", value = 64 }", }, F8 = { type = "value", description = "{ name = \"F8\", value = 65 }", }, F9 = { type = "value", description = "{ name = \"F9\", value = 66 }", }, FIND = { type = "value", description = "{ name = \"FIND\", value = 126 }", }, G = { type = "value", description = "{ name = \"G\", value = 10 }", }, GRAVE = { type = "value", description = "{ name = \"GRAVE\", value = 53 }", }, H = { type = "value", description = "{ name = \"H\", value = 11 }", }, HELP = { type = "value", description = "{ name = \"HELP\", value = 117 }", }, HOME = { type = "value", description = "{ name = \"HOME\", value = 74 }", }, I = { type = "value", description = "{ name = \"I\", value = 12 }", }, INSERT = { type = "value", description = "{ name = \"INSERT\", value = 73 }", }, INTERNATIONAL1 = { type = "value", description = "{ name = \"INTERNATIONAL1\", value = 135 }", }, INTERNATIONAL2 = { type = "value", description = "{ name = \"INTERNATIONAL2\", value = 136 }", }, INTERNATIONAL3 = { type = "value", description = "{ name = \"INTERNATIONAL3\", value = 137 }", }, INTERNATIONAL4 = { type = "value", description = "{ name = \"INTERNATIONAL4\", value = 138 }", }, INTERNATIONAL5 = { type = "value", description = "{ name = \"INTERNATIONAL5\", value = 139 }", }, INTERNATIONAL6 = { type = "value", description = "{ name = \"INTERNATIONAL6\", value = 140 }", }, INTERNATIONAL7 = { type = "value", description = "{ name = \"INTERNATIONAL7\", value = 141 }", }, INTERNATIONAL8 = { type = "value", description = "{ name = \"INTERNATIONAL8\", value = 142 }", }, INTERNATIONAL9 = { type = "value", description = "{ name = \"INTERNATIONAL9\", value = 143 }", }, J = { type = "value", description = "{ name = \"J\", value = 13 }", }, K = { type = "value", description = "{ name = \"K\", value = 14 }", }, KBDILLUMDOWN = { type = "value", description = "{ name = \"KBDILLUMDOWN\", value = 279 }", }, KBDILLUMTOGGLE = { type = "value", description = "{ name = \"KBDILLUMTOGGLE\", value = 278 }", }, KBDILLUMUP = { type = "value", description = "{ name = \"KBDILLUMUP\", value = 280 }", }, KP_0 = { type = "value", description = "{ name = \"KP_0\", value = 98 }", }, KP_00 = { type = "value", description = "{ name = \"KP_00\", value = 176 }", }, KP_000 = { type = "value", description = "{ name = \"KP_000\", value = 177 }", }, KP_1 = { type = "value", description = "{ name = \"KP_1\", value = 89 }", }, KP_2 = { type = "value", description = "{ name = \"KP_2\", value = 90 }", }, KP_3 = { type = "value", description = "{ name = \"KP_3\", value = 91 }", }, KP_4 = { type = "value", description = "{ name = \"KP_4\", value = 92 }", }, KP_5 = { type = "value", description = "{ name = \"KP_5\", value = 93 }", }, KP_6 = { type = "value", description = "{ name = \"KP_6\", value = 94 }", }, KP_7 = { type = "value", description = "{ name = \"KP_7\", value = 95 }", }, KP_8 = { type = "value", description = "{ name = \"KP_8\", value = 96 }", }, KP_9 = { type = "value", description = "{ name = \"KP_9\", value = 97 }", }, KP_A = { type = "value", description = "{ name = \"KP_A\", value = 188 }", }, KP_AMPERSAND = { type = "value", description = "{ name = \"KP_AMPERSAND\", value = 199 }", }, KP_AT = { type = "value", description = "{ name = \"KP_AT\", value = 206 }", }, KP_B = { type = "value", description = "{ name = \"KP_B\", value = 189 }", }, KP_BACKSPACE = { type = "value", description = "{ name = \"KP_BACKSPACE\", value = 187 }", }, KP_BINARY = { type = "value", description = "{ name = \"KP_BINARY\", value = 218 }", }, KP_C = { type = "value", description = "{ name = \"KP_C\", value = 190 }", }, KP_CLEAR = { type = "value", description = "{ name = \"KP_CLEAR\", value = 216 }", }, KP_CLEARENTRY = { type = "value", description = "{ name = \"KP_CLEARENTRY\", value = 217 }", }, KP_COLON = { type = "value", description = "{ name = \"KP_COLON\", value = 203 }", }, KP_COMMA = { type = "value", description = "{ name = \"KP_COMMA\", value = 133 }", }, KP_D = { type = "value", description = "{ name = \"KP_D\", value = 191 }", }, KP_DBLAMPERSAND = { type = "value", description = "{ name = \"KP_DBLAMPERSAND\", value = 200 }", }, KP_DBLVERTICALBAR = { type = "value", description = "{ name = \"KP_DBLVERTICALBAR\", value = 202 }", }, KP_DECIMAL = { type = "value", description = "{ name = \"KP_DECIMAL\", value = 220 }", }, KP_DIVIDE = { type = "value", description = "{ name = \"KP_DIVIDE\", value = 84 }", }, KP_E = { type = "value", description = "{ name = \"KP_E\", value = 192 }", }, KP_ENTER = { type = "value", description = "{ name = \"KP_ENTER\", value = 88 }", }, KP_EQUALS = { type = "value", description = "{ name = \"KP_EQUALS\", value = 103 }", }, KP_EQUALSAS400 = { type = "value", description = "{ name = \"KP_EQUALSAS400\", value = 134 }", }, KP_EXCLAM = { type = "value", description = "{ name = \"KP_EXCLAM\", value = 207 }", }, KP_F = { type = "value", description = "{ name = \"KP_F\", value = 193 }", }, KP_GREATER = { type = "value", description = "{ name = \"KP_GREATER\", value = 198 }", }, KP_HASH = { type = "value", description = "{ name = \"KP_HASH\", value = 204 }", }, KP_HEXADECIMAL = { type = "value", description = "{ name = \"KP_HEXADECIMAL\", value = 221 }", }, KP_LEFTBRACE = { type = "value", description = "{ name = \"KP_LEFTBRACE\", value = 184 }", }, KP_LEFTPAREN = { type = "value", description = "{ name = \"KP_LEFTPAREN\", value = 182 }", }, KP_LESS = { type = "value", description = "{ name = \"KP_LESS\", value = 197 }", }, KP_MEMADD = { type = "value", description = "{ name = \"KP_MEMADD\", value = 211 }", }, KP_MEMCLEAR = { type = "value", description = "{ name = \"KP_MEMCLEAR\", value = 210 }", }, KP_MEMDIVIDE = { type = "value", description = "{ name = \"KP_MEMDIVIDE\", value = 214 }", }, KP_MEMMULTIPLY = { type = "value", description = "{ name = \"KP_MEMMULTIPLY\", value = 213 }", }, KP_MEMRECALL = { type = "value", description = "{ name = \"KP_MEMRECALL\", value = 209 }", }, KP_MEMSTORE = { type = "value", description = "{ name = \"KP_MEMSTORE\", value = 208 }", }, KP_MEMSUBTRACT = { type = "value", description = "{ name = \"KP_MEMSUBTRACT\", value = 212 }", }, KP_MINUS = { type = "value", description = "{ name = \"KP_MINUS\", value = 86 }", }, KP_MULTIPLY = { type = "value", description = "{ name = \"KP_MULTIPLY\", value = 85 }", }, KP_OCTAL = { type = "value", description = "{ name = \"KP_OCTAL\", value = 219 }", }, KP_PERCENT = { type = "value", description = "{ name = \"KP_PERCENT\", value = 196 }", }, KP_PERIOD = { type = "value", description = "{ name = \"KP_PERIOD\", value = 99 }", }, KP_PLUS = { type = "value", description = "{ name = \"KP_PLUS\", value = 87 }", }, KP_PLUSMINUS = { type = "value", description = "{ name = \"KP_PLUSMINUS\", value = 215 }", }, KP_POWER = { type = "value", description = "{ name = \"KP_POWER\", value = 195 }", }, KP_RIGHTBRACE = { type = "value", description = "{ name = \"KP_RIGHTBRACE\", value = 185 }", }, KP_RIGHTPAREN = { type = "value", description = "{ name = \"KP_RIGHTPAREN\", value = 183 }", }, KP_SPACE = { type = "value", description = "{ name = \"KP_SPACE\", value = 205 }", }, KP_TAB = { type = "value", description = "{ name = \"KP_TAB\", value = 186 }", }, KP_VERTICALBAR = { type = "value", description = "{ name = \"KP_VERTICALBAR\", value = 201 }", }, KP_XOR = { type = "value", description = "{ name = \"KP_XOR\", value = 194 }", }, L = { type = "value", description = "{ name = \"L\", value = 15 }", }, LALT = { type = "value", description = "{ name = \"LALT\", value = 226 }", }, LANG1 = { type = "value", description = "{ name = \"LANG1\", value = 144 }", }, LANG2 = { type = "value", description = "{ name = \"LANG2\", value = 145 }", }, LANG3 = { type = "value", description = "{ name = \"LANG3\", value = 146 }", }, LANG4 = { type = "value", description = "{ name = \"LANG4\", value = 147 }", }, LANG5 = { type = "value", description = "{ name = \"LANG5\", value = 148 }", }, LANG6 = { type = "value", description = "{ name = \"LANG6\", value = 149 }", }, LANG7 = { type = "value", description = "{ name = \"LANG7\", value = 150 }", }, LANG8 = { type = "value", description = "{ name = \"LANG8\", value = 151 }", }, LANG9 = { type = "value", description = "{ name = \"LANG9\", value = 152 }", }, LCTRL = { type = "value", description = "{ name = \"LCTRL\", value = 224 }", }, LEFT = { type = "value", description = "{ name = \"LEFT\", value = 80 }", }, LEFTBRACKET = { type = "value", description = "{ name = \"LEFTBRACKET\", value = 47 }", }, LGUI = { type = "value", description = "{ name = \"LGUI\", value = 227 }", }, LSHIFT = { type = "value", description = "{ name = \"LSHIFT\", value = 225 }", }, M = { type = "value", description = "{ name = \"M\", value = 16 }", }, MAIL = { type = "value", description = "{ name = \"MAIL\", value = 265 }", }, MAIN_0 = { type = "value", description = "{ name = \"MAIN_0\", value = 39 }", }, MAIN_1 = { type = "value", description = "{ name = \"MAIN_1\", value = 30 }", }, MAIN_2 = { type = "value", description = "{ name = \"MAIN_2\", value = 31 }", }, MAIN_3 = { type = "value", description = "{ name = \"MAIN_3\", value = 32 }", }, MAIN_4 = { type = "value", description = "{ name = \"MAIN_4\", value = 33 }", }, MAIN_5 = { type = "value", description = "{ name = \"MAIN_5\", value = 34 }", }, MAIN_6 = { type = "value", description = "{ name = \"MAIN_6\", value = 35 }", }, MAIN_7 = { type = "value", description = "{ name = \"MAIN_7\", value = 36 }", }, MAIN_8 = { type = "value", description = "{ name = \"MAIN_8\", value = 37 }", }, MAIN_9 = { type = "value", description = "{ name = \"MAIN_9\", value = 38 }", }, MEDIASELECT = { type = "value", description = "{ name = \"MEDIASELECT\", value = 263 }", }, MENU = { type = "value", description = "{ name = \"MENU\", value = 118 }", }, MINUS = { type = "value", description = "{ name = \"MINUS\", value = 45 }", }, MODE = { type = "value", description = "{ name = \"MODE\", value = 257 }", }, MUTE = { type = "value", description = "{ name = \"MUTE\", value = 127 }", }, N = { type = "value", description = "{ name = \"N\", value = 17 }", }, NONUSBACKSLASH = { type = "value", description = "{ name = \"NONUSBACKSLASH\", value = 100 }", }, NONUSHASH = { type = "value", description = "{ name = \"NONUSHASH\", value = 50 }", }, NUMLOCKCLEAR = { type = "value", description = "{ name = \"NUMLOCKCLEAR\", value = 83 }", }, O = { type = "value", description = "{ name = \"O\", value = 18 }", }, OPER = { type = "value", description = "{ name = \"OPER\", value = 161 }", }, OUT = { type = "value", description = "{ name = \"OUT\", value = 160 }", }, P = { type = "value", description = "{ name = \"P\", value = 19 }", }, PAGEDOWN = { type = "value", description = "{ name = \"PAGEDOWN\", value = 78 }", }, PAGEUP = { type = "value", description = "{ name = \"PAGEUP\", value = 75 }", }, PASTE = { type = "value", description = "{ name = \"PASTE\", value = 125 }", }, PAUSE = { type = "value", description = "{ name = \"PAUSE\", value = 72 }", }, PERIOD = { type = "value", description = "{ name = \"PERIOD\", value = 55 }", }, POWER = { type = "value", description = "{ name = \"POWER\", value = 102 }", }, PRINTSCREEN = { type = "value", description = "{ name = \"PRINTSCREEN\", value = 70 }", }, PRIOR = { type = "value", description = "{ name = \"PRIOR\", value = 157 }", }, Q = { type = "value", description = "{ name = \"Q\", value = 20 }", }, R = { type = "value", description = "{ name = \"R\", value = 21 }", }, RALT = { type = "value", description = "{ name = \"RALT\", value = 230 }", }, RCTRL = { type = "value", description = "{ name = \"RCTRL\", value = 228 }", }, RETURN = { type = "value", description = "{ name = \"RETURN\", value = 40 }", }, RETURN2 = { type = "value", description = "{ name = \"RETURN2\", value = 158 }", }, RGUI = { type = "value", description = "{ name = \"RGUI\", value = 231 }", }, RIGHT = { type = "value", description = "{ name = \"RIGHT\", value = 79 }", }, RIGHTBRACKET = { type = "value", description = "{ name = \"RIGHTBRACKET\", value = 48 }", }, RSHIFT = { type = "value", description = "{ name = \"RSHIFT\", value = 229 }", }, S = { type = "value", description = "{ name = \"S\", value = 22 }", }, SCROLLLOCK = { type = "value", description = "{ name = \"SCROLLLOCK\", value = 71 }", }, SELECT = { type = "value", description = "{ name = \"SELECT\", value = 119 }", }, SEMICOLON = { type = "value", description = "{ name = \"SEMICOLON\", value = 51 }", }, SEPARATOR = { type = "value", description = "{ name = \"SEPARATOR\", value = 159 }", }, SLASH = { type = "value", description = "{ name = \"SLASH\", value = 56 }", }, SLEEP = { type = "value", description = "{ name = \"SLEEP\", value = 282 }", }, SPACE = { type = "value", description = "{ name = \"SPACE\", value = 44 }", }, STOP = { type = "value", description = "{ name = \"STOP\", value = 120 }", }, SYSREQ = { type = "value", description = "{ name = \"SYSREQ\", value = 154 }", }, T = { type = "value", description = "{ name = \"T\", value = 23 }", }, TAB = { type = "value", description = "{ name = \"TAB\", value = 43 }", }, THOUSANDSSEPARATOR = { type = "value", description = "{ name = \"THOUSANDSSEPARATOR\", value = 178 }", }, U = { type = "value", description = "{ name = \"U\", value = 24 }", }, UNDO = { type = "value", description = "{ name = \"UNDO\", value = 122 }", }, UP = { type = "value", description = "{ name = \"UP\", value = 82 }", }, V = { type = "value", description = "{ name = \"V\", value = 25 }", }, VOLUMEDOWN = { type = "value", description = "{ name = \"VOLUMEDOWN\", value = 129 }", }, VOLUMEUP = { type = "value", description = "{ name = \"VOLUMEUP\", value = 128 }", }, W = { type = "value", description = "{ name = \"W\", value = 26 }", }, WWW = { type = "value", description = "{ name = \"WWW\", value = 264 }", }, X = { type = "value", description = "{ name = \"X\", value = 27 }", }, Y = { type = "value", description = "{ name = \"Y\", value = 28 }", }, Z = { type = "value", description = "{ name = \"Z\", value = 29 }", }, }, }, SHAPE_BOX = { type = "value", description = "Kollisionsformen für bodyNew.\n= 0", }, SHAPE_CAPSULE = { type = "value", description = "Kollisionsformen für bodyNew.\n= 2", }, SHAPE_CYLINDER = { type = "value", description = "Kollisionsformen für bodyNew.\n= 3", }, SHAPE_HULL = { type = "value", description = "Kollisionsformen für bodyNew.\n= 4", }, SHAPE_MESH = { type = "value", description = "Kollisionsformen für bodyNew.\n= 5", }, SHAPE_SPHERE = { type = "value", description = "Kollisionsformen für bodyNew.\n= 1", }, SINGE_AXIS_STRIDE = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 3", }, SINGE_CONTROLLER_AXES = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 6", }, SINGE_CONTROLLER_BUTTONS = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 15", }, SINGE_DEAD_ZONE = { type = "value", description = "Die DEAD_ZONE aus controls.cfg, in rohen Achseneinheiten.", }, SINGE_DISC = { type = "value", description = "Wahr, wenn das Spiel eine Laserdisc hat; falsch, wenn die Zeichenfläche die Welt ist.", }, SINGE_FRAMEWORK_VERSION = { type = "value", description = "Die Engine-Version, als Ganzzahlen, als String (\"v3.00\") und als die Zahl, die singeVersion() zurückgibt.\n= 3.0", }, SINGE_GAMEPAD_BASE = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 500", }, SINGE_GAMEPAD_BUTTON_OFFSET = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 18", }, SINGE_GAMEPAD_STRIDE = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 100", }, SINGE_LEGACY_SPRITE_ARGS = { type = "value", description = "Wahr, wenn das Spiel die Sprite-Argumentreihenfolge von 2.10 verlangt hat.", }, SINGE_MAX_CONTROLLERS = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 4", }, SINGE_MAX_MICE = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 4", }, SINGE_MOUSE_BASE = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 1000", }, SINGE_MOUSE_STRIDE = { type = "value", description = "Aufbau der Eingabecodes für Controller und Maus und wie viele Achsen und Knöpfe ein Pad hat; Framework.singe baut daraus die Tabellen GAMEPAD_N und MOUSE_N, und ein Servicebildschirm geht damit ein Pad durch.\n= 100", }, SINGE_ROTATE_STEP = { type = "value", description = "Was vldpSetScale, vldpSetShift und vldpSetRotate annehmen. Begrenze auf diese Werte statt auf eigene Kopien: Eine Verschiebung außerhalb des Bereichs beendet das Skript.\n= 90", }, SINGE_SCALE_MAX = { type = "value", description = "Was vldpSetScale, vldpSetShift und vldpSetRotate annehmen. Begrenze auf diese Werte statt auf eigene Kopien: Eine Verschiebung außerhalb des Bereichs beendet das Skript.\n= 100", }, SINGE_SCALE_MIN = { type = "value", description = "Was vldpSetScale, vldpSetShift und vldpSetRotate annehmen. Begrenze auf diese Werte statt auf eigene Kopien: Eine Verschiebung außerhalb des Bereichs beendet das Skript.\n= 25", }, SINGE_SHIFT_MAX = { type = "value", description = "Was vldpSetScale, vldpSetShift und vldpSetRotate annehmen. Begrenze auf diese Werte statt auf eigene Kopien: Eine Verschiebung außerhalb des Bereichs beendet das Skript.\n= 100", }, SINGE_SHIFT_MIN = { type = "value", description = "Was vldpSetScale, vldpSetShift und vldpSetRotate annehmen. Begrenze auf diese Werte statt auf eigene Kopien: Eine Verschiebung außerhalb des Bereichs beendet das Skript.\n= -100", }, SINGE_TRIGGER_THRESHOLD = { type = "value", description = "Die Schwelle der analogen Trigger in denselben rohen Einheiten; 0, wenn die Trigger auf SINGE_DEAD_ZONE liegen, was der Standard ist.", }, SINGE_UPDATE_CHECK = { type = "value", description = "= true", }, SINGE_VERSION_MAJOR = { type = "value", description = "Die Engine-Version, als Ganzzahlen, als String (\"v3.00\") und als die Zahl, die singeVersion() zurückgibt.\n= 3", }, SINGE_VERSION_MINOR = { type = "value", description = "Die Engine-Version, als Ganzzahlen, als String (\"v3.00\") und als die Zahl, die singeVersion() zurückgibt.\n= 0", }, SINGE_VERSION_STRING = { type = "value", description = "Die Engine-Version, als Ganzzahlen, als String (\"v3.00\") und als die Zahl, die singeVersion() zurückgibt.\n= \"v3.00b1\"", }, SINGLE_MOUSE = { type = "value", description = "Argumente für mouseSetMode.\n= 100", }, SOFT_BODY = { type = "value", description = "Arten von Soft Bodies für softNew.\n= 1", }, SOFT_CLOTH = { type = "value", description = "Arten von Soft Bodies für softNew.\n= 0", }, SOFT_ROPE = { type = "value", description = "Arten von Soft Bodies für softNew.\n= 2", }, SOUND_ERROR_INVALID = { type = "value", description = "-1, was soundPlay zurückgibt, wenn kein Kanal frei ist.\n= -1", }, SOUND_REMOVE_HANDLE = { type = "value", description = "-1, was soundPlay zurückgibt, wenn kein Kanal frei ist.\n= -1", }, SPRITE_ADD = { type = "value", description = "Blending für spriteSetBlend.\n= 1", }, SPRITE_ALPHA = { type = "value", description = "Blending für spriteSetBlend.\n= 0", }, SPRITE_MULTIPLY = { type = "value", description = "Blending für spriteSetBlend.\n= 2", }, SWITCH_BUTTON1 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 6", }, SWITCH_BUTTON2 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 7", }, SWITCH_BUTTON3 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 8", }, SWITCH_BUTTON4 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 21", }, SWITCH_COIN1 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 9", }, SWITCH_COIN2 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 10", }, SWITCH_CONSOLE = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 20", }, SWITCH_DOWN = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 2", }, SWITCH_GRAB = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 23", }, SWITCH_LEFT = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 1", }, SWITCH_MOUSE_DISCONNECT = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 24", }, SWITCH_PAUSE = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 19", }, SWITCH_QUIT = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 18", }, SWITCH_RECORD = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 25", }, SWITCH_RESET = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 16", }, SWITCH_RIGHT = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 3", }, SWITCH_SCREENSHOT = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 17", }, SWITCH_SERVICE = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 14", }, SWITCH_SKILL1 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 11", }, SWITCH_SKILL2 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 12", }, SWITCH_SKILL3 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 13", }, SWITCH_START1 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 4", }, SWITCH_START2 = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 5", }, SWITCH_TEST = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 15", }, SWITCH_TILT = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 22", }, SWITCH_UP = { type = "value", description = "Werte, die in MODE_NORMAL an onInputPressed / onInputReleased übergeben werden. SWITCH_MOUSE_DISCONNECT löst die Engine selbst aus, wenn eine Maus oder Lightgun abgezogen wird, einmal als Drücken und einmal als Loslassen; keine Taste und kein Knopf erzeugt ihn. SWITCH_RECORD ist der Aufnahmeschalter, auf den die Engine selbst reagiert, wie auf den Screenshot-Schalter.\n= 0", }, SelectOptionsProxy = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ }", }, __setters = { type = "value", description = "{ }", }, }, }, TONEMAP_ACES = { type = "value", description = "Tonkurven für sceneSetTonemap.\n= 2", }, TONEMAP_NEUTRAL = { type = "value", description = "Tonkurven für sceneSetTonemap.\n= 1", }, TONEMAP_NONE = { type = "value", description = "Tonkurven für sceneSetTonemap.\n= 0", }, VEHICLE_BOAT = { type = "value", description = "Fahrzeugarten für vehicleNew.\n= 3", }, VEHICLE_CAR = { type = "value", description = "Fahrzeugarten für vehicleNew.\n= 0", }, VEHICLE_MOTORCYCLE = { type = "value", description = "Fahrzeugarten für vehicleNew.\n= 1", }, VEHICLE_TANK = { type = "value", description = "Fahrzeugarten für vehicleNew.\n= 2", }, Vector2f = { type = "lib", description = "", childs = { DotProduct = { type = "function", description = "", args = "(...)", returns = "()", }, Normalise = { type = "function", description = "", args = "(...)", returns = "()", }, Rotate = { type = "function", description = "", args = "(...)", returns = "()", }, __getters = { type = "value", description = "{ magnitude, x, y }", }, __setters = { type = "value", description = "{ x, y }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, Vector2i = { type = "lib", description = "", childs = { __getters = { type = "value", description = "{ magnitude, x, y }", }, __setters = { type = "value", description = "{ x, y }", }, new = { type = "function", description = "", args = "(...)", returns = "()", }, }, }, allowSocketCall = { type = "function", description = "Hypseus-Erweiterung, in Singe immer false. Hypseus antwortet damit, ob der Benutzer ihm erlaubt hat, Daten an einen Statistikserver zu senden, was dort -noserversend abschaltet; das Senden selbst ist dort auskommentiert. Singe sendet nirgendwohin etwas, also ist nichts erlaubt, und die Antwort ändert sich nie. Die Funktion gibt es, damit ein Spiel, das fragt, nicht an einer fehlenden Funktion stehen bleibt.\nRückgabe: ein Boolean, immer false.\nSeit: 3.00", args = "()", returns = "(allowed)", }, animationGetTime = { type = "function", description = "Die aktuelle Zeit im Clip der Basisebene, ob er spielt oder pausiert, in den eigenen Sekunden des Clips (ein speed von 2 bewegt sie doppelt so schnell). Ein Clip in Schleife springt an seinem Ende auf 0 zurück; einer ohne Schleife bleibt bei seiner Länge stehen. Wurde noch nichts gespielt, ergibt das 0. Clips auf den oberen Ebenen werden nicht gemeldet. Ein Knoten, der keine Instanzwurzel ist, beendet das Skript.\nRückgabe: Sekunden als Zahl.\nSeit: 3.00.", args = "(node)", returns = "(seconds)", }, animationIsPlaying = { type = "function", description = "Ob der Clip der Basisebene auf dieser Instanz weiterläuft. Ein Clip ohne Schleife hört auf zu spielen, wenn er sein Ende erreicht, und animationPause und animationStop machen dies beide false; ein Clip in Schleife bleibt true, bis er gestoppt wird. Anders als bei den übrigen Aufrufen hier beendet ein Knoten, der keine Instanzwurzel ist, nicht das Skript, sondern bekommt false als Antwort.\nRückgabe: Boolean.\nSeit: 3.00.", args = "(node)", returns = "(boolean)", }, animationPause = { type = "function", description = "Friert den Clip der Basisebene bei seiner aktuellen Zeit ein; die Knoten halten diese Pose, bis animationResume ihn fortsetzt oder ein anderer Clip gespielt wird. Clips auf den oberen Ebenen laufen weiter. Eine Instanz zu pausieren, auf der nichts spielt, ist harmlos. Ein Knoten, der keine Instanzwurzel ist, beendet das Skript.\nSeit: 3.00.", args = "(node)", returns = "()", }, animationPlay = { type = "function", description = "Startet einen der Clips des Modells von seinem Anfang an auf der Basisebene dieser Instanz und ersetzt, was dort gespielt hat; die Pose wird sofort aktualisiert. Mit einem fade läuft der alte Clip weiter, während er über so viele Sekunden ausgeblendet wird, und wenn nichts gespielt hat, beginnt die Überblendung bei der Pose, in der die Knoten gerade sind (eine eben abgeschaltete Ragdoll, eine per Skript gesetzte Pose), wobei Knoten, die der neue Clip nicht animiert, sanft in die Ruhepose des Modells zurückgleiten. Ein Knoten, der keine Instanzwurzel ist, ein Name, den das Modell nicht hat, oder eine Zahl außerhalb von 1 bis zur Anzahl der Clips beendet das Skript.\nSeit: 3.00.", args = "(node, nameOrIndex [, loop: boolean, speed, fade])", returns = "()", }, animationPlayLayer = { type = "function", description = "Spielt einen Clip auf einer der vier Ebenen über der Basis, über alles darunter geblendet nach dem Gewicht der Ebene (animationSetLayerWeight, Standard 1) und auf einen Teil des Skeletts beschränkt, wenn eine Maske gesetzt ist (animationSetLayerMask). Höhere Ebenen werden über niedrigere geblendet; jede Ebene führt ihren eigenen Clip, ihre eigene Zeit und Schleife unabhängig von der Basis. nameOrIndex, loop, speed und fade bedeuten dasselbe wie bei animationPlay, mit einem Unterschied: Ein fade auf einer Ebene, die leer war, fährt das Gewicht der Ebene von 0 hoch, statt von einer Pose überzublenden. Eine Ebene außerhalb von 1 bis 4, ein Knoten, der keine Instanzwurzel ist, oder ein Clip, den das Modell nicht hat, beendet das Skript.\nSeit: 3.00.", args = "(node, layer, nameOrIndex [, loop, speed, fade])", returns = "()", }, animationResume = { type = "function", description = "Setzt den Clip der Basisebene dort fort, wo animationPause ihn eingefroren hat, oder dort, wohin animationSetTime ihn inzwischen bewegt hat. Einen Clip fortzusetzen, der bereits spielt, ändert nichts. Eine Instanz ohne Clip auf ihrer Basisebene (nie gespielt oder gestoppt) beendet das Skript, ebenso ein Knoten, der keine Instanzwurzel ist.\nSeit: 3.00.", args = "(node)", returns = "()", }, animationSetLayerMask = { type = "function", description = "Beschränkt eine Ebene auf maskNode und alles darunter, sodass der Clip auf dieser Ebene nur diesen Teil des Modells bewegt und der Rest weiter den Ebenen darunter folgt. maskNode muss einer der eigenen Knoten der Instanz sein, gefunden mit nodeFind(name, node); die Instanzwurzel selbst zählt nicht. maskNode wegzulassen oder nil zu übergeben hebt die Beschränkung auf. Die Maske bleibt über spätere Aufrufe von animationPlayLayer hinweg auf der Ebene. Eine Ebene außerhalb von 1 bis 4 beendet das Skript, ebenso ein Knoten, der keine Instanzwurzel ist, oder ein maskNode, der nicht zu dieser Instanz gehört.\nSeit: 3.00.", args = "(node, layer [, maskNode])", returns = "()", }, animationSetLayerWeight = { type = "function", description = "Wie stark der Clip einer Ebene über dem durchscheint, was darunter liegt, 0 (gar nicht) bis 1 (voll, der Standard); Werte außerhalb dieses Bereichs werden begrenzt. Das Gewicht gehört zur Ebene, nicht zum Clip, also übersteht es animationPlayLayer und animationStop auf dieser Ebene. Ändere es jeden Frame ein wenig, um eine Ebene von Hand ein- oder auszublenden, oder lass einen fade bei animationPlayLayer das einmal erledigen. Eine Ebene außerhalb von 1 bis 4 oder ein Knoten, der keine Instanzwurzel ist, beendet das Skript.\nSeit: 3.00.", args = "(node, layer, weight)", returns = "()", }, animationSetTime = { type = "function", description = "Lässt den Clip der Basisebene zu einer Zeit in seinen eigenen Sekunden springen; negative Werte werden zu 0. Die Pose wird sofort aktualisiert, ob der Clip spielt oder nicht, sodass eine pausierte Instanz auf einen genauen Frame gespult werden kann und eine spielende von der neuen Zeit aus weiterläuft. Eine laufende Überblendung auf der Basisebene wird abgebrochen. Eine Instanz ohne Clip auf ihrer Basisebene beendet das Skript, ebenso ein Knoten, der keine Instanzwurzel ist.\nSeit: 3.00.", args = "(node, seconds)", returns = "()", }, animationStop = { type = "function", description = "Stoppt und vergisst jeden Clip auf der Instanz oder nur den Clip auf einer Ebene über der Basis (1 bis 4); die Basisebene allein lässt sich nicht ohne die Ebenen darüber stoppen. Die Knoten behalten ihre letzte Pose, aus der ein folgendes animationPlay mit einem fade sanft herausführt. Nachdem alles gestoppt wurde, beenden animationResume und animationSetTime das Skript, bis wieder etwas gespielt wird. Gewichte und Masken der Ebenen bleiben erhalten. Eine Ebene außerhalb von 1 bis 4 oder ein Knoten, der keine Instanzwurzel ist, beendet das Skript.\nSeit: 3.00.", args = "(node [, layer])", returns = "()", }, bodyApplyForce = { type = "function", description = "Übt auf einen dynamischen Körper eine Kraft in Newton aus, nur für die Schritte dieses Frames; ruf es jeden Frame auf, um weiter zu schieben. Ohne Punkt wirkt die Kraft durch den Schwerpunkt und bewegt den Körper nur; mit einem Weltpunkt (px, py, pz) dreht sie den Körper außerdem um seinen Mittelpunkt. Eine Kraft beschleunigt um Kraft geteilt durch Masse, also bemiss sie nach bodySetMass. Statische und kinematische Körper ignorieren sie.\nSeit: 3.00.", args = "(node, fx, fy, fz [, px, py, pz])", returns = "()", }, bodyApplyImpulse = { type = "function", description = "Ändert den Impuls eines dynamischen Körpers auf einen Schlag: Ein Impuls von Masse mal Geschwindigkeit fügt diese Geschwindigkeit hinzu. Ohne Punkt wirkt er durch den Schwerpunkt; mit einem Weltpunkt (px, py, pz) dreht er den Körper außerdem, sodass ein Treffer nahe der Oberkante einer Kiste sie umkippt. Das ist der Aufruf für einen Treffer, einen Tritt, eine Explosion oder einen Abschuss, während bodyApplyForce für ein Schieben ist, das anhält. Statische und kinematische Körper ignorieren ihn.\nSeit: 3.00.", args = "(node, ix, iy, iz [, px, py, pz])", returns = "()", }, bodyDelete = { type = "function", description = "Entfernt den Körper aus der Welt; der Knoten und sein Mesh bleiben, wo sie sind. Jedes Gelenk, das am Körper hängt, und jedes darauf gebaute Fahrzeug verschwindet mit ihm. Den Knoten zu löschen entfernt auch seinen Körper, also wird dies nur gebraucht, um einen Knoten ohne seinen Körper zu behalten. Beendet das Skript, wenn der Knoten keinen Körper hat.\nSeit: 3.00.", args = "(node)", returns = "()", }, bodyGetAngularVelocity = { type = "function", description = "Wie schnell sich der Körper um jede Weltachse dreht, in Radiant pro Sekunde, beim letzten Schritt. Ein statischer Körper meldet null. Nützlich für die Tonhöhe eines Rads oder einen Drehzähler.\nRückgabe: Drei Zahlen, Radiant pro Sekunde um X, Y und Z.\nSeit: 3.00.", args = "(node)", returns = "(x, y, z)", }, bodyGetVelocity = { type = "function", description = "Wie schnell sich der Körper entlang jeder Weltachse bewegt, in Welteinheiten pro Sekunde, beim letzten Schritt. Ein statischer Körper meldet null; ein kinematischer Körper meldet die Geschwindigkeit, die sich aus der Bewegung seines Knotens ergab.\nRückgabe: Drei Zahlen, Einheiten pro Sekunde entlang X, Y und Z.\nSeit: 3.00.", args = "(node)", returns = "(x, y, z)", }, bodyIsResting = { type = "function", description = "Ob die Simulation den Körper schlafen gelegt hat, weil er sich nicht mehr bewegt. Statische Körper und mit bodySetEnabled aus der Welt genommene Körper gelten als ruhend. Ein ruhender Körper wacht von selbst auf, wenn ihn etwas berührt oder wenn eine Geschwindigkeit, eine Kraft oder ein Impuls angewendet wird.\nRückgabe: Boolean.\nSeit: 3.00.", args = "(node)", returns = "(boolean)", }, bodyNew = { type = "function", description = "Gibt dem Knoten einen Körper des angegebenen Typs, dort platziert, wo der Knoten gerade in der Welt ist (seine Eltern eingeschlossen), mit einer Kollisionsform, die durch a, b und c in Welteinheiten bemessen und mit der Weltskalierung des Knotens skaliert wird. Ein zweiter Aufruf auf demselben Knoten ersetzt den ersten, und ein Knoten, der eine Spielfigur hatte, verliert sie. Die Masse eines dynamischen Körpers ergibt sich aus dem Volumen seiner Form bei der Dichte von Wasser, also setze bodySetMass bei allem, was sich leicht anfühlen soll. Die Skalierung des Knotens später zu ändern, ändert die Größe des Körpers nicht. Beendet das Skript bei einem unbekannten Typ oder einer unbekannten Form, wenn auf diesem Rechner keine Physik verfügbar ist, wenn die Welt bereits 4096 Körper enthält oder wenn die Form nicht gebaut werden kann (ein dynamisches SHAPE_MESH oder eine Hülle ohne Mesh unter dem Knoten).\nSeit: 3.00.", args = "(node, type, shape [, a, b, c])", returns = "()", }, bodySetAngularVelocity = { type = "function", description = "Setzt die Drehung um jede Weltachse, in Radiant pro Sekunde, und weckt den Körper. Statische Körper ignorieren es. Die Drehung eines kinematischen Körpers wird beim nächsten Schritt von seinem Knoten überschrieben, also wirkt der Aufruf nur bei dynamischen Körpern fort.\nSeit: 3.00.", args = "(node, x, y, z)", returns = "()", }, bodySetBounce = { type = "function", description = "Setzt die Restitution des Körpers, von 0 (bleibt sofort liegen) bis 1 (prallt mit allem zurück, womit er ankam); Werte außerhalb dieses Bereichs werden begrenzt. Der Standard ist 0.1. Die Werte der beiden sich berührenden Körper werden kombiniert, sodass ein lebhafter Ball auf einem dämpfenden Boden trotzdem springt.\nSeit: 3.00.", args = "(node, bounce)", returns = "()", }, bodySetBuoyancy = { type = "function", description = "Wie der Körper schwimmt, wenn er in einem Wasservolumen ist: 1 ist neutral, mehr schwimmt höher, weniger sinkt, und 0 ist ein Stein. Der Standard ist 1.2, das sanft schwimmt. Der Faktor multipliziert die eigene Dichte des Wassers aus bodySetWater, und negative Werte werden auf 0 begrenzt. Nur dynamische Körper werden von Wasser bewegt, aber der Wert kann auf jedem Körper gesetzt werden.\nSeit: 3.00.", args = "(node, factor)", returns = "()", }, bodySetCurrent = { type = "function", description = "Setzt die Strömung in einem Wasservolumen, in Welteinheiten pro Sekunde entlang jeder Weltachse; dynamische Körper, die darin schwimmen, treiben mit der Strömung, und eine schwimmende Spielfigur wird von ihr mitgetragen. Der Standard ist keine Strömung. Setze sie auf dem Knoten, auf dem bodySetWater aufgerufen wurde; auf jedem anderen Körper wird sie gespeichert und bewirkt nichts.\nSeit: 3.00.", args = "(node, x, y, z)", returns = "()", }, bodySetEnabled = { type = "function", description = "Nimmt den Körper mit false aus der Welt: Er kollidiert nicht mehr, bewegt sich nicht mehr, treibt seinen Knoten weder an noch folgt er ihm, und er gilt als ruhend. true setzt ihn dort wieder ein, wo er ist, und weckt ihn. Der Körper behält Form, Masse und Einstellungen, also ist das billiger, als ihn für etwas, das kommt und geht, zu löschen und neu zu erzeugen.\nSeit: 3.00.", args = "(node, enabled)", returns = "()", }, bodySetFriction = { type = "function", description = "Setzt die Oberflächenreibung: 0 ist Eis, 0.5 (der Standard) ist gewöhnlich, höhere Werte greifen stärker. Negative Werte werden auf 0 begrenzt. Die Werte der beiden sich berührenden Körper werden kombiniert, sodass ein rutschiger Boden einen niedrigen Wert auf dem Boden braucht, nicht auf allem, was darauf läuft.\nSeit: 3.00.", args = "(node, friction)", returns = "()", }, bodySetMass = { type = "function", description = "Skaliert die Masse eines dynamischen Körpers und mit ihr seine Trägheit neu. Tu das bei allem, was sich leicht oder schwer anfühlen soll: Der Standard ist das Volumen der Form bei der Dichte von Wasser, sodass ein türgroßer Quader etwa 140 Kilogramm wiegt und ein Stups ihn nicht bewegt. Kräfte und Impulse skalieren mit der Masse, also setze die Masse, bevor du sie abstimmst. Beendet das Skript, wenn der Körper nicht dynamisch oder die Masse nicht positiv ist.\nSeit: 3.00.", args = "(node, kilograms)", returns = "()", }, bodySetTrigger = { type = "function", description = "Macht den Körper mit true zum Trigger: Er schiebt nichts und hält nichts auf, aber onTrigger meldet jeden Körper und jede Spielfigur, die ihn betreten und verlassen. false macht ihn wieder fest: Was in ihm war, wird ohne Meldung des Verlassens vergessen, während ein Trigger, in dem der Körper selbst steht, ihn weiter meldet. Ein Trigger ist meist ein statischer Quader oder eine statische Kugel über einer Tür, einer Ziellinie oder einer Gefahrenzone. Strahlen aus physicsRaycast treffen Trigger wie jeden anderen Körper.\nSeit: 3.00.", args = "(node, trigger)", returns = "()", }, bodySetVelocity = { type = "function", description = "Setzt die Geschwindigkeit des Körpers entlang jeder Weltachse, in Welteinheiten pro Sekunde, und weckt ihn. Das ersetzt jede Geschwindigkeit, die der Körper hatte, während bodyApplyImpulse etwas hinzufügt. Statische Körper ignorieren es, und die Geschwindigkeit eines kinematischen Körpers wird beim nächsten Schritt aus der Bewegung seines Knotens überschrieben.\nSeit: 3.00.", args = "(node, x, y, z)", returns = "()", }, bodySetWater = { type = "function", description = "Füllt einen statischen Körper mit Wasser und macht ihn zum Trigger: Die Oberseite seiner Form ist die Oberfläche, und jeder dynamische Körper darin schwimmt, sinkt oder rollt durch den Auftrieb gegen diese Oberfläche (der eingetauchte Teil der Form zählt, sodass eine schräge Kiste sich aufrichtet), gebremst durch die Widerstände. Eine Spielfigur, deren Mitte unter der Oberfläche liegt, schwimmt. Weil das Volumen ein Trigger ist, feuert onTrigger beim Hinein- und Hinausgehen. Das Wasser wird nicht gezeichnet: Gib dem Knoten ein Material mit Blending oder keines. Beendet das Skript, wenn der Körper nicht statisch ist.\nSeit: 3.00.", args = "(node, density [, linearDrag, angularDrag])", returns = "()", }, cameraSet = { type = "function", description = "cameraSet(node)\ncameraSet(-1)\nMacht einen Knoten zur Kamera: Die Szene wird von seiner Weltposition aus mit Blick entlang seiner eigenen -Z-Richtung gezeichnet, sodass Bewegung und Drehung seiner Eltern zählen. Jeder Knoten geht, auch einer, der zugleich ein Mesh oder ein Licht trägt, und die Kamera zu wechseln ist ein einziger Aufruf. -1 stellt die Standardansicht von (0, 0, 5) mit Blick auf den Ursprung wieder her. Wird der Kameraknoten gelöscht, fällt die Ansicht ebenfalls auf die Standardansicht zurück. Beendet das Skript bei einem ungültigen Knoten-Handle.\nSeit: 3.00.", args = "(node)", returns = "()", }, cameraSetOrthographic = { type = "function", description = "Schaltet auf eine Parallelprojektion um, die height Welteinheiten von oben bis unten zeigt, wobei die Breite dem Seitenverhältnis der Ebene folgt, von near bis far vor der Kamera. Entfernung lässt Dinge nicht schrumpfen, was zu Diagrammen, isometrischen und seitlichen Ansichten und HUD-artigen Szenen passt. Die Einstellung gilt für den aktuellen und jeden späteren Kameraknoten, bis cameraSetPerspective aufgerufen wird. Der Schatten eines gerichteten Lichts benutzt unter einer orthografischen Kamera eine einzige Shadow Map, egal, was sceneSetShadowCascades sagt.\nSeit: 3.00.", args = "(height, near, far)", returns = "()", }, cameraSetPerspective = { type = "function", description = "Schaltet auf die übliche perspektivische Projektion um, den Standard. fov ist das vertikale Sichtfeld in Grad (Standard 60); near und far (Standards 0.1 und 1000) begrenzen, was gezeichnet wird, in Welteinheiten vor der Kamera. Die Tiefengenauigkeit verteilt sich zwischen beiden, also halte near so groß, wie die Szene es erlaubt, und far nicht größer als nötig: 0.05 bis 100 für einen Raum, 0.1 bis 400 für eine Landschaft. Die Einstellung gilt für den aktuellen und jeden späteren Kameraknoten und für gerenderte Ansichten.\nSeit: 3.00.", args = "(fov, near, far)", returns = "()", }, collideCircles = { type = "function", description = "Ob sich zwei Kreise überschneiden. Billiger, als es aussieht: Für eine Ja-oder-Nein-Frage wird keine Quadratwurzel gezogen.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(x1, y1, radius1, x2, y2, radius2)", returns = "(touching)", }, collidePointCircle = { type = "function", description = "Ob ein Punkt innerhalb eines Kreises liegt. Der Rand zählt als innen.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(pointX, pointY, x, y, radius)", returns = "(inside)", }, collidePointPolygon = { type = "function", description = "Ob ein Punkt innerhalb eines Polygons beliebiger Form liegt, konkave eingeschlossen. Die Tabelle ist eine flache Liste aus x, y, x, y -- die Form, die eine Hitbox in den meisten Spielen ohnehin hat -- und der Umlaufsinn spielt keine Rolle. Weniger als drei Ecken enthalten nichts. Höchstens 256 Ecken.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(pointX, pointY, points: table)", returns = "(inside)", }, collidePointRect = { type = "function", description = "Ob ein Punkt innerhalb eines Rechtecks liegt. Der Rand zählt als innen.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(pointX, pointY, x, y, width, height)", returns = "(inside)", }, collideRectCircle = { type = "function", description = "Ob sich ein Rechteck und ein Kreis überschneiden; dazu wird der Punkt des Rechtecks gesucht, der dem Mittelpunkt des Kreises am nächsten liegt.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(x, y, width, height, circleX, circleY, radius)", returns = "(touching)", }, collideRects = { type = "function", description = "Ob sich zwei Rechtecke überschneiden. Die Funktion, zu der du am häufigsten greifen wirst.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(x1, y1, width1, height1, x2, y2, width2, height2)", returns = "(touching)", }, collideSegments = { type = "function", description = "Ob sich zwei Strecken kreuzen: ein Schuss entlang einer Bahn gegen eine Wand oder der Schritt, den ein bewegtes Objekt machen will, gegen die Kante, die es nicht überschreiten darf. Strecken, die aufeinander liegen, ergeben false, weil „wo kreuzen sie sich“ dann keine eindeutige Antwort hat.\nRückgabe: true oder false.\nSeit: 3.00.", args = "(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2)", returns = "(crossing)", }, colorBackground = { type = "function", description = "Setzt die Hintergrundfarbe: womit overlayClear das Overlay füllt und was Text in FONT_QUALITY_SHADED aus fontPrint und fontToSprite hinter seine Glyphen malt. Beim Start ist sie transparentes Schwarz, und Alpha ist ohne Angabe 0, sodass colorBackground(0, 0, 0) gefolgt von overlayClear() das Overlay wieder unsichtbar macht. Ein teilweises Alpha über Schwarz dunkelt das Video ab; 255 verdeckt es. Kanalwerte außerhalb des Bereichs werden begrenzt statt abgewiesen.\nSeit: 1.x", args = "(r, g, b [, a])", returns = "()", }, colorForeground = { type = "function", description = "Setzt die Vordergrundfarbe, die overlayBox, overlayCircle, overlayEllipse, overlayLine und overlayPlot verwenden, und die Textfarbe für fontPrint und fontToSprite. Beim Start ist sie deckendes Weiß, und Alpha ist ohne Angabe 255, das Gegenteil von colorBackground. Sprites und overlayPrint werden mit ihren eigenen Pixeln gezeichnet und nicht eingefärbt. Kanalwerte außerhalb des Bereichs werden begrenzt statt abgewiesen.\nSeit: 1.x", args = "(r, g, b [, a])", returns = "()", }, controllerDoRumble = { type = "function", description = "controllerDoRumble(strength, duration)\ncontrollerDoRumble(controller, strength, duration)\nHypseus-Erweiterung. Lässt einen Controller mit beiden Motoren in einer von vier Stärken für eine von vier Dauern vibrieren. Die Form mit zwei Argumenten spricht Controller 0 an. Ein Slot ohne Controller tut nichts (Hypseus bricht dort ab, deshalb sichern sich seine Spiele mit controllerIsValid ab); eine Stärke oder Dauer außerhalb von 1 bis 4 oder ein Index außerhalb von 0 bis 3 bricht das Skript ab. Ein Controller ohne Vibrationsunterstützung ignoriert den Aufruf.\nSeit: 3.00, als Erweiterung von Hypseus Singe.", args = "(strength, duration)", returns = "()", }, controllerGetAxis = { type = "function", description = "Gibt die Stellung einer analogen Achse zurück, wie die Engine sie zuletzt gesehen hat. Der Wert wird bei jedem Achsenereignis aktualisiert, auch bei Bewegung innerhalb der Totzone, und ist 0 für einen Controller, der nicht verbunden ist, oder eine Achse, die sich nie bewegt hat. Sticks reichen von -32768 bis 32767; Trigger ruhen bei 0 und erreichen voll gedrückt 32767. Ein Index außerhalb von 0 bis 3 oder eine Achse außerhalb von 0 bis 5 bricht das Skript ab.\nRückgabe: Ganzzahl, -32768 bis 32767.\nSeit: 2.00", args = "(controller, axis)", returns = "(integer)", }, controllerGetButton = { type = "function", description = "Gibt zurück, ob eine Taste gerade gehalten wird, direkt vom Controller gelesen statt aus der Ereigniswarteschlange. Verwende es zum Aufladen durch Gedrückthalten und für ähnliche Fälle, in denen onInputPressed und onInputReleased umständlich sind. Ein Slot ohne Controller ergibt false. Der Tastencode muss aus der Tabelle GAMEPAD_N desselben Controller-Index stammen; ein Code aus der Tabelle eines anderen Controllers oder ein Achsencode fällt aus dem Tastenbereich und bricht das Skript ab, ebenso ein Index außerhalb von 0 bis 3.\nRückgabe: Boolean.\nSeit: 2.10", args = "(controller, button)", returns = "(boolean)", }, controllerGetName = { type = "function", description = "Der Name des Geräts in einem Controller-Slot, wie SDL ihn meldet, oder nil, wenn der Slot leer ist. Ein Gerät, das SDL nicht erkannt hat, meldet seinen eigenen Namen über das Mapping, das Singe dafür geschrieben hat, sodass ein Service-Bildschirm einen Arcade-Encoder ebenso leicht mit Namen auflisten kann wie ein Markenpad. Ein Index außerhalb von 0 bis 3 bricht das Skript ab.\nRückgabe: String oder nil.\nSeit: 3.00", args = "(controller)", returns = "(string)", }, controllerGetPadding = { type = "function", description = "Hypseus-Erweiterung, in Singe immer 0. Hypseus addiert diesen Offset zu einem Schaltercode, der von einem Gamepad kam, damit ein Spiel erkennen kann, welches Gerät was gedrückt hat, und den Schalter trotzdem durch Abziehen zurückgewinnt. Singe liefert Gamepad-Eingaben als gewöhnliche belegte Schalter ohne eine solche Markierung, deshalb antwortet es mit 0: ein Spiel, das auf den verschobenen Bereich prüft, nimmt seinen anderen Zweig und liest den Schalter so, wie er ist.\nRückgabe: eine Ganzzahl, immer 0.\nSeit: 3.00", args = "()", returns = "(padding)", }, controllerHowMany = { type = "function", description = "Hypseus-Erweiterung. Wie viele Gamepads geöffnet sind, von den vier Slots, die Singe hat. Da jeder Joystick, den Singe öffnen kann, zum Gamepad wird (siehe Jedes Gerät ist ein Gamepad), werden hier auch ein Arcade-Encoder oder ein Spinner mitgezählt.\nRückgabe: Zahl, 0 bis 4.\nSeit: 3.00, als Erweiterung von Hypseus Singe.", args = "()", returns = "(number)", }, controllerIsValid = { type = "function", description = "Hypseus-Erweiterung. Gibt zurück, ob gerade ein Controller im Slot geöffnet ist; Controller kommen und gehen beim Ein- und Ausstecken im laufenden Betrieb, frag also vor jedem controllerDoRumble. Ein Index außerhalb von 0 bis 3 bricht das Skript ab.\nRückgabe: Boolean.\nSeit: 3.00, als Erweiterung von Hypseus Singe.", args = "(controller)", returns = "(boolean)", }, controllerSetPadding = { type = "function", description = "Hypseus-Erweiterung, angenommen und ignoriert. Warum es den Offset, den sie verlangt, in Singe nicht gibt, steht bei controllerGetPadding. Ihn einzuschalten, ohne die Ereignisse zu markieren, wäre schlimmer, als ihn ausgeschaltet zu lassen, weil das Spiel dann einen Offset von Schaltercodes abziehen würde, die nie einen trugen.\nRückgabe: nichts.\nSeit: 3.00", args = "(boolean)", returns = "()", }, daphneGetHeight = { type = "function", description = "Aliase in Framework.singe Bevorzuge die singe*-Entsprechungen.", args = "()", returns = "()", anchor = "unimplementedandlegacy", }, daphneGetWidth = { type = "function", description = "Aliase in Framework.singe Bevorzuge die singe*-Entsprechungen.", args = "()", returns = "()", anchor = "unimplementedandlegacy", }, daphneScreenshot = { type = "function", description = "Aliase in Framework.singe Bevorzuge die singe*-Entsprechungen.", args = "()", returns = "()", anchor = "unimplementedandlegacy", }, debugPrint = { type = "function", description = "Gibt eine Zeile auf der Konsole (Standardausgabe) aus. Wurde Singe mit --noconsole gestartet, wird nichts ausgegeben; mit --trace landen der Aufruf und seine Nachricht außerdem in trace.txt. Das Argument muss ein String oder eine Zahl sein; alles andere bricht das Skript ab, verpacke Werte also in tostring oder verwende string.format. Der Aufruf ist billig genug, um im ausgelieferten Code zu bleiben, wird aber nicht gedrosselt, eine Ausgabe in onOverlayUpdate läuft also in jedem Frame.\nSeit: 1.x", args = "(message)", returns = "()", }, discAudio = { type = "function", description = "Schaltet einen Kanal der Tonspur der Disc ein oder aus. Der Kanal wird auf die eingestellte Laserdisc-Lautstärke (--volume_vldp, Standard 100) gesetzt, wenn enabled true ist, und auf 0, wenn es false ist; der andere Kanal bleibt, wie er ist. Viele Originaltitel hatten Erzählung oder eine Datenspur nur auf einem Kanal, und mit diesem Aufruf bringst du sie zum Schweigen. Ein anderer Kanal als 1 oder 2 beendet das Skript. Ohne Disc tut der Aufruf nichts.\nSeit: 1.x", args = "(channel, enabled)", returns = "()", }, discAudioSuffix = { type = "function", description = "Hypseus-Erweiterung. Schaltet die Disc auf eine eigene Audiodatei neben ihrem Video um: .ogg, wobei die Basis der Name der Videodatei ohne Endung ist, sodass movie.m2v mit \"-es\" die Datei movie-es.ogg abspielt. Die Datei wird beim aktuellen Frame geöffnet, und die Wiedergabe richtet sich neu aus, wie bei discSetAudioTrack; Lautstärke, Wiedergabezustand und Spurindex bleiben erhalten, sofern die neue Datei so viele Spuren hat. Mit einer Frame-Datei schaltet jedes Segment um. Ein leeres Suffix stellt das Standardaudio wieder her: die .ogg neben einer .m2v oder den Ton in jedem anderen Container. Gibt true zurück, wenn die Datei geöffnet wurde; fehlt sie, läuft das bisherige Audio weiter, nichts wird gemerkt, und false kommt zurück (Hypseus hinterlässt in diesem Fall Stille). Das Suffix wird vergessen, wenn das Skript neu geladen wird. Ohne Disc gibt der Aufruf false zurück. Verwende ihn für ein Sprachmenü, dessen Spuren als eigene Dateien mitgeliefert werden; Spuren innerhalb einer Datei sind Aufgabe von discSetAudioTrack.\nRückgabe: Boolean.\nSeit: 3.00, als Erweiterung von Hypseus Singe.", args = "(suffix: string)", returns = "(boolean)", }, discChangeSpeed = { type = "function", description = "Tut nichts. Echte Laserdisc-Player konnten mit einer anderen Geschwindigkeit als 1x laufen; der Software-Player von Singe kann das nicht, deshalb nimmt der Aufruf beliebige Argumente an, schreibt eine Trace-Zeile und kehrt zurück. Er bleibt erhalten, damit Skripte von vor 2.00 ohne Änderungen laden.\nSeit: 1.x", args = "(...)", returns = "()", }, discGetAudioTrack = { type = "function", description = "Gibt den nullbasierten Index der Tonspur zurück, die die Disc gerade abspielt. Beim Start wählt die Engine die durch --audio oder den Eintrag AUDIO_TRACK in games.dat genannte Spur (Standard 0), sofern die Disc so viele Spuren hat. Gibt ohne Disc 0 zurück.\nRückgabe: ganzzahliger Spurindex.\nSeit: 2.10", args = "()", returns = "(integer)", }, discGetAudioTracks = { type = "function", description = "Gibt zurück, wie viele Audiostreams die Videodatei der Disc enthält. Mehrere Streams sind typischerweise alternative Synchronfassungen. Ein stummes Video meldet 0, ebenso ein Spiel ohne Disc, sichere Schleifen und Modulo-Rechnungen also gegen null ab.\nRückgabe: ganzzahlige Anzahl, 0 oder mehr.\nSeit: 2.10", args = "()", returns = "(integer)", }, discGetFrame = { type = "function", description = "Gibt den Frame zurück, den die Disc gerade zeigt. Mit einer Frame-Datei ist die Nummer die Position in der zusammengesetzten Folge, Segmentgrenzen sind für das Skript also unsichtbar. Gibt 0 zurück, solange die Disc gestoppt ist, und ohne Disc. Frag ihn in onOverlayUpdate ab, um darauf zu reagieren, dass das Video einen Entscheidungspunkt erreicht.\nRückgabe: ganzzahlige Frame-Nummer.\nSeit: 1.x", args = "()", returns = "(integer)", }, discGetFrameCount = { type = "function", description = "Die Anzahl der Frames auf der Disc, also eins mehr als der höchste Frame, den discSearch findet. Eine Frame-Datei antwortet für die ganze Disc statt für das laufende Segment, die Anzahl ändert sich also nicht, wenn Segmente kommen und gehen. Ohne Disc antwortet sie mit 0.\nRückgabe: ganzzahlige Anzahl der Frames, 0 ohne Disc.\nSeit: 3.00.", args = "()", returns = "(integer)", }, discGetHeight = { type = "function", description = "Gibt die Höhe des Disc-Videos in Pixeln zurück. Ohne Disc gibt es die Höhe der Zeichenfläche zurück (CANVAS_Y in games.dat oder --canvas, Standard 480), es ist also immer die Größe des Hintergrunds, über den das Overlay gestreckt wird. Kombiniere es mit discGetWidth, um dem Overlay dieselbe Auflösung wie dem Video zu geben.\nRückgabe: ganzzahlige Höhe in Pixeln.\nSeit: 2.00", args = "()", returns = "(integer)", }, discGetLanguage = { type = "function", description = "Gibt das in der Videodatei gespeicherte Sprach-Tag für eine der Tonspuren der Disc zurück. Das Tag ist ein dreibuchstabiger ISO-639-Code wie \"eng\" oder \"jpn\". Spuren ohne dreibuchstabiges Tag ergeben \"unk\", ebenso jede Spur, wenn es keine Disc gibt. Mit Disc beendet eine Spur außerhalb von 0 bis discGetAudioTracks() - 1 das Skript.\nRückgabe: String mit dem Sprachcode.\nSeit: 2.10", args = "(track)", returns = "(string)", }, discGetLanguageDescription = { type = "function", description = "= videoGetLanguageDescription\nSchlägt den englischen Namen eines Sprachcodes nach. Anders als die übrigen video*-Funktionen nimmt sie kein Handle; sie ist ein reines Nachschlagen in einer Tabelle, das zweibuchstabige Codes nach ISO 639-1 und dreibuchstabige Codes nach ISO 639-2 (sowohl die T- als auch die B-Form) annimmt, verglichen ohne Rücksicht auf Groß- und Kleinschreibung. Unbekannte Codes, auch das \"unk\", das für Spuren ohne Tag zurückkommt, ergeben \"Unknown\". Framework.singe stellt sie zur Symmetrie mit der Disc-API auch als discGetLanguageDescription bereit.\nRückgabe: String mit dem Namen der Sprache oder \"Unknown\".\nSeit: 2.10", args = "(code)", returns = "(string)", anchor = "videogetlanguagedescription", }, discGetState = { type = "function", description = "Gibt den Transportzustand der Disc als eine der Konstanten DISC_* zurück. Ein Spiel ohne Disc meldet DISC_EJECTED; nach discStop meldet die Disc DISC_STOPPED bis zum nächsten discPlay, discSearch oder discSkipToFrame; ansonsten ist der Zustand DISC_PLAYING, solange das Video vorrückt, und DISC_PAUSED, wenn nicht. Einen eigenen Suchzustand gibt es nicht; eine Disc, die gerade springt, meldet DISC_PAUSED oder DISC_PLAYING, je nachdem, was angefordert wurde.\nRückgabe: eine der folgenden Konstanten, die die Engine definiert und die jedem Skript zur Verfügung stehen.\nSeit: 1.x (RDG)", args = "()", returns = "(state)", }, discGetSubtitleLanguage = { type = "function", description = "Die Sprache, mit der eine Untertitelspur im eigenen Container der Disc gekennzeichnet ist, als der ISO-639-Code, den die Datei trägt (eng, fra, spa). Eine Spur, die die Datei mit nichts kennzeichnet, ergibt einen leeren String, und das ist kein Fehler -- viele Dateien kennzeichnen gar nichts.\nRückgabe: ein String.\nSeit: 3.00.", args = "(track: number)", returns = "(language)", }, discGetSubtitleTracks = { type = "function", description = "Wie viele Untertitelspuren der eigene Container der Disc enthält. 0 ohne Disc und 0 für eine Disc, deren Untertitel als eigene .srt mitgeliefert werden -- was die übliche Anordnung ist und wofür srtLoad da ist.\nRückgabe: eine Zahl.\nSeit: 3.00.", args = "()", returns = "(count)", }, discGetWidth = { type = "function", description = "Gibt die Breite des Disc-Videos in Pixeln zurück. Ohne Disc gibt es die Breite der Zeichenfläche zurück (CANVAS_X in games.dat oder --canvas, Standard 720). Zusammen mit discGetHeight ist das die Größe, auf die das Overlay skaliert wird, weshalb das mitgelieferte Menü beide an overlaySetResolution übergibt.\nRückgabe: ganzzahlige Breite in Pixeln.\nSeit: 2.00", args = "()", returns = "(integer)", }, discPause = { type = "function", description = "Hält die Wiedergabe beim aktuellen Frame an, der auf dem Bildschirm bleibt. Der Ton der Disc pausiert mit. Der Aufruf wird ignoriert, solange die Disc gestoppt ist, und tut ohne Disc nichts. Fortsetzen mit discPlay.\nSeit: 1.x", args = "()", returns = "()", }, discPauseAtFrame = { type = "function", description = "Springt zu frame, zeigt ihn und pausiert. Das ist dieselbe Bindung wie discSearch unter einem zweiten Namen; die beiden sind in jeder Hinsicht austauschbar, einschließlich der dort beschriebenen Regeln für die Begrenzung. Bevorzuge discSearch in neuem Code und behalte discPauseAtFrame nur beim Portieren alter Skripte.\nSeit: 1.18", args = "(frame)", returns = "()", }, discPlay = { type = "function", description = "Startet die Wiedergabe beim aktuellen Frame oder setzt sie fort und hebt den von discStop gesetzten Stoppzustand auf. Der Ton läuft mit dem Video weiter, und die Wiedergabeuhr startet beim aktuellen Frame neu, damit eine lange Pause keinen Sprung verursacht. Tut ohne Disc nichts, außer das Stopp-Flag zu löschen.\nSeit: 1.x", args = "()", returns = "()", }, discSearch = { type = "function", description = "Springt mit der Disc zu frame, zeigt diesen Frame und pausiert darauf; war die Disc gestoppt, wird der Stoppzustand aufgehoben. Die Disc hält den Frame bis zu discPlay, discSkipToFrame oder einem anderen Transportaufruf. Ein negativer Frame wird auf den ersten Frame begrenzt und einer hinter dem Ende auf den letzten; mit einer Frame-Datei wird das Segment gewählt, das den Frame enthält, und die Position innerhalb davon begrenzt. Tut ohne Disc nichts.\nSeit: 1.x", args = "(frame)", returns = "()", }, discSearchBlanking = { type = "function", description = "Tut nichts. Auf Laserdisc-Hardware wählte das, ob der Bildschirm dunkel wurde, während der Player einen Frame suchte; der Software-Player von Singe springt, ohne dunkel zu werden, deshalb nimmt der Aufruf beliebige Argumente an, schreibt eine Trace-Zeile und kehrt zurück.\nSeit: 1.x", args = "(...)", returns = "()", }, discSetAudioTrack = { type = "function", description = "Schaltet die Disc auf eine andere Tonspur um. Bereits eingereihtes Audio der alten Spur wird verworfen, und die Wiedergabe richtet sich neu aus, die Änderung ist also fast sofort zu hören. Mit Disc beendet eine Spur außerhalb von 0 bis discGetAudioTracks() - 1 das Skript; ohne Disc tut der Aufruf nichts. Verwende ihn, um ein Sprachmenü umzusetzen oder eine zwischen Sitzungen gespeicherte Vorliebe zu beachten.\nSeit: 2.10", args = "(track)", returns = "()", }, discSetFPS = { type = "function", description = "Tut nichts. Die Bildrate stammt aus der Videodatei, deshalb nimmt der Aufruf beliebige Argumente an, schreibt eine Trace-Zeile und kehrt zurück. Nichts im mitgelieferten Framework.singe ruft ihn auf; das tun nur Skripte von vor 2.00.\nSeit: 1.x", args = "(...)", returns = "()", }, discSkipBackward = { type = "function", description = "Springt um frames vom aktuellen Frame zurück, ohne den Wiedergabe- oder Pausenzustand zu ändern: eine laufende Disc spielt von der neuen Position aus weiter, eine pausierte bleibt dort pausiert. Der Aufruf wird ignoriert, solange die Disc gestoppt ist, und ohne Disc. Die Differenz wird nicht geprüft; ein negativer Wert springt vorwärts, und eine Differenz, die größer als der aktuelle Frame ist, wird bei Frame 0 begrenzt. Mit einer Frame-Datei gilt die Differenz für die Frame-Nummer, die discGetFrame meldet, ein Sprung kann also in ein früheres Segment hinüberreichen.\nSeit: 1.x", args = "(frames: number)", returns = "()", }, discSkipBlanking = { type = "function", description = "Tut nichts. Früher wählte es auf Laserdisc-Hardware, ob der Bildschirm bei einem Sprung dunkel wurde; der Software-Player von Singe wird nie dunkel, deshalb nimmt der Aufruf beliebige Argumente an, schreibt eine Trace-Zeile und kehrt zurück.\nSeit: 1.x", args = "(...)", returns = "()", }, discSkipForward = { type = "function", description = "Springt um frames vom aktuellen Frame vorwärts, ohne den Wiedergabe- oder Pausenzustand zu ändern. Das Spiegelbild von discSkipBackward: ignoriert, solange gestoppt, und ohne Disc, die Differenz wird nicht geprüft, und ein Ziel hinter dem letzten Frame wird beim letzten Frame begrenzt. Mit einer Frame-Datei gilt die Differenz für die Frame-Nummer, die discGetFrame meldet, ein Sprung kann also in ein späteres Segment hinüberreichen.\nSeit: 1.x", args = "(frames: number)", returns = "()", }, discSkipToFrame = { type = "function", description = "Springt zu frame und spielt von dort ab, egal in welchem Zustand die Disc ist; wenn nötig, wird der Stoppzustand aufgehoben. Im Gegensatz dazu springt discSearch und pausiert. Ein Frame vor dem Anfang oder hinter dem Ende wird auf den ersten oder letzten Frame begrenzt; mit einer Frame-Datei wird das Segment gewählt, das den Frame enthält, und die Position innerhalb davon begrenzt. Tut ohne Disc nichts, außer das Stopp-Flag zu löschen.\nSeit: 1.x", args = "(frame)", returns = "()", }, discStepBackward = { type = "function", description = "Bewegt die Disc genau einen Frame zurück und pausiert darauf, egal in welchem Wiedergabezustand sie vorher war. Ein Schritt bei Frame 0 bleibt auf Frame 0. Wird wie discSkipBackward ignoriert, solange die Disc gestoppt ist. Gedacht für framegenaues Debugging und Service-Bildschirme. Tut ohne Disc nichts.\nSeit: 1.x", args = "()", returns = "()", }, discStepForward = { type = "function", description = "Bewegt die Disc genau einen Frame vorwärts und pausiert darauf, egal in welchem Wiedergabezustand sie vorher war. Ein Schritt auf dem letzten Frame bleibt auf dem letzten Frame. Wie discStepBackward wird der Aufruf ignoriert, solange die Disc gestoppt ist. Tut ohne Disc nichts.\nSeit: 1.x", args = "()", returns = "()", }, discStop = { type = "function", description = "Stoppt die Disc. Die Wiedergabe hält an, das Video wird durch den klassischen blauen Bildschirm ersetzt, discGetState meldet DISC_STOPPED, und discGetFrame gibt 0 zurück, bis die Disc wieder gestartet wird. Während sie gestoppt ist, werden discPause, discSkipForward, discSkipBackward, discStepForward und discStepBackward ignoriert. Jeder der Aufrufe discPlay, discSearch oder discSkipToFrame hebt den Stoppzustand auf. Ein zweites discStop wird ignoriert.\nSeit: 1.x", args = "()", returns = "()", }, drawTransparent = { type = "function", description = "Hypseus-Erweiterung. Entscheidet, ob Farbe 0 auf den danach geladenen Sprites und dem danach gerenderten Text transparent gezeichnet wird. false, der Standard, stanzt Farbe 0 aus, wie Hypseus es tut: Palettenindex 0 oder reines Schwarz, und das schließt deckendes Schwarz in einem Bild mit Alphakanal ein, sodass schwarze Schrift oder ein schwarzer Umriss verschwindet. true zeichnet sie allein nach ihrem Alphakanal, sodass deckendes Schwarz schwarz bleibt. Bereits geladene Sprites behalten die Einstellung, mit der sie geladen wurden, und jedes Skript beginnt bei false.\nRückgabe: nichts.\nSeit: 3.00", args = "(boolean)", returns = "()", }, emitterBurst = { type = "function", description = "Erzeugt count Partikel auf einmal nach dem aktuellen Rezept, mit oder ohne Strom: eine Explosion, ein Spritzer, ein Wölkchen. Es werden nur so viele erzeugt, wie im Pool Platz haben; emitterSetMax legt den Platz fest. Ein 2D-Emitter stößt sie an seinem Punkt von emitterSetPosition aus, ein 3D-Emitter an seinem Knoten, verteilt über emitterSetRadius.\nSeit: 3.00.", args = "(emitter, count)", returns = "()", }, emitterClear = { type = "function", description = "Tötet jetzt jedes lebende Partikel und vergisst jeden noch geschuldeten Bruchteil eines Partikels. Der Strom wird nicht gestoppt: ein gestarteter Emitter erzeugt im nächsten Frame weiter neue Partikel, ruf also auch emitterStop auf, um ihn endgültig zu leeren. Verwende es, wenn eine Szene wechselt und die alten Funken nicht nachglimmen dürfen.\nSeit: 3.00.", args = "(emitter)", returns = "()", }, emitterDelete = { type = "function", description = "Entfernt den Emitter, seine lebenden Partikel und seine Kopie der Textur sofort; nichts blendet aus. Verwende stattdessen emitterStop, um die letzten Partikel zu Ende leben zu lassen. Ein 3D-Emitter wird auch von selbst entfernt, wenn sein Knoten gelöscht wird. Ein Handle, das kein lebender Emitter ist, beendet das Skript, leere die Variable also danach.\nSeit: 3.00.", args = "(emitter)", returns = "()", }, emitterDraw = { type = "function", description = "Nur 2D, aus onOverlayUpdate: stellt die Partikel des Emitters in die Warteschlange, damit sie in diesem Frame gezeichnet werden, über oder unter dem Overlay je nach emitterSetLayer, in Overlay-Koordinaten, die auf das Fenster abgebildet werden. Emitter auf derselben Ebene zeichnen in der Reihenfolge, in der sie eingereiht wurden. Die Warteschlange leert sich in jedem Frame, der Aufruf gehört also in jeden Frame, in dem die Partikel zu sehen sein sollen; einen Emitter nicht zu zeichnen, hält ihn nicht an. Bis zu 64 Emitter pro Ebene werden in einem Frame gezeichnet. Ein 3D-Emitter zeichnet sich selbst in der Szene und beendet hier das Skript.\nSeit: 3.00.", args = "(emitter)", returns = "()", }, emitterGetCount = { type = "function", description = "Wie viele Partikel des Emitters in diesem Frame leben, 0 bis zur Größe des Pools. Nützlich, um einen Pool abzustimmen, für ein Budget auf dem Bildschirm oder um zu wissen, wann ein Stoß verklungen ist.\nRückgabe: Die Anzahl der lebenden Partikel, eine Ganzzahl.\nSeit: 3.00.", args = "(emitter)", returns = "(count)", }, emitterIsActive = { type = "function", description = "Ob der Emitter strömt oder noch lebende Partikel hat: true ab emitterStart oder emitterBurst, bis der Strom gestoppt und das letzte Partikel gestorben ist, false, sobald die Explosion vorbei ist. Ein strömender Emitter, dessen Pool gerade leer ist, ist trotzdem aktiv.\nRückgabe: Boolean.\nSeit: 3.00.", args = "(emitter)", returns = "(boolean)", }, emitterNew = { type = "function", description = "Erzeugt einen Emitter. Ohne Argument ist es ein 2D-Emitter an der Overlay-Position (0, 0), der mit emitterSetPosition bewegt wird; mit einem Knoten ist es ein 3D-Emitter, dessen Partikel an der Weltposition dieses Knotens geboren werden, und er braucht die 3D-Szene, sodass der Aufruf auf einem Rechner ohne sie das Skript beendet (2D-Emitter funktionieren überall). Ein neuer Emitter strömt noch nicht; ruf emitterStart oder emitterBurst auf. Wird der Knoten gelöscht, werden seine Emitter mitgelöscht. Standardwerte: 50 Partikel pro Sekunde, die ein bis zwei Sekunden leben, 30 Grad Streuung, Weiß, das zu transparent verblasst, normales Blending, keine Schwerkraft, keine Dämpfung, keine Drehung, kein Radius, keine Textur, kein Schweif und keine Kollision, ein Pool von 1000; ein 2D-Emitter schickt sie mit 50 bis 100 Overlay-Einheiten pro Sekunde den Bildschirm hinauf und lässt sie von 16 auf 4 schrumpfen, ein 3D-Emitter mit 1 bis 2 Welteinheiten pro Sekunde die Y-Achse hinauf, schrumpfend von 0,2 auf 0,05.\nRückgabe: Das Handle des Emitters.\nSeit: 3.00.", args = "([node])", returns = "(emitter)", }, emitterSetBlend = { type = "function", description = "Wie sich Partikel mit dem verbinden, was hinter ihnen liegt. PARTICLE_ALPHA (Standard) blendet normal, für Rauch, Staub, Regen und Trümmer; PARTICLE_ADD addiert Licht, für Feuer, Funken, Leuchten und Magie, und dunkelt nie ab. Wirkt sofort auf die lebenden Partikel. Alles andere als diese beiden Konstanten beendet das Skript.\nSeit: 3.00.", args = "(emitter, mode)", returns = "()", }, emitterSetCollide = { type = "function", description = "Wovon Partikel abprallen. COLLIDE_NONE (Standard) ist nichts; COLLIDE_FLOOR ist eine waagerechte Ebene in der Höhe floor, unterhalb derer (größeres Y in 2D, kleineres Y in 3D) ein Partikel auf die Ebene zurückgesetzt und reflektiert wird; COLLIDE_SCENE ist die Physikwelt, nur für 3D-Emitter, mit einem Raycast pro Partikel entlang seiner Bewegung in jedem Frame, begrenzt auf 200 Raycasts pro Emitter und Frame und dort fortgesetzt, wo sie aufgehört haben, sodass ein großer Emitter die Kosten über ein paar Frames verteilt. Bei einem 2D-Emitter wird COLLIDE_SCENE angenommen und tut nichts. Ein anderer Modus als diese drei beendet das Skript.\nSeit: 3.00.", args = "(emitter, mode [, bounce, friction, floor])", returns = "()", }, emitterSetColor = { type = "function", description = "Farbe und Deckkraft bei der Geburt (r, g, b, a) und beim Tod (r2, g2, b2, a2), jeweils 0 bis 255, gleichmäßig über die Lebensdauer des Partikels wechselnd; Werte außerhalb des Bereichs werden begrenzt. Standard: von Weiß und deckend zu Weiß und transparent. Die Tönung multipliziert die Textur oder die eingebaute Scheibe, ein weißes Bild nimmt die Farbe also genau an. Ein Ein- und Ausblenden braucht zwei Emitter oder eine Textur, in der die Form steckt; ein Rezept fährt eine einzige gerade Rampe.\nSeit: 3.00.", args = "(emitter, r, g, b, a, r2, g2, b2, a2)", returns = "()", }, emitterSetDirection = { type = "function", description = "Die mittlere Richtung, in die neue Partikel aufbrechen; nur die Richtung zählt, nicht die Länge. 2D-Standard (0, -1), den Bildschirm hinauf, da Y im Overlay nach unten wächst; 3D-Standard (0, 1, 0), die Y-Achse der Welt hinauf. Ein 2D-Emitter ignoriert z; ein 3D-Emitter, der zwei Werte bekommt, erhält z = 0. Ein Nullvektor wird als (0, -1, 0) behandelt. Bei einem 3D-Emitter ist die Richtung in Weltachsen angegeben, nicht in denen des Knotens, dreh sie also selbst, wenn sich der Knoten dreht.\nSeit: 3.00.", args = "(emitter, x, y [, z])", returns = "()", }, emitterSetDrag = { type = "function", description = "Wie schnell Partikel ihre Geschwindigkeit verlieren: in jedem Frame wird die Geschwindigkeit mit 1 - perSecond * dt multipliziert, nie unter 0, sodass 1 den größten Teil der Geschwindigkeit innerhalb einer Sekunde nimmt und 0 (der Standard) sie für immer behält. Negative Werte werden zu 0. Rauch, Glut und Feuerwerk werden langsamer; Funken und Regen nicht. Wirkt ab dem nächsten Frame auf die lebenden Partikel.\nSeit: 3.00.", args = "(emitter, perSecond)", returns = "()", }, emitterSetFrames = { type = "function", description = "Mit einem animierten Sprite als Textur nimmt jedes neue Partikel einen zufälligen Frame von first bis last und behält ihn sein Leben lang; Frames zählen ab 0. Die Werte werden auf die Frames begrenzt, die die Textur hat, und last wird auf first angehoben, wenn es kleiner ist. Standard: nur Frame 0, auf den auch emitterSetTexture zurücksetzt. Mit der eingebauten Scheibe oder einem Sprite aus einem einzigen Frame hat der Bereich keine Wirkung.\nSeit: 3.00.", args = "(emitter, first, last)", returns = "()", }, emitterSetGravity = { type = "function", description = "Eine konstante Beschleunigung auf jedes Partikel, in Overlay-Einheiten (2D) oder Welteinheiten (3D) pro Sekunde zum Quadrat: (0, 500) zieht 2D-Funken den Bildschirm hinunter, (0, -20) lässt 2D-Rauch aufsteigen, (0, -9.8, 0) ist die Erde in der Szene. Standard keine. Sie wirkt ab dem nächsten Frame auf die lebenden Partikel. Partikel sind keine Physikkörper; gib ihnen emitterSetCollide, damit sie von einem Boden oder der Szene abprallen.\nSeit: 3.00.", args = "(emitter, x, y [, z])", returns = "()", }, emitterSetLayer = { type = "function", description = "Nur 2D: wohin emitterDraw die Partikel setzt. PARTICLE_OVER (Standard) zeichnet über allem auf dem Overlay; PARTICLE_UNDER zeichnet unter dem Overlay und über dem Video und der 3D-Szene, für Rauch hinter dem Punktestand. Bei einem 3D-Emitter wird die Einstellung angenommen und ignoriert. Alles andere als diese beiden Konstanten beendet das Skript.\nSeit: 3.00.", args = "(emitter, layer)", returns = "()", }, emitterSetLife = { type = "function", description = "Wie lange jedes neue Partikel lebt, zufällig zwischen den beiden gezogen; Standard 1 bis 2. Seine Größe und Farbe laufen über diese Zeit von ihrem Anfang zu ihrem Ende, die Lebensdauer bestimmt also das Tempo jedes Ausblendens. Das Minimum wird bei 0.001 oder darüber gehalten, und das Maximum wird auf das Minimum angehoben, wenn es kleiner ist. Lebende Partikel behalten die Lebensdauer, mit der sie geboren wurden.\nSeit: 3.00.", args = "(emitter, minSeconds, maxSeconds)", returns = "()", }, emitterSetLit = { type = "function", description = "Nur 3D: schattiert jedes Partikel nach den Lichtern und dem Himmel der Szene, als wäre es eine kleine Kugel, die zur Kamera zeigt, sodass Rauch die Farbe einer Feuerschale annimmt und Staub in der Sonne glitzert. Standardmäßig aus; Schatten werden nicht berücksichtigt. Mit PARTICLE_ADD wird die Beleuchtung trotzdem auf die Tönung angewendet, bevor sie addiert wird. Ein 2D-Emitter speichert den Wert und ignoriert ihn.\nSeit: 3.00.", args = "(emitter, lit)", returns = "()", }, emitterSetLocal = { type = "function", description = "Ob lebende Partikel dem Emitter folgen. false (Standard) lässt jedes dort, wo es geboren wurde, sodass eine durch einen Raum getragene Fackel Rauch hinter sich lässt; true hält die ganze Wolke relativ zum Ursprung des Emitters, sodass sich der Abgasstrahl einer Schubdüse mit dem Schiff bewegt. Das Umschalten überführt die lebenden Partikel ohne Sprung von einem Bezugssystem ins andere. Bei einem 3D-Emitter ist der Ursprung die Weltposition des Knotens; bei einem 2D-Emitter ist es der Punkt von emitterSetPosition, eine lokale 2D-Wolke gleitet also ebenfalls mit. Schweife folgen derselben Regel.\nSeit: 3.00.", args = "(emitter, local)", returns = "()", }, emitterSetMax = { type = "function", description = "Der Pool: wie viele Partikel gleichzeitig leben dürfen, Standard 1000. Ein voller Pool erzeugt keine weiteren, weder aus dem Strom noch aus einem Stoß, bis einige sterben. Eine Änderung der Anzahl baut den Pool neu und tötet jedes lebende Partikel, setz sie also vor dem Start. Bemiss den Pool als Rate mal längste Lebensdauer plus den größten Stoß. Eine Anzahl unter 1 beendet das Skript.\nSeit: 3.00.", args = "(emitter, count)", returns = "()", }, emitterSetPosition = { type = "function", description = "Nur 2D: wo neue Partikel geboren werden, in Overlay-Koordinaten; Standard (0, 0). Setze die Position in jedem Frame, um einem Sprite oder einem 2D-Physikkörper zu folgen. Lebende Partikel bleiben, wo sie sind, außer emitterSetLocal ist eingeschaltet. Ein 3D-Emitter folgt seinem Knoten und beendet hier das Skript; bewege stattdessen den Knoten.\nSeit: 3.00.", args = "(emitter, x, y)", returns = "()", }, emitterSetRadius = { type = "function", description = "Neue Partikel werden irgendwo innerhalb dieses Abstands vom Ursprung des Emitters geboren, gleichmäßig über eine Scheibe (2D) oder eine Kugel (3D), in Overlay- oder Welteinheiten. Standard 0, ein Punkt; negative Werte werden zu 0. Ein Radius füllt ein Volumen, einen Fackelkopf oder ein Stück Staub in der Luft, wo ein Punkt eine Nadel ergäbe.\nSeit: 3.00.", args = "(emitter, radius)", returns = "()", }, emitterSetRate = { type = "function", description = "Wie viele Partikel pro Sekunde ein gestarteter Emitter erzeugt; Standard 50, negative Werte werden zu 0. Bruchteile summieren sich, sodass 0.5 alle zwei Sekunden eines erzeugt. Ändere den Wert während des Stroms, um eine Flamme oder eine Schubdüse zu drosseln. Ein voller Pool (emitterSetMax) erzeugt keine weiteren, bis einige sterben, egal bei welcher Rate.\nSeit: 3.00.", args = "(emitter, perSecond)", returns = "()", }, emitterSetSize = { type = "function", description = "Größe bei der Geburt und beim Tod, in Overlay-Einheiten (2D) oder Welteinheiten (3D), gleichmäßig über die Lebensdauer des Partikels wechselnd; Standard 16 bis 4 in 2D und 0.2 bis 0.05 in 3D. variation (0 bis 1, Standard 0) skaliert beide Größen jedes neuen Partikels mit einem einzigen Zufallsfaktor zwischen 1 - variation und 1 + variation, sodass ein Wölkchen sein ganzes Leben lang etwas größer oder kleiner ist. Negative Größen werden zu 0, und variation wird begrenzt. Ein texturiertes Partikel wird als Quadrat dieser Größe gezeichnet; ein breiteres Bild wird gestaucht.\nSeit: 3.00.", args = "(emitter, start, finish [, variation])", returns = "()", }, emitterSetSoftness = { type = "function", description = "Nur 3D: blendet ein Partikel über distance Welteinheiten aus, wo es auf Geometrie dahinter trifft, sodass ein Rauchwölkchen keine harte Linie zeichnet, wo es eine Wand kreuzt, und ein Springbrunnen in sein Becken eintaucht, statt es zu zerschneiden. 0 (der Standard) schaltet es aus; negative Werte werden zu 0. Solange irgendein Emitter es verwendet, wird die Tiefe der Szene pro Frame einmal mehr gerendert, ein Raspberry Pi sollte es also sparsam einsetzen. Ein 2D-Emitter speichert den Wert und ignoriert ihn.\nSeit: 3.00.", args = "(emitter, distance)", returns = "()", }, emitterSetSpeed = { type = "function", description = "Anfangsgeschwindigkeit jedes neuen Partikels, zufällig zwischen den beiden gezogen, in Overlay-Einheiten pro Sekunde (2D) oder Welteinheiten pro Sekunde (3D); Standard 50 bis 100 in 2D und 1 bis 2 in 3D. Das Maximum wird auf das Minimum angehoben, wenn es kleiner ist. Die Geschwindigkeit bestimmt, wie weit ein Partikel kommt, bevor Dämpfung, Schwerkraft und seine Lebensdauer übernehmen.\nSeit: 3.00.", args = "(emitter, min, max)", returns = "()", }, emitterSetSpin = { type = "function", description = "Drehgeschwindigkeit jedes neuen Partikels in Grad pro Sekunde, zufällig zwischen den beiden gezogen; negative Werte drehen andersherum, und ein Bereich, der 0 überspannt, ergibt beides. Jedes Partikel beginnt mit einem zufälligen Winkel, ob es sich dreht oder nicht. Standard keine. Das Maximum wird auf das Minimum angehoben, wenn es kleiner ist. Die Drehung sieht man an einem texturierten Partikel oder einem Schweif; die eingebaute Scheibe ist rund und sieht in jedem Winkel gleich aus.\nSeit: 3.00.", args = "(emitter, min, max)", returns = "()", }, emitterSetSpread = { type = "function", description = "Der halbe Winkel des Kegels (3D) oder Fächers (2D) um die Richtung, in den neue Partikel geworfen werden, 0 bis 180; 0 ist eine gerade Linie, 180 jede Richtung. Standard 30; Werte außerhalb des Bereichs werden begrenzt. In 3D werden die Richtungen gleichmäßig über die Kappe des Kegels verteilt, sodass sich ein weiter Kegel nicht zu seiner Achse hin ballt.\nSeit: 3.00.", args = "(emitter, degrees)", returns = "()", }, emitterSetTexture = { type = "function", description = "Das Bild, das jedes Partikel trägt: ein geladenes Sprite oder keines (ein Argument oder nil) für die eingebaute weiche Scheibe. Der Emitter behält seine eigene Kopie der Pixel des Sprites, jeden Frame eines animierten Sprites eingeschlossen, das Sprite kann danach also entladen werden. Das Setzen der Textur setzt den Frame-Bereich auf Frame 0 zurück und setzt jedes lebende Partikel auf Frame 0, ruf emitterSetFrames also danach auf, nicht davor. Blending und Tönung wirken auf das Bild wie auf die Scheibe.\nSeit: 3.00.", args = "(emitter [, sprite])", returns = "()", }, emitterSetTrail = { type = "function", description = "Ein Band hinter jedem Partikel durch seine letzten length Positionen, eine pro Frame aufgezeichnet (2 bis 16; 0 oder 1 für keines, der Standard), width breit in Welt- oder Overlay-Einheiten, in 2D wie in 3D. Das Band trägt die aktuelle Tönung des Partikels, verblasst zu seinem Ende hin zu transparent und wird mit der mittleren Spalte des Partikelbilds texturiert, sodass der weiche Rand der Scheibe zum Rand des Bands wird. Die Werte werden auf den Bereich begrenzt. Eine Änderung der Länge baut den Speicher der Schweife neu, lebende Partikel beginnen ihre Bänder also von vorn. Funken, Glut, Leuchtspurgeschosse, Kometen.\nSeit: 3.00.", args = "(emitter, length, width)", returns = "()", }, emitterStart = { type = "function", description = "Beginnt den stetigen Strom mit der eingestellten Rate; von da an erzeugt der Emitter in jedem Frame Partikel bis emitterStop. Einen Emitter zu starten, der bereits strömt, ändert nichts. Der Strom braucht keinen Zeichenaufruf, um zu laufen; ein 2D-Emitter, der strömt, aber nicht gezeichnet wird, verbraucht trotzdem seinen Pool.\nSeit: 3.00.", args = "(emitter)", returns = "()", }, emitterStop = { type = "function", description = "Beendet den Strom; die lebenden Partikel leben ihr Leben zu Ende, und jeder noch geschuldete Bruchteil eines Partikels wird verworfen. emitterBurst funktioniert auch bei einem gestoppten Emitter, und emitterIsActive bleibt true, bis das letzte Partikel stirbt. Verwende emitterClear, um die Partikel außerdem sofort zu entfernen.\nSeit: 3.00.", args = "(emitter)", returns = "()", }, fontLoad = { type = "function", description = "Öffnet eine TrueType-Schriftart in einer Punktgröße und macht sie zur ausgewählten Schriftart. Die Größe ist für die Lebensdauer des Handles fest, lade dieselbe Datei also einmal pro benötigter Größe. Der Name geht wie jedes andere Asset durch das virtuelle Dateisystem; stelle DIR voran für Dateien, die mit deinem Spiel mitgeliefert werden, oder verwende Singe/FreeSansBold.ttf für den mitgelieferten Schriftschnitt. Eine Datei, die sich nicht öffnen lässt, beendet das Skript mit Unable to open und dem Namen.\nRückgabe: ganzzahliges Schriftart-Handle.\nSeit: 1.x", args = "(filename, pointSize: integer)", returns = "(integer)", }, fontPrint = { type = "function", description = "Rendert einen String mit der ausgewählten Schriftart, der aktuellen Qualität und der aktuellen Vordergrundfarbe (bei FONT_QUALITY_SHADED zusätzlich der Hintergrundfarbe) und blittet ihn dann mit seiner oberen linken Ecke bei (x, y) auf das Overlay. Ruf es aus onOverlayUpdate auf, wenn nötig in jedem Frame: die Engine behält jeden String, den sie rendert, mit Schriftart, Qualität, Farben und Text als Schlüssel, und ein späterer Aufruf, der denselben verlangt, blittet ihn nur noch. Strings, die etwa eine Sekunde lang nicht ausgegeben wurden, werden vergessen, und die Strings einer Schriftart verschwinden, wenn sie entladen wird, sodass Text, der sich ändert, nicht mehr kostet als schon immer, und Text, der sich nicht ändert, fast nichts. Eine ganze Seite Highscores in jedem Frame neu auszugeben ist in Ordnung. Ohne ausgewählte Schriftart endet das Skript mit einem Fehler.\nSeit: 1.x", args = "(x, y, text)", returns = "()", }, fontQuality = { type = "function", description = "Wählt, wie fontPrint und fontToSprite Text von nun an rastern. Die Einstellung ist global, nicht pro Schriftart, und beginnt bei FONT_QUALITY_SOLID. Sprites, die fontToSprite schon erzeugt hat, behalten die Qualität, mit der sie gerendert wurden. Ein Wert außerhalb der drei Konstanten beendet das Skript mit einem Fehler.\nSeit: 1.x", args = "(mode)", returns = "()", }, fontSelect = { type = "function", description = "Macht eine geladene Schriftart zu der, die fontPrint und fontToSprite verwenden. Die Auswahl bleibt bis zum nächsten fontSelect oder fontLoad bestehen, da auch das Laden auswählt. Sie kann so oft wie nötig geändert werden, auch mehrmals innerhalb eines onOverlayUpdate. Ein unbekanntes oder entladenes Handle (oder gar keine Zahl) lässt die aktuelle Schriftart ausgewählt und gibt eine Warnung aus, so wie Hypseus Singe es durchgehen lässt.\nSeit: 1.x", args = "(id)", returns = "()", }, fontToSprite = { type = "function", description = "Rendert einen String mit der ausgewählten Schriftart, Qualität und den Farben in ein neues Sprite und gibt dessen Handle zurück. Das Sprite ist von da an unabhängig von der Schriftart, übersteht also fontUnload, und es funktioniert mit jedem sprite*-Aufruf: zeichne es, miss es, skaliere oder drehe es und gib es mit spriteUnload frei. Für einen String, der sich ändert, rendere ein neues Sprite und entlade das alte. Ohne ausgewählte Schriftart endet das Skript mit einem Fehler.\nRückgabe: ganzzahliges Sprite-Handle.\nSeit: 1.x", args = "(text)", returns = "(integer)", }, fontUnload = { type = "function", description = "Schließt eine Schriftart und macht ihr Handle ungültig. Sprites, die mit fontToSprite daraus gemacht wurden, sind nicht betroffen. War die entladene Schriftart die ausgewählte, ist danach keine Schriftart ausgewählt, und das nächste fontPrint oder fontToSprite beendet das Skript mit einem Fehler, bis fontSelect oder fontLoad eine andere wählt.\nSeit: 2.00", args = "(id)", returns = "()", }, getFValue = { type = "function", description = "Hypseus-Erweiterung. Gibt die als --fvalue angegebene Zahl zurück oder 0, wenn die Option nicht verwendet wurde. Sie ist ein Kanal für eine einzige Zahl von demjenigen, der Singe gestartet hat, zum Spiel, gedacht für einen Wert, den ein Frontend von Start zu Start ändern will -- einen Schwierigkeitsgrad, eine Anzahl Start-Credits, einen Menüindex. Die Engine reicht ihn nur durch.\nRückgabe: Zahl.\nSeit: 3.00 (Hypseus)", args = "()", returns = "(number)", }, getUserString = { type = "function", description = "Hypseus-Erweiterung, immer ein leerer String. Trotz des Namens ist es kein String, den der Benutzer gesetzt hat: Hypseus antwortet mit der Installations-ID des Rechners, die es mit Netzwerkstatistiken sendet, genommen aus der MachineGuid von Windows oder der Machine-ID von Linux. Singe sendet nirgendwohin etwas und gibt einem Spiel keinen Fingerabdruck des Rechners, auf dem es läuft.\nRückgabe: ein String, immer leer.\nSeit: 3.00", args = "()", returns = "(id)", }, guiClose = { type = "function", description = "Entlädt das Dokument aus der GUI und verwirft seine Elemente, seine Handler und seine Skripte. Das Dokument-Handle ist danach ungültig. Ein Dokument, das sein eigenes Skript über die API von RmlUi schließt (document:Close()), wird auf dieselbe Weise entladen. Löst bei einem ungültigen Handle No document N in GUI G aus.\nSeit: 3.00.", args = "(gui, document)", returns = "()", }, guiDelete = { type = "function", description = "Gibt die GUI, jedes Dokument darin und ihre Textur frei und beendet das Aktualisieren und Rendern in jedem Frame, das sie kostete. Materialien, die sie über materialSetGui zeigen, kehren zu ihrer eigenen Textur zurück. Das Handle ist danach ungültig und beendet das Skript, wenn es noch einmal verwendet wird; da eine GUI weiter rendert, ob sie gezeichnet wird oder nicht, lösche die, mit denen ein Spiel fertig ist, statt sie zu verstecken.\nSeit: 3.00.", args = "(gui)", returns = "()", }, guiDraw = { type = "function", description = "Legt die Textur der GUI für diesen Frame über das Overlay, in Overlay-Koordinaten, sodass sie wie alles andere auf dem Overlay dem Sinden-Rahmen und der Overscan-Skalierung folgt: mit einem Argument über das ganze Overlay, in ihrer eigenen Größe mit einer Ecke bei x, y oder skaliert in das Rechteck width mal height. Die Stelle des Aufrufs im Zeichnen des Skripts entscheidet, was unter der GUI liegt und was darüber: alles, was vorher auf das Overlay gezeichnet wurde, bleibt darunter, und alles, was danach gezeichnet wird -- bis zum nächsten guiDraw oder bis das Skript das nächste Mal an der Reihe ist -- kommt auf eine eigene Ebene, die über diese GUI gelegt wird. Ein Zeiger, der nach dem HUD gezeichnet wird, liegt über dem HUD; ein danach gezeichnetes zweites Dokument liegt über dem Zeiger, mit seiner eigenen Ebene darüber. Bis zu sechzehn solcher Ebenen pro Frame; ein Aufruf darüber hinaus zeichnet seine GUI ohne etwas darüber. overlayClear leert die Ebene, auf die gerade gezeichnet wird, und overlaySetMonochrome macht nur das Basis-Overlay grau. Der Aufruf gilt einen Frame; mach ihn aus onOverlayUpdate (oder singeMain) in jedem Frame, in dem die GUI sichtbar sein soll. GUIs zeichnen über dem Overlay in der Reihenfolge der Aufrufe (die letzte oben), unter Partikeln in PARTICLE_OVER und der Pausenanzeige, und die GUI, die zuletzt unter dem Zeiger gezeichnet wurde, ist die, die die Maus bekommt. Bis zu sechzehn Aufrufe pro Frame werden beachtet; weitere werden ignoriert. Jede andere Anzahl von Argumenten löst Expected 1, 3 or 5 arguments aus.\nSeit: 3.00.", args = "(gui [, x, y, width, height])", returns = "()", }, guiDrawScreen = { type = "function", description = "Dasselbe wie guiDraw, nur dass das Rechteck über das ganze Fenster gemessen wird statt über das Bild. Die Koordinaten sind weiterhin Overlay-Koordinaten -- 0, 0 ist oben links im Fenster und overlayGetWidth(), overlayGetHeight() unten rechts -- sodass eine GUI auf der Bezel-Grafik neben dem Bild, darüber oder darunter sitzen kann. Ohne Bezel und ohne --scalefactor, --shiftx oder --shifty ist das Bild das ganze Fenster, und dies ist genau guiDraw.\nSeit: 3.00.", args = "(gui [, x, y, width, height])", returns = "()", }, guiGetHeight = { type = "function", description = "Die Höhe der GUI in ihren eigenen Pixeln, wie an guiNew übergeben. Beendet das Skript bei einem ungültigen Handle.\nRückgabe: Eine Ganzzahl.\nSeit: 3.00.", args = "(gui)", returns = "(height)", }, guiGetStats = { type = "function", description = "Was das Rendern aller GUIs im letzten abgeschlossenen Frame gekostet hat, zum Abstimmen von Dokumenten, die Filter, Masken und Schatten verwenden (die alle über eine Ebene in der Größe der GUI zeichnen). Die Zähler gelten für alle GUIs zusammen. In einem Frame, in dem sich das Bild keiner GUI geändert hat, sind sie alle null, da nichts neu gezeichnet wurde (siehe guiRefresh).\nRückgabe: Eine Tabelle mit den Feldern drawCalls (indizierte Zeichenaufrufe, einschließlich Maskenschreibvorgängen, Kompositionen und Filterdurchgängen), layerPushes (betretene Ebenen für Filter, Maskenbilder und Box-Schatten), filterPasses (Durchgänge in voller Größe und Blits innerhalb von Filterketten; eine Unschärfe kostet mehrere), maskWrites (Zeichenaufrufe in die Stencil-Clipmaske), layerBytes (Bytes der derzeit belegten Ebenentexturen; jede hat die Größe ihrer GUI bei vier Bytes pro Pixel) und passes (begonnene Render-Durchgänge; jeder Ebenenwechsel beginnt einen).\nSeit: 3.00.", args = "()", returns = "(stats)", }, guiGetValue = { type = "function", description = "Der Wert des Elements mit dieser id im Dokument, als String: der Wert eines Formularelements (der Text eines Textfelds, der value einer Option eines select, ein Schieberegler in der eigenen Formatierung von RmlUi wie \"85.000000\", das Attribut value eines Kontrollkästchens oder Optionsfelds, \"on\", wenn es keines hat, ob es angekreuzt ist oder nicht; sein Zustand ist sein Attribut checked, das über die API von RmlUi gelesen wird) oder bei jedem anderen Element sein inneres RML. Gibt nil zurück, wenn kein Element diese id hat, sodass eine Seite abgefragt werden kann, ohne das Skript zu beenden; ein falsches GUI- oder Dokument-Handle beendet es. Werte, die länger als 4095 Zeichen sind, werden abgeschnitten.\nRückgabe: Ein String oder nil.\nSeit: 3.00.", args = "(gui, document, id)", returns = "(value)", }, guiGetWidth = { type = "function", description = "Die Breite der GUI in ihren eigenen Pixeln, wie an guiNew übergeben. Beendet das Skript bei einem ungültigen Handle.\nRückgabe: Eine Ganzzahl.\nSeit: 3.00.", args = "(gui)", returns = "(width)", }, guiHide = { type = "function", description = "Versteckt das Dokument: es wird nicht gezeichnet und nimmt keine Eingaben an, behält aber seine Elemente und Werte, und guiShow bringt es so zurück, wie es war. Löst bei einem ungültigen Handle No document N in GUI G aus.\nSeit: 3.00.", args = "(gui, document)", returns = "()", }, guiLoad = { type = "function", description = "Lädt ein RML-Dokument in die GUI, zeigt es an und gibt ein ganzzahliges Dokument-Handle für die anderen Aufrufe zurück. Der Name geht wie der eines Sprites durch das virtuelle Dateisystem und wird relativ zu dem Ordner aufgelöst, in dem Singe gestartet wurde, stelle also DIR voran für Dateien, die mit deinem Spiel mitgeliefert werden; Stylesheets, Bilder und Schriftarten, die im Dokument genannt werden, werden relativ zu der Datei aufgelöst, die sie nennt, und dann über dieselbe Suche, sodass ein gepacktes Spiel sie findet. Die