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