rst doc update: adding a link to Joystick class from bge.logic.joysticks
[blender.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Logic (bge.logic)
3 ======================
4
5 ************
6 Introduction
7 ************
8
9 Module to access logic functions, imported automatically into the python controllers namespace.
10
11 .. module:: bge.logic
12
13 .. code-block:: python
14
15    # To get the controller thats running this python script:
16    cont = bge.logic.getCurrentController() # bge.logic is automatically imported
17    
18    # To get the game object this controller is on:
19    obj = cont.owner
20
21 :class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`~bge.types.KX_LightObject` methods are available depending on the type of object
22
23 .. code-block:: python
24
25    # To get a sensor linked to this controller.
26    # "sensorname" is the name of the sensor as defined in the Blender interface.
27    # +---------------------+  +--------+
28    # | Sensor "sensorname" +--+ Python +
29    # +---------------------+  +--------+
30    sens = cont.sensors["sensorname"]
31
32    # To get a sequence of all sensors:
33    sensors = co.sensors
34
35 See the sensor's reference for available methods:
36
37 .. hlist::
38    :columns: 3
39
40    * :class:`~bge.types.KX_MouseFocusSensor`
41    * :class:`~bge.types.KX_NearSensor`
42    * :class:`~bge.types.KX_NetworkMessageSensor`
43    * :class:`~bge.types.KX_RadarSensor`
44    * :class:`~bge.types.KX_RaySensor`
45    * :class:`~bge.types.KX_TouchSensor`
46    * :class:`~bge.types.SCA_DelaySensor`
47    * :class:`~bge.types.SCA_JoystickSensor`
48    * :class:`~bge.types.SCA_KeyboardSensor`
49    * :class:`~bge.types.SCA_MouseSensor`
50    * :class:`~bge.types.SCA_PropertySensor`
51    * :class:`~bge.types.SCA_RandomSensor`
52
53 You can also access actuators linked to the controller
54
55 .. code-block:: python
56
57    # To get an actuator attached to the controller:
58    #                          +--------+  +-------------------------+
59    #                          + Python +--+ Actuator "actuatorname" |
60    #                          +--------+  +-------------------------+
61    actuator = co.actuators["actuatorname"]
62    
63    # Activate an actuator
64    controller.activate(actuator)
65
66 See the actuator's reference for available methods
67
68 .. hlist::
69    :columns: 3
70    
71    * :class:`~bge.types.BL_ActionActuator`
72    * :class:`~bge.types.KX_CameraActuator`
73    * :class:`~bge.types.KX_ConstraintActuator`
74    * :class:`~bge.types.KX_GameActuator`
75    * :class:`~bge.types.KX_NetworkMessageActuator`
76    * :class:`~bge.types.KX_ObjectActuator`
77    * :class:`~bge.types.KX_ParentActuator`
78    * :class:`~bge.types.KX_SCA_AddObjectActuator`
79    * :class:`~bge.types.KX_SCA_DynamicActuator`
80    * :class:`~bge.types.KX_SCA_EndObjectActuator`
81    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
82    * :class:`~bge.types.KX_SceneActuator`
83    * :class:`~bge.types.KX_SoundActuator`
84    * :class:`~bge.types.KX_StateActuator`
85    * :class:`~bge.types.KX_TrackToActuator`
86    * :class:`~bge.types.KX_VisibilityActuator`
87    * :class:`~bge.types.SCA_2DFilterActuator`
88    * :class:`~bge.types.SCA_PropertyActuator`
89    * :class:`~bge.types.SCA_RandomActuator`
90
91 Most logic brick's methods are accessors for the properties available in the logic buttons.
92 Consult the logic bricks documentation for more information on how each logic brick works.
93
94 There are also methods to access the current :class:`bge.types.KX_Scene`
95
96 .. code-block:: python
97
98    # Get the current scene
99    scene = bge.logic.getCurrentScene()
100
101    # Get the current camera
102    cam = scene.active_camera
103
104 Matricies as used by the game engine are **row major**
105 ``matrix[row][col] = float``
106
107 :class:`bge.types.KX_Camera` has some examples using matrices.
108
109 *********
110 Variables
111 *********
112
113 .. data:: globalDict
114
115    A dictionary that is saved between loading blend files so you can use it to store inventory and other variables you want to store between scenes and blend files.
116    It can also be written to a file and loaded later on with the game load/save actuators.
117
118    .. note:: only python built in types such as int/string/bool/float/tuples/lists can be saved, GameObjects, Actuators etc will not work as expected.
119
120 .. data:: keyboard
121
122    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
123
124 .. data:: mouse
125
126    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
127
128 .. data:: joysticks
129
130    A list of attached :class:`~bge.types.SCA_PythonJoystick`s. The list size is the maximum number of supported joysticks. If no joystick is available for a given slot, the slot is set to None.
131
132 *****************
133 General functions
134 *****************
135
136 .. function:: getCurrentController()
137
138    Gets the Python controller associated with this Python script.
139    
140    :rtype: :class:`bge.types.SCA_PythonController`
141
142 .. function:: getCurrentScene()
143
144    Gets the current Scene.
145    
146    :rtype: :class:`bge.types.KX_Scene`
147
148 .. function:: getSceneList()
149
150    Gets a list of the current scenes loaded in the game engine.
151    
152    :rtype: list of :class:`bge.types.KX_Scene`
153    
154    .. note:: Scenes in your blend file that have not been converted wont be in this list. This list will only contain scenes such as overlays scenes.
155
156 .. function:: loadGlobalDict()
157
158    Loads bge.logic.globalDict from a file.
159
160 .. function:: saveGlobalDict()
161
162    Saves bge.logic.globalDict to a file.
163
164 .. function:: startGame(blend)
165
166    Loads the blend file.
167    
168    :arg blend: The name of the blend file
169    :type blend: string
170
171 .. function:: endGame()
172
173    Ends the current game.
174
175 .. function:: restartGame()
176
177    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
178    
179 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False, load_scripts=True, async=False)
180    
181    Converts the all of the datablocks of the given type from the given blend.
182    
183    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
184    :type blend: string
185    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
186    :type type: string
187    :arg data: Binary data from a blend file (optional)
188    :type data: bytes
189    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
190    :type load_actions: bool
191    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
192    :type verbose: bool
193    :arg load_scripts: Whether or not to load text datablocks as well (can be disabled for some extra security)
194    :type load_scripts: bool   
195    :arg async: Whether or not to do the loading asynchronously (in another thread). Only the "Scene" type is currently supported for this feature.
196    :type async: bool
197    
198    :rtype: :class:`bge.types.KX_LibLoadStatus`
199
200    .. note:: Asynchronously loaded libraries will not be available immediately after LibLoad() returns. Use the returned KX_LibLoadStatus to figure out when the libraries are ready.
201    
202 .. function:: LibNew(name, type, data)
203
204    Uses existing datablock data and loads in as a new library.
205    
206    :arg name: A unique library name used for removal later
207    :type name: string
208    :arg type: The datablock type (currently only "Mesh" is supported)
209    :type type: string
210    :arg data: A list of names of the datablocks to load
211    :type data: list of strings
212    
213 .. function:: LibFree(name)
214
215    Frees a library, removing all objects and meshes from the currently active scenes.
216
217    :arg name: The name of the library to free (the name used in LibNew)
218    :type name: string
219    
220 .. function:: LibList()
221
222    Returns a list of currently loaded libraries.
223    
224    :rtype: list [str]
225
226 .. function:: addScene(name, overlay=1)
227
228    Loads a scene into the game engine.
229
230    .. note::
231
232       This function is not effective immediately, the scene is queued
233       and added on the next logic cycle where it will be available
234       from `getSceneList`
235
236    :arg name: The name of the scene
237    :type name: string
238    :arg overlay: Overlay or underlay (optional)
239    :type overlay: integer
240
241 .. function:: sendMessage(subject, body="", to="", message_from="")
242
243    Sends a message to sensors in any active scene.
244    
245    :arg subject: The subject of the message
246    :type subject: string
247    :arg body: The body of the message (optional)
248    :type body: string
249    :arg to: The name of the object to send the message to (optional)
250    :type to: string
251    :arg message_from: The name of the object that the message is coming from (optional)
252    :type message_from: string
253
254 .. function:: setGravity(gravity)
255
256    Sets the world gravity.
257    
258    :type gravity: list [fx, fy, fz]
259
260 .. function:: getSpectrum()
261
262    Returns a 512 point list from the sound card.
263    This only works if the fmod sound driver is being used.
264    
265    :rtype: list [float], len(getSpectrum()) == 512
266
267 .. function:: getMaxLogicFrame()
268
269    Gets the maximum number of logic frames per render frame.
270    
271    :return: The maximum number of logic frames per render frame
272    :rtype: integer
273
274 .. function:: setMaxLogicFrame(maxlogic)
275
276    Sets the maximum number of logic frames that are executed per render frame.
277    This does not affect the physic system that still runs at full frame rate.   
278     
279    :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
280    :type maxlogic: integer
281
282 .. function:: getMaxPhysicsFrame()
283
284    Gets the maximum number of physics frames per render frame.
285    
286    :return: The maximum number of physics frames per render frame
287    :rtype: integer
288
289 .. function:: setMaxPhysicsFrame(maxphysics)
290
291    Sets the maximum number of physics timestep that are executed per render frame.
292    Higher value allows physics to keep up with realtime even if graphics slows down the game.
293    Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
294    maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
295     
296    :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
297    :type maxphysics: integer
298
299 .. function:: getLogicTicRate()
300
301    Gets the logic update frequency.
302    
303    :return: The logic frequency in Hz
304    :rtype: float
305
306 .. function:: setLogicTicRate(ticrate)
307
308    Sets the logic update frequency.
309    
310    The logic update frequency is the number of times logic bricks are executed every second.
311    The default is 60 Hz.
312    
313    :arg ticrate: The new logic update frequency (in Hz).
314    :type ticrate: float
315
316 .. function:: getPhysicsTicRate()
317
318    Gets the physics update frequency
319    
320    :return: The physics update frequency in Hz
321    :rtype: float
322    
323    .. warning: Not implimented yet
324
325 .. function:: setPhysicsTicRate(ticrate)
326
327    Sets the physics update frequency
328    
329    The physics update frequency is the number of times the physics system is executed every second.
330    The default is 60 Hz.
331    
332    :arg ticrate: The new update frequency (in Hz).
333    :type ticrate: float
334
335    .. warning: Not implimented yet
336
337 .. function:: getExitKey()
338
339    Gets the key used to exit the game engine
340
341    :return: The key (defaults to :mod:`bge.events.ESCKEY`)
342    :rtype: int
343
344 .. function:: setExitKey(key)
345
346    Sets the key used to exit the game engine
347
348    :arg key: A key constant from :mod:`bge.events`
349    :type key: int
350
351 .. function:: NextFrame()
352
353    Render next frame (if Python has control)
354
355 *****************
356 Utility functions
357 *****************
358
359 .. function:: expandPath(path)
360
361    Converts a blender internal path into a proper file system path.
362
363    Use / as directory separator in path
364    You can use '//' at the start of the string to define a relative path;
365    Blender replaces that string by the directory of the startup .blend or runtime file
366    to make a full path name (doesn't change during the game, even if you load other .blend).
367    The function also converts the directory separator to the local file system format.
368
369    :arg path: The path string to be converted/expanded.
370    :type path: string
371    :return: The converted string
372    :rtype: string
373
374 .. function:: getAverageFrameRate()
375
376    Gets the estimated/average framerate for all the active scenes, not only the current scene.
377
378    :return: The estimated average framerate in frames per second
379    :rtype: float
380
381 .. function:: getBlendFileList(path = "//")
382
383    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
384
385    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
386    :type path: string
387    :return: A list of filenames, with no directory prefix
388    :rtype: list
389
390 .. function:: getRandomFloat()
391
392    Returns a random floating point value in the range [0 - 1)
393
394 .. function:: PrintGLInfo()
395
396    Prints GL Extension Info into the console
397
398 .. function:: PrintMemInfo()
399
400    Prints engine statistics into the console
401    
402 *********
403 Constants
404 *********
405
406 .. data:: KX_TRUE
407
408    True value used by some modules.
409
410 .. data:: KX_FALSE
411
412    False value used by some modules.
413
414 =======
415 Sensors
416 ======= 
417
418 .. _sensor-status:
419
420 -------------
421 Sensor Status
422 -------------
423
424 .. data:: KX_SENSOR_INACTIVE
425 .. data:: KX_SENSOR_JUST_ACTIVATED
426 .. data:: KX_SENSOR_ACTIVE
427 .. data:: KX_SENSOR_JUST_DEACTIVATED
428
429 ---------------
430 Armature Sensor
431 ---------------
432
433 .. _armaturesensor-type:
434
435 See :class:`bge.types.KX_ArmatureSensor.type`
436
437 .. data:: KX_ARMSENSOR_STATE_CHANGED
438
439   Detect that the constraint is changing state (active/inactive)
440
441   :value: 0
442   
443 .. data:: KX_ARMSENSOR_LIN_ERROR_BELOW
444
445   Detect that the constraint linear error is above a threshold
446   
447   :value: 1
448   
449 .. data:: KX_ARMSENSOR_LIN_ERROR_ABOVE
450
451   Detect that the constraint linear error is below a threshold
452
453   :value: 2
454   
455 .. data:: KX_ARMSENSOR_ROT_ERROR_BELOW
456
457   Detect that the constraint rotation error is above a threshold
458   
459   :value: 3
460   
461 .. data:: KX_ARMSENSOR_ROT_ERROR_ABOVE
462
463   Detect that the constraint rotation error is below a threshold
464   
465   :value: 4
466   
467
468 .. _logic-property-sensor:
469
470 ---------------
471 Property Sensor
472 ---------------
473
474 .. data:: KX_PROPSENSOR_EQUAL
475
476    Activate when the property is equal to the sensor value.
477
478    :value: 1
479
480 .. data:: KX_PROPSENSOR_NOTEQUAL
481
482    Activate when the property is not equal to the sensor value.
483    
484    :value: 2
485
486 .. data:: KX_PROPSENSOR_INTERVAL
487
488    Activate when the property is between the specified limits.
489    
490    :value: 3
491    
492 .. data:: KX_PROPSENSOR_CHANGED
493
494    Activate when the property changes   
495
496    :value: 4
497
498 .. data:: KX_PROPSENSOR_EXPRESSION
499
500    Activate when the expression matches
501    
502    :value: 5
503
504 ------------
505 Radar Sensor
506 ------------
507
508 See :class:`bge.types.KX_RadarSensor`
509
510 .. data:: KX_RADAR_AXIS_POS_X
511 .. data:: KX_RADAR_AXIS_POS_Y
512 .. data:: KX_RADAR_AXIS_POS_Z
513 .. data:: KX_RADAR_AXIS_NEG_X
514 .. data:: KX_RADAR_AXIS_NEG_Y
515 .. data:: KX_RADAR_AXIS_NEG_Z
516
517 ----------
518 Ray Sensor
519 ----------
520
521 See :class:`bge.types.KX_RaySensor`
522
523 .. data:: KX_RAY_AXIS_POS_X
524 .. data:: KX_RAY_AXIS_POS_Y
525 .. data:: KX_RAY_AXIS_POS_Z
526 .. data:: KX_RAY_AXIS_NEG_X
527 .. data:: KX_RAY_AXIS_NEG_Y
528 .. data:: KX_RAY_AXIS_NEG_Z
529
530
531 =========
532 Actuators
533 =========
534
535 .. _action-actuator:
536
537 ---------------
538 Action Actuator
539 ---------------
540
541 See :class:`bge.types.BL_ActionActuator`
542
543 .. data:: KX_ACTIONACT_PLAY
544 .. data:: KX_ACTIONACT_PINGPONG
545 .. data:: KX_ACTIONACT_FLIPPER
546 .. data:: KX_ACTIONACT_LOOPSTOP
547 .. data:: KX_ACTIONACT_LOOPEND
548 .. data:: KX_ACTIONACT_PROPERTY
549
550 -----------------
551 Armature Actuator
552 -----------------
553
554  .. _armatureactuator-constants-type:
555    
556 See :class:`bge.types.BL_ArmatureActuator.type`
557
558 .. data:: KX_ACT_ARMATURE_RUN
559
560   Just make sure the armature will be updated on the next graphic frame.
561   This is the only persistent mode of the actuator:
562   it executes automatically once per frame until stopped by a controller
563   
564   :value: 0
565
566 .. data:: KX_ACT_ARMATURE_ENABLE
567
568   Enable the constraint.
569
570   :value: 1
571
572 .. data:: KX_ACT_ARMATURE_DISABLE
573
574   Disable the constraint (runtime constraint values are not updated).
575
576   :value: 2
577
578 .. data:: KX_ACT_ARMATURE_SETTARGET
579
580   Change target and subtarget of constraint.
581   
582   :value: 3
583
584 .. data:: KX_ACT_ARMATURE_SETWEIGHT
585
586   Change weight of constraint (IK only).
587
588   :value: 4
589
590 .. data:: KX_ACT_ARMATURE_SETINFLUENCE
591
592   Change influence of constraint.
593
594   :value: 5
595
596 -------------------
597 Constraint Actuator
598 -------------------
599
600 .. _constraint-actuator-option:
601
602 See :class:`bge.types.KX_ConstraintActuator.option`
603
604 * Applicable to Distance constraint:
605
606 .. data:: KX_CONSTRAINTACT_NORMAL
607
608      Activate alignment to surface
609    
610 .. data:: KX_CONSTRAINTACT_DISTANCE
611
612      Activate distance control
613
614 .. data:: KX_CONSTRAINTACT_LOCAL
615
616      Direction of the ray is along the local axis
617
618 * Applicable to Force field constraint:
619
620 .. data:: KX_CONSTRAINTACT_DOROTFH
621
622      Force field act on rotation as well
623
624 * Applicable to both:
625
626 .. data:: KX_CONSTRAINTACT_MATERIAL
627
628      Detect material rather than property
629    
630 .. data:: KX_CONSTRAINTACT_PERMANENT
631
632      No deactivation if ray does not hit target
633
634 .. _constraint-actuator-limit:
635
636 See :class:`bge.types.KX_ConstraintActuator.limit`
637
638 .. data:: KX_CONSTRAINTACT_LOCX
639
640    Limit X coord.
641    
642 .. data:: KX_CONSTRAINTACT_LOCY
643
644    Limit Y coord
645
646 .. data:: KX_CONSTRAINTACT_LOCZ
647
648    Limit Z coord
649    
650 .. data:: KX_CONSTRAINTACT_ROTX
651
652    Limit X rotation
653
654 .. data:: KX_CONSTRAINTACT_ROTY
655
656    Limit Y rotation
657    
658 .. data:: KX_CONSTRAINTACT_ROTZ
659
660    Limit Z rotation
661    
662 .. data:: KX_CONSTRAINTACT_DIRNX
663
664    Set distance along negative X axis
665
666 .. data:: KX_CONSTRAINTACT_DIRNY
667
668    Set distance along negative Y axis
669    
670 .. data:: KX_CONSTRAINTACT_DIRNZ
671
672    Set distance along negative Z axis
673    
674 .. data:: KX_CONSTRAINTACT_DIRPX
675
676    Set distance along positive X axis
677
678 .. data:: KX_CONSTRAINTACT_DIRPY
679
680    Set distance along positive Y axis
681    
682 .. data:: KX_CONSTRAINTACT_DIRPZ
683
684    Set distance along positive Z axis
685    
686 .. data:: KX_CONSTRAINTACT_ORIX
687
688    Set orientation of X axis
689    
690 .. data:: KX_CONSTRAINTACT_ORIY
691
692    Set orientation of Y axis
693    
694 .. data:: KX_CONSTRAINTACT_ORIZ
695
696    Set orientation of Z axis
697    
698 .. data:: KX_CONSTRAINTACT_FHNX
699
700    Set force field along negative X axis
701    
702 .. data:: KX_CONSTRAINTACT_FHNY
703
704    Set force field along negative Y axis
705    
706 .. data:: KX_CONSTRAINTACT_FHNZ
707
708    Set force field along negative Z axis
709    
710 .. data:: KX_CONSTRAINTACT_FHPX
711
712    Set force field along positive X axis
713
714 .. data:: KX_CONSTRAINTACT_FHPY
715
716    Set force field along positive Y axis
717    
718 .. data:: KX_CONSTRAINTACT_FHPZ
719
720    Set force field along positive Z axis
721
722 ----------------
723 Dynamic Actuator
724 ----------------
725
726 See :class:`bge.types.KX_SCA_DynamicActuator`
727
728 .. data:: KX_DYN_RESTORE_DYNAMICS
729 .. data:: KX_DYN_DISABLE_DYNAMICS
730 .. data:: KX_DYN_ENABLE_RIGID_BODY
731 .. data:: KX_DYN_DISABLE_RIGID_BODY
732 .. data:: KX_DYN_SET_MASS
733
734 .. _game-actuator:
735
736 -------------
737 Game Actuator
738 -------------
739
740 See :class:`bge.types.KX_GameActuator`
741
742 .. data:: KX_GAME_LOAD
743 .. data:: KX_GAME_START
744 .. data:: KX_GAME_RESTART
745 .. data:: KX_GAME_QUIT
746 .. data:: KX_GAME_SAVECFG
747 .. data:: KX_GAME_LOADCFG
748
749 ---------------
750 Parent Actuator
751 ---------------
752
753 .. data:: KX_PARENT_REMOVE
754 .. data:: KX_PARENT_SET
755
756 .. _logic-random-distributions:
757
758 --------------------
759 Random Distributions
760 --------------------
761
762 See :class:`bge.types.SCA_RandomActuator`
763
764 .. data:: KX_RANDOMACT_BOOL_CONST
765 .. data:: KX_RANDOMACT_BOOL_UNIFORM
766 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
767 .. data:: KX_RANDOMACT_INT_CONST
768 .. data:: KX_RANDOMACT_INT_UNIFORM
769 .. data:: KX_RANDOMACT_INT_POISSON
770 .. data:: KX_RANDOMACT_FLOAT_CONST
771 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
772 .. data:: KX_RANDOMACT_FLOAT_NORMAL
773 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
774
775 --------------
776 Scene Actuator
777 --------------
778
779 See :class:`bge.types.KX_SceneActuator`
780
781 .. data:: KX_SCENE_RESTART
782 .. data:: KX_SCENE_SET_SCENE
783 .. data:: KX_SCENE_SET_CAMERA
784 .. data:: KX_SCENE_ADD_FRONT_SCENE
785 .. data:: KX_SCENE_ADD_BACK_SCENE
786 .. data:: KX_SCENE_REMOVE_SCENE
787 .. data:: KX_SCENE_SUSPEND
788 .. data:: KX_SCENE_RESUME
789
790 .. _logic-sound-actuator:
791
792 --------------
793 Sound Actuator
794 --------------
795       
796 See :class:`bge.types.KX_SoundActuator`
797
798 .. data:: KX_SOUNDACT_PLAYSTOP
799
800    :value: 1
801    
802 .. data:: KX_SOUNDACT_PLAYEND
803
804    :value: 2
805    
806 .. data:: KX_SOUNDACT_LOOPSTOP
807
808    :value: 3
809    
810 .. data:: KX_SOUNDACT_LOOPEND
811
812    :value: 4
813    
814 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
815
816    :value: 5
817    
818 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
819
820    :value: 6
821
822 -----------------
823 Steering Actuator
824 -----------------
825
826 .. _logic-steering-actuator:
827
828 See :class:`bge.types.KX_SteeringActuator.behavior`
829
830 .. data:: KX_STEERING_SEEK
831
832    :value: 1
833
834 .. data:: KX_STEERING_FLEE
835
836    :value: 2
837
838 .. data:: KX_STEERING_PATHFOLLOWING
839
840    :value: 3
841
842
843 =======
844 Various
845 =======
846
847 ---------
848 2D Filter
849 ---------
850
851 .. data:: RAS_2DFILTER_BLUR
852
853    :value: 2
854    
855 .. data:: RAS_2DFILTER_CUSTOMFILTER
856
857    Customer filter, the code code is set via shaderText property.
858    
859    :value: 12
860    
861 .. data:: RAS_2DFILTER_DILATION
862
863    :value: 4
864    
865 .. data:: RAS_2DFILTER_DISABLED
866
867    Disable the filter that is currently active
868
869    :value: -1
870    
871 .. data:: RAS_2DFILTER_ENABLED
872
873    Enable the filter that was previously disabled
874
875    :value: -2
876    
877 .. data:: RAS_2DFILTER_EROSION
878
879    :value: 5
880    
881 .. data:: RAS_2DFILTER_GRAYSCALE
882
883    :value: 9
884    
885 .. data:: RAS_2DFILTER_INVERT
886
887    :value: 11
888    
889 .. data:: RAS_2DFILTER_LAPLACIAN
890
891    :value: 6
892    
893 .. data:: RAS_2DFILTER_MOTIONBLUR
894
895    Create and enable preset filters
896
897    :value: 1
898    
899 .. data:: RAS_2DFILTER_NOFILTER
900
901    Disable and destroy the filter that is currently active
902
903    :value: 0
904    
905 .. data:: RAS_2DFILTER_PREWITT
906
907    :value: 8
908    
909 .. data:: RAS_2DFILTER_SEPIA
910
911    :value: 10
912    
913 .. data:: RAS_2DFILTER_SHARPEN
914
915    :value: 3
916    
917 .. data:: RAS_2DFILTER_SOBEL
918
919    :value: 7
920
921 ----------------
922 Armature Channel
923 ----------------
924 .. _armaturechannel-constants-rotation-mode:
925
926 See :class:`bge.types.BL_ArmatureChannel.rotation_mode`
927
928 .. note:
929   euler mode are named as in Blender UI but the actual axis order is reversed
930
931 .. data:: ROT_MODE_QUAT
932
933   Use quaternion in rotation attribute to update bone rotation.
934
935   :value: 0
936
937 .. data:: ROT_MODE_XYZ
938
939   Use euler_rotation and apply angles on bone's Z, Y, X axis successively.
940
941   :value: 1
942
943 .. data:: ROT_MODE_XZY
944
945   Use euler_rotation and apply angles on bone's Y, Z, X axis successively.
946
947   :value: 2
948
949 .. data:: ROT_MODE_YXZ
950
951   Use euler_rotation and apply angles on bone's Z, X, Y axis successively.
952
953   :value: 3
954
955 .. data:: ROT_MODE_YZX
956
957   Use euler_rotation and apply angles on bone's X, Z, Y axis successively.
958
959   :value: 4
960
961 .. data:: ROT_MODE_ZXY
962
963   Use euler_rotation and apply angles on bone's Y, X, Z axis successively.
964
965   :value: 5
966
967 .. data:: ROT_MODE_ZYX
968
969   Use euler_rotation and apply angles on bone's X, Y, Z axis successively.
970
971   :value: 6
972
973
974 -------------------
975 Armature Constraint
976 -------------------
977 .. _armatureconstraint-constants-type:
978
979 See :class:`bge.types.BL_ArmatureConstraint.type`
980
981 .. data:: CONSTRAINT_TYPE_TRACKTO
982 .. data:: CONSTRAINT_TYPE_KINEMATIC
983 .. data:: CONSTRAINT_TYPE_ROTLIKE
984 .. data:: CONSTRAINT_TYPE_LOCLIKE
985 .. data:: CONSTRAINT_TYPE_MINMAX
986 .. data:: CONSTRAINT_TYPE_SIZELIKE
987 .. data:: CONSTRAINT_TYPE_LOCKTRACK
988 .. data:: CONSTRAINT_TYPE_STRETCHTO
989 .. data:: CONSTRAINT_TYPE_CLAMPTO
990 .. data:: CONSTRAINT_TYPE_TRANSFORM
991 .. data:: CONSTRAINT_TYPE_DISTLIMIT
992
993 .. _armatureconstraint-constants-ik-type:
994
995 See :class:`bge.types.BL_ArmatureConstraint.ik_type`
996   
997 .. data:: CONSTRAINT_IK_COPYPOSE
998
999    constraint is trying to match the position and eventually the rotation of the target.
1000
1001    :value: 0
1002
1003 .. data:: CONSTRAINT_IK_DISTANCE
1004
1005    Constraint is maintaining a certain distance to target subject to ik_mode
1006
1007    :value: 1
1008
1009 .. _armatureconstraint-constants-ik-flag:
1010
1011 See :class:`bge.types.BL_ArmatureConstraint.ik_flag`
1012
1013 .. data:: CONSTRAINT_IK_FLAG_TIP
1014
1015    Set when the constraint operates on the head of the bone and not the tail
1016
1017    :value: 1
1018
1019 .. data:: CONSTRAINT_IK_FLAG_ROT
1020
1021    Set when the constraint tries to match the orientation of the target
1022
1023    :value: 2
1024
1025 .. data:: CONSTRAINT_IK_FLAG_STRETCH
1026
1027    Set when the armature is allowed to stretch (only the bones with stretch factor > 0.0)
1028
1029    :value: 16
1030    
1031 .. data:: CONSTRAINT_IK_FLAG_POS
1032
1033    Set when the constraint tries to match the position of the target.
1034
1035    :value: 32
1036
1037 .. _armatureconstraint-constants-ik-mode:
1038
1039 See :class:`bge.types.BL_ArmatureConstraint.ik_mode`
1040
1041 .. data:: CONSTRAINT_IK_MODE_INSIDE
1042
1043    The constraint tries to keep the bone within ik_dist of target
1044
1045    :value: 0
1046
1047 .. data:: CONSTRAINT_IK_MODE_OUTSIDE
1048
1049    The constraint tries to keep the bone outside ik_dist of the target
1050
1051    :value: 1
1052    
1053 .. data:: CONSTRAINT_IK_MODE_ONSURFACE
1054
1055    The constraint tries to keep the bone exactly at ik_dist of the target.
1056
1057    :value: 2
1058
1059 .. _input-status:
1060
1061 ----------------
1062 Blender Material
1063 ----------------
1064
1065 .. data:: BL_DST_ALPHA
1066 .. data:: BL_DST_COLOR
1067 .. data:: BL_ONE
1068 .. data:: BL_ONE_MINUS_DST_ALPHA
1069 .. data:: BL_ONE_MINUS_DST_COLOR
1070 .. data:: BL_ONE_MINUS_SRC_ALPHA
1071 .. data:: BL_ONE_MINUS_SRC_COLOR
1072 .. data:: BL_SRC_ALPHA
1073 .. data:: BL_SRC_ALPHA_SATURATE
1074 .. data:: BL_SRC_COLOR
1075 .. data:: BL_ZERO
1076
1077 ------------
1078 Input Status
1079 ------------
1080
1081 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
1082
1083 .. data:: KX_INPUT_NONE
1084 .. data:: KX_INPUT_JUST_ACTIVATED
1085 .. data:: KX_INPUT_ACTIVE
1086 .. data:: KX_INPUT_JUST_RELEASED
1087
1088 -------------
1089 KX_GameObject
1090 -------------
1091 .. _gameobject-playaction-mode:
1092
1093 See :class:`bge.types.KX_GameObject.playAction`
1094
1095 .. data:: KX_ACTION_MODE_PLAY
1096
1097    Play the action once.
1098    
1099    :value: 0
1100
1101 .. data:: KX_ACTION_MODE_LOOP
1102
1103    Loop the action (repeat it).
1104    
1105    :value: 1
1106
1107 .. data:: KX_ACTION_MODE_PING_PONG
1108
1109    Play the action one direct then back the other way when it has completed.
1110    
1111    :value: 2
1112
1113
1114 -------------
1115 Mouse Buttons
1116 -------------
1117
1118 See :class:`bge.types.SCA_MouseSensor`
1119
1120 .. data:: KX_MOUSE_BUT_LEFT
1121 .. data:: KX_MOUSE_BUT_MIDDLE
1122 .. data:: KX_MOUSE_BUT_RIGHT
1123
1124 --------------------------
1125 Navigation Mesh Draw Modes
1126 --------------------------
1127
1128 .. _navmesh-draw-mode:
1129
1130 .. data:: RM_WALLS
1131
1132    Draw only the walls.
1133
1134 .. data:: RM_POLYS
1135
1136    Draw only polygons.
1137  
1138 .. data:: RM_TRIS
1139
1140    Draw triangle mesh.
1141    
1142 ------
1143 Shader
1144 ------
1145
1146 .. data:: VIEWMATRIX
1147 .. data:: VIEWMATRIX_INVERSE
1148 .. data:: VIEWMATRIX_INVERSETRANSPOSE
1149 .. data:: VIEWMATRIX_TRANSPOSE
1150 .. data:: MODELMATRIX
1151 .. data:: MODELMATRIX_INVERSE
1152 .. data:: MODELMATRIX_INVERSETRANSPOSE
1153 .. data:: MODELMATRIX_TRANSPOSE
1154 .. data:: MODELVIEWMATRIX
1155 .. data:: MODELVIEWMATRIX_INVERSE
1156 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
1157 .. data:: MODELVIEWMATRIX_TRANSPOSE
1158 .. data:: CAM_POS
1159
1160    Current camera position
1161
1162 .. data:: CONSTANT_TIMER
1163
1164    User a timer for the uniform value.
1165
1166 .. data:: SHD_TANGENT
1167
1168 ------
1169 States
1170 ------
1171
1172 See :class:`bge.types.KX_StateActuator`
1173
1174 .. data:: KX_STATE1
1175 .. data:: KX_STATE2
1176 .. data:: KX_STATE3
1177 .. data:: KX_STATE4
1178 .. data:: KX_STATE5
1179 .. data:: KX_STATE6
1180 .. data:: KX_STATE7
1181 .. data:: KX_STATE8
1182 .. data:: KX_STATE9
1183 .. data:: KX_STATE10
1184 .. data:: KX_STATE11
1185 .. data:: KX_STATE12
1186 .. data:: KX_STATE13
1187 .. data:: KX_STATE14
1188 .. data:: KX_STATE15
1189 .. data:: KX_STATE16
1190 .. data:: KX_STATE17
1191 .. data:: KX_STATE18
1192 .. data:: KX_STATE19
1193 .. data:: KX_STATE20
1194 .. data:: KX_STATE21
1195 .. data:: KX_STATE22
1196 .. data:: KX_STATE23
1197 .. data:: KX_STATE24
1198 .. data:: KX_STATE25
1199 .. data:: KX_STATE26
1200 .. data:: KX_STATE27
1201 .. data:: KX_STATE28
1202 .. data:: KX_STATE29
1203 .. data:: KX_STATE30
1204
1205 .. _state-actuator-operation:
1206
1207 See :class:`bge.types.KX_StateActuator.operation`
1208
1209 .. data:: KX_STATE_OP_CLR
1210
1211    Substract bits to state mask
1212
1213    :value: 0
1214
1215 .. data:: KX_STATE_OP_CPY
1216
1217    Copy state mask
1218
1219    :value: 1
1220    
1221 .. data:: KX_STATE_OP_NEG
1222
1223    Invert bits to state mask
1224
1225    :value: 2
1226
1227 .. data:: KX_STATE_OP_SET
1228
1229    Add bits to state mask
1230
1231    :value: 3
1232
1233 .. _Two-D-FilterActuator-mode: