svn merge -r38814:38905 https://svn.blender.org/svnroot/bf-blender/trunk/blender .
[blender-staging.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Logic (bge.logic)
3 ======================
4
5 *****
6 Intro
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.BL_ShapeActionActuator`
73    * :class:`~bge.types.KX_CameraActuator`
74    * :class:`~bge.types.KX_ConstraintActuator`
75    * :class:`~bge.types.KX_GameActuator`
76    * :class:`~bge.types.KX_IpoActuator`
77    * :class:`~bge.types.KX_NetworkMessageActuator`
78    * :class:`~bge.types.KX_ObjectActuator`
79    * :class:`~bge.types.KX_ParentActuator`
80    * :class:`~bge.types.KX_SCA_AddObjectActuator`
81    * :class:`~bge.types.KX_SCA_DynamicActuator`
82    * :class:`~bge.types.KX_SCA_EndObjectActuator`
83    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
84    * :class:`~bge.types.KX_SceneActuator`
85    * :class:`~bge.types.KX_SoundActuator`
86    * :class:`~bge.types.KX_StateActuator`
87    * :class:`~bge.types.KX_TrackToActuator`
88    * :class:`~bge.types.KX_VisibilityActuator`
89    * :class:`~bge.types.SCA_2DFilterActuator`
90    * :class:`~bge.types.SCA_PropertyActuator`
91    * :class:`~bge.types.SCA_RandomActuator`
92
93 Most logic brick's methods are accessors for the properties available in the logic buttons.
94 Consult the logic bricks documentation for more information on how each logic brick works.
95
96 There are also methods to access the current :class:`bge.types.KX_Scene`
97
98 .. code-block:: python
99
100    # Get the current scene
101    scene = bge.logic.getCurrentScene()
102
103    # Get the current camera
104    cam = scene.active_camera
105
106 Matricies as used by the game engine are **row major**
107 ``matrix[row][col] = float``
108
109 :class:`bge.types.KX_Camera` has some examples using matricies.
110
111 *********
112 Variables
113 *********
114
115 .. data:: globalDict
116
117    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.
118    It can also be written to a file and loaded later on with the game load/save actuators.
119
120    .. 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.
121
122 .. data:: keyboard
123
124    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
125
126 .. data:: mouse
127
128    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
129
130 *****************
131 General functions
132 *****************
133
134 .. function:: getCurrentController()
135
136    Gets the Python controller associated with this Python script.
137    
138    :rtype: :class:`bge.types.SCA_PythonController`
139
140 .. function:: getCurrentScene()
141
142    Gets the current Scene.
143    
144    :rtype: :class:`bge.types.KX_Scene`
145
146 .. function:: getSceneList()
147
148    Gets a list of the current scenes loaded in the game engine.
149    
150    :rtype: list of :class:`bge.types.KX_Scene`
151    
152    .. 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.
153
154 .. function:: loadGlobalDict()
155
156    Loads bge.logic.globalDict from a file.
157
158 .. function:: saveGlobalDict()
159
160    Saves bge.logic.globalDict to a file.
161
162 .. function:: startGame(blend)
163
164    Loads the blend file.
165    
166    :arg blend: The name of the blend file
167    :type blend: string
168
169 .. function:: endGame()
170
171    Ends the current game.
172
173 .. function:: restartGame()
174
175    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
176    
177 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
178    
179    Converts the all of the datablocks of the given type from the given blend.
180    
181    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
182    :type blend: string
183    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
184    :type type: string
185    :arg data: Binary data from a blend file (optional)
186    :type data: bytes
187    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
188    :type load_actions: bool
189    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
190    :type verbose: bool
191    
192 .. function:: LibNew(name, type, data)
193
194    Uses existing datablock data and loads in as a new library.
195    
196    :arg name: A unique library name used for removal later
197    :type name: string
198    :arg type: The datablock type (currently only "Mesh" is supported)
199    :type type: string
200    :arg data: A list of names of the datablocks to load
201    :type data: list of strings
202    
203 .. function:: LibFree(name)
204
205    Frees a library, removing all objects and meshes from the currently active scenes.
206
207    :arg name: The name of the library to free (the name used in LibNew)
208    :type name: string
209    
210 .. function:: LibList()
211
212    Returns a list of currently loaded libraries.
213    
214    :rtype: list [str]
215
216 .. function:: addScene(name, overlay=1)
217
218    Loads a scene into the game engine.
219
220    :arg name: The name of the scene
221    :type name: string
222    :arg overlay: Overlay or underlay (optional)
223    :type overlay: integer
224
225 .. function:: sendMessage(subject, body="", to="", message_from="")
226
227    Sends a message to sensors in any active scene.
228    
229    :arg subject: The subject of the message
230    :type subject: string
231    :arg body: The body of the message (optional)
232    :type body: string
233    :arg to: The name of the object to send the message to (optional)
234    :type to: string
235    :arg message_from: The name of the object that the message is coming from (optional)
236    :type message_from: string
237
238 .. function:: setGravity(gravity)
239
240    Sets the world gravity.
241    
242    :type gravity: list [fx, fy, fz]
243
244 .. function:: getSpectrum()
245
246    Returns a 512 point list from the sound card.
247    This only works if the fmod sound driver is being used.
248    
249    :rtype: list [float], len(getSpectrum()) == 512
250
251 .. function:: stopDSP()
252
253    Stops the sound driver using DSP effects.
254    
255    Only the fmod sound driver supports this.
256    DSP can be computationally expensive.
257
258 .. function:: getMaxLogicFrame()
259
260    Gets the maximum number of logic frames per render frame.
261    
262    :return: The maximum number of logic frames per render frame
263    :rtype: integer
264
265 .. function:: setMaxLogicFrame(maxlogic)
266
267    Sets the maximum number of logic frames that are executed per render frame.
268    This does not affect the physic system that still runs at full frame rate.   
269     
270    :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
271    :type maxlogic: integer
272
273 .. function:: getMaxPhysicsFrame()
274
275    Gets the maximum number of physics frames per render frame.
276    
277    :return: The maximum number of physics frames per render frame
278    :rtype: integer
279
280 .. function:: setMaxPhysicsFrame(maxphysics)
281
282    Sets the maximum number of physics timestep that are executed per render frame.
283    Higher value allows physics to keep up with realtime even if graphics slows down the game.
284    Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
285    maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
286     
287    :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
288    :type maxphysics: integer
289
290 .. function:: getLogicTicRate()
291
292    Gets the logic update frequency.
293    
294    :return: The logic frequency in Hz
295    :rtype: float
296
297 .. function:: setLogicTicRate(ticrate)
298
299    Sets the logic update frequency.
300    
301    The logic update frequency is the number of times logic bricks are executed every second.
302    The default is 60 Hz.
303    
304    :arg ticrate: The new logic update frequency (in Hz).
305    :type ticrate: float
306
307 .. function:: getPhysicsTicRate()
308
309    Gets the physics update frequency
310    
311    :return: The physics update frequency in Hz
312    :rtype: float
313    
314    .. warning: Not implimented yet
315
316 .. function:: setPhysicsTicRate(ticrate)
317
318    Sets the physics update frequency
319    
320    The physics update frequency is the number of times the physics system is executed every second.
321    The default is 60 Hz.
322    
323    :arg ticrate: The new update frequency (in Hz).
324    :type ticrate: float
325
326    .. warning: Not implimented yet
327
328 *****************
329 Utility functions
330 *****************
331
332 .. function:: expandPath(path)
333
334    Converts a blender internal path into a proper file system path.
335
336    Use / as directory separator in path
337    You can use '//' at the start of the string to define a relative path;
338    Blender replaces that string by the directory of the startup .blend or runtime file
339    to make a full path name (doesn't change during the game, even if you load other .blend).
340    The function also converts the directory separator to the local file system format.
341
342    :arg path: The path string to be converted/expanded.
343    :type path: string
344    :return: The converted string
345    :rtype: string
346
347 .. function:: getAverageFrameRate()
348
349    Gets the estimated/average framerate for all the active scenes, not only the current scene.
350
351    :return: The estimated average framerate in frames per second
352    :rtype: float
353
354 .. function:: getBlendFileList(path = "//")
355
356    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
357
358    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
359    :type path: string
360    :return: A list of filenames, with no directory prefix
361    :rtype: list
362
363 .. function:: getRandomFloat()
364
365    Returns a random floating point value in the range [0 - 1)
366
367 .. function:: PrintGLInfo()
368
369    Prints GL Extension Info into the console
370    
371 *********
372 Constants
373 *********
374
375 .. data:: KX_TRUE
376
377    True value used by some modules.
378
379 .. data:: KX_FALSE
380
381    False value used by some modules.
382
383 =======
384 Sensors
385 ======= 
386
387 .. _sensor-status:
388
389 -------------
390 Sensor Status
391 -------------
392
393 .. data:: KX_SENSOR_INACTIVE
394 .. data:: KX_SENSOR_JUST_ACTIVATED
395 .. data:: KX_SENSOR_ACTIVE
396 .. data:: KX_SENSOR_JUST_DEACTIVATED
397
398 .. _logic-property-sensor:
399
400 ---------------
401 Property Sensor
402 ---------------
403
404 .. data:: KX_PROPSENSOR_EQUAL
405
406    Activate when the property is equal to the sensor value.
407
408    :value: 1
409
410 .. data:: KX_PROPSENSOR_NOTEQUAL
411
412    Activate when the property is not equal to the sensor value.
413    
414    :value: 2
415
416 .. data:: KX_PROPSENSOR_INTERVAL
417
418    Activate when the property is between the specified limits.
419    
420    :value: 3
421    
422 .. data:: KX_PROPSENSOR_CHANGED
423
424    Activate when the property changes   
425
426    :value: 4
427
428 .. data:: KX_PROPSENSOR_EXPRESSION
429
430    Activate when the expression matches
431    
432    :value: 5
433
434 ------------
435 Radar Sensor
436 ------------
437
438 See :class:`bge.types.KX_RadarSensor`
439
440 .. data:: KX_RADAR_AXIS_POS_X
441 .. data:: KX_RADAR_AXIS_POS_Y
442 .. data:: KX_RADAR_AXIS_POS_Z
443 .. data:: KX_RADAR_AXIS_NEG_X
444 .. data:: KX_RADAR_AXIS_NEG_Y
445 .. data:: KX_RADAR_AXIS_NEG_Z
446
447 ----------
448 Ray Sensor
449 ----------
450
451 See :class:`bge.types.KX_RaySensor`
452
453 .. data:: KX_RAY_AXIS_POS_X
454 .. data:: KX_RAY_AXIS_POS_Y
455 .. data:: KX_RAY_AXIS_POS_Z
456 .. data:: KX_RAY_AXIS_NEG_X
457 .. data:: KX_RAY_AXIS_NEG_Y
458 .. data:: KX_RAY_AXIS_NEG_Z
459
460
461 =========
462 Actuators
463 =========
464
465 .. _action-actuator:
466
467 ---------------
468 Action Actuator
469 ---------------
470
471 See :class:`bge.types.BL_ActionActuator`
472
473 .. data:: KX_ACTIONACT_PLAY
474 .. data:: KX_ACTIONACT_FLIPPER
475 .. data:: KX_ACTIONACT_LOOPSTOP
476 .. data:: KX_ACTIONACT_LOOPEND
477 .. data:: KX_ACTIONACT_PROPERTY
478
479 -------------------
480 Constraint Actuator
481 -------------------
482
483 .. _constraint-actuator-option:
484
485 See :class:`bge.types.KX_ConstraintActuator.option`
486
487 * Applicable to Distance constraint:
488
489   .. data:: KX_ACT_CONSTRAINT_NORMAL
490
491      Activate alignment to surface
492    
493   .. data:: KX_ACT_CONSTRAINT_DISTANCE
494
495      Activate distance control
496
497   .. data:: KX_ACT_CONSTRAINT_LOCAL
498
499      Direction of the ray is along the local axis
500
501 * Applicable to Force field constraint:
502
503   .. data:: KX_ACT_CONSTRAINT_DOROTFH
504
505      Force field act on rotation as well
506
507 * Applicable to both:
508
509   .. data:: KX_ACT_CONSTRAINT_MATERIAL
510
511      Detect material rather than property
512    
513   .. data:: KX_ACT_CONSTRAINT_PERMANENT
514
515      No deactivation if ray does not hit target
516
517 .. _constraint-actuator-limit:
518
519 See :class:`bge.types.KX_ConstraintActuator.limit`
520
521 .. data:: KX_CONSTRAINTACT_LOCX
522
523    Limit X coord.
524    
525 .. data:: KX_CONSTRAINTACT_LOCY
526
527    Limit Y coord
528
529 .. data:: KX_CONSTRAINTACT_LOCZ
530
531    Limit Z coord
532    
533 .. data:: KX_CONSTRAINTACT_ROTX
534
535    Limit X rotation
536
537 .. data:: KX_CONSTRAINTACT_ROTY
538
539    Limit Y rotation
540    
541 .. data:: KX_CONSTRAINTACT_ROTZ
542
543    Limit Z rotation
544    
545 .. data:: KX_CONSTRAINTACT_DIRNX
546
547    Set distance along negative X axis
548
549 .. data:: KX_CONSTRAINTACT_DIRNY
550
551    Set distance along negative Y axis
552    
553 .. data:: KX_CONSTRAINTACT_DIRNZ
554
555    Set distance along negative Z axis
556    
557 .. data:: KX_CONSTRAINTACT_DIRPX
558
559    Set distance along positive X axis
560
561 .. data:: KX_CONSTRAINTACT_DIRPY
562
563    Set distance along positive Y axis
564    
565 .. data:: KX_CONSTRAINTACT_DIRPZ
566
567    Set distance along positive Z axis
568    
569 .. data:: KX_CONSTRAINTACT_ORIX
570
571    Set orientation of X axis
572    
573 .. data:: KX_CONSTRAINTACT_ORIY
574
575    Set orientation of Y axis
576    
577 .. data:: KX_CONSTRAINTACT_ORIZ
578
579    Set orientation of Z axis
580    
581 .. data:: KX_ACT_CONSTRAINT_FHNX
582
583    Set force field along negative X axis
584    
585 .. data:: KX_ACT_CONSTRAINT_FHNY
586
587    Set force field along negative Y axis
588    
589 .. data:: KX_ACT_CONSTRAINT_FHNZ
590
591    Set force field along negative Z axis
592    
593 .. data:: KX_ACT_CONSTRAINT_FHPX
594
595    Set force field along positive X axis
596
597 .. data:: KX_ACT_CONSTRAINT_FHPY
598
599    Set force field along positive Y axis
600    
601 .. data:: KX_ACT_CONSTRAINT_FHPZ
602
603    Set force field along positive Z axis
604
605 ----------------
606 Dynamic Actuator
607 ----------------
608
609 See :class:`bge.types.KX_SCA_DynamicActuator`
610
611 .. data:: KX_DYN_RESTORE_DYNAMICS
612 .. data:: KX_DYN_DISABLE_DYNAMICS
613 .. data:: KX_DYN_ENABLE_RIGID_BODY
614 .. data:: KX_DYN_DISABLE_RIGID_BODY
615 .. data:: KX_DYN_SET_MASS
616
617 .. _game-actuator:
618
619 -------------
620 Game Actuator
621 -------------
622
623 See :class:`bge.types.KX_GameActuator`
624
625 .. data:: KX_GAME_LOAD
626 .. data:: KX_GAME_START
627 .. data:: KX_GAME_RESTART
628 .. data:: KX_GAME_QUIT
629 .. data:: KX_GAME_SAVECFG
630 .. data:: KX_GAME_LOADCFG
631
632 .. _ipo-actuator:
633
634 ------------
635 IPO Actuator
636 ------------
637
638 See :class:`bge.types.KX_IpoActuator`
639
640 .. data:: KX_IPOACT_PLAY
641 .. data:: KX_IPOACT_PINGPONG
642 .. data:: KX_IPOACT_FLIPPER
643 .. data:: KX_IPOACT_LOOPSTOP
644 .. data:: KX_IPOACT_LOOPEND
645 .. data:: KX_IPOACT_FROM_PROP
646
647 ---------------
648 Parent Actuator
649 ---------------
650
651 .. data:: KX_PARENT_REMOVE
652 .. data:: KX_PARENT_SET
653
654 .. _logic-random-distributions:
655
656 --------------------
657 Random Distributions
658 --------------------
659
660 See :class:`bge.types.SCA_RandomActuator`
661
662 .. data:: KX_RANDOMACT_BOOL_CONST
663 .. data:: KX_RANDOMACT_BOOL_UNIFORM
664 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
665 .. data:: KX_RANDOMACT_INT_CONST
666 .. data:: KX_RANDOMACT_INT_UNIFORM
667 .. data:: KX_RANDOMACT_INT_POISSON
668 .. data:: KX_RANDOMACT_FLOAT_CONST
669 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
670 .. data:: KX_RANDOMACT_FLOAT_NORMAL
671 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
672
673 --------------
674 Scene Actuator
675 --------------
676
677 See :class:`bge.types.KX_SceneActuator`
678
679 .. data:: KX_SCENE_RESTART
680 .. data:: KX_SCENE_SET_SCENE
681 .. data:: KX_SCENE_SET_CAMERA
682 .. data:: KX_SCENE_ADD_FRONT_SCENE
683 .. data:: KX_SCENE_ADD_BACK_SCENE
684 .. data:: KX_SCENE_REMOVE_SCENE
685 .. data:: KX_SCENE_SUSPEND
686 .. data:: KX_SCENE_RESUME
687
688 .. _shape-action-actuator:
689
690 ---------------------
691 Shape Action Actuator
692 ---------------------
693
694 See :class:`bge.types.BL_ActionActuator`
695
696 .. data:: KX_ACTIONACT_PLAY
697 .. data:: KX_ACTIONACT_FLIPPER
698 .. data:: KX_ACTIONACT_LOOPSTOP
699 .. data:: KX_ACTIONACT_LOOPEND
700 .. data:: KX_ACTIONACT_PROPERTY
701
702 .. _logic-sound-actuator:
703
704 --------------
705 Sound Actuator
706 --------------
707       
708 See :class:`bge.types.KX_SoundActuator`
709
710 .. data:: KX_SOUNDACT_PLAYSTOP
711
712    :value: 1
713    
714 .. data:: KX_SOUNDACT_PLAYEND
715
716    :value: 2
717    
718 .. data:: KX_SOUNDACT_LOOPSTOP
719
720    :value: 3
721    
722 .. data:: KX_SOUNDACT_LOOPEND
723
724    :value: 4
725    
726 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
727
728    :value: 5
729    
730 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
731
732    :value: 6
733    
734
735 =======
736 Various
737 =======
738
739 .. _input-status:
740
741 ------------
742 Input Status
743 ------------
744
745 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
746
747 .. data:: KX_INPUT_NONE
748 .. data:: KX_INPUT_JUST_ACTIVATED
749 .. data:: KX_INPUT_ACTIVE
750 .. data:: KX_INPUT_JUST_RELEASED
751
752 -------------
753 Mouse Buttons
754 -------------
755
756 See :class:`bge.types.SCA_MouseSensor`
757
758 .. data:: KX_MOUSE_BUT_LEFT
759 .. data:: KX_MOUSE_BUT_MIDDLE
760 .. data:: KX_MOUSE_BUT_RIGHT
761
762 ------
763 States
764 ------
765
766 See :class:`bge.types.KX_StateActuator`
767
768 .. data:: KX_STATE1
769 .. data:: KX_STATE2
770 .. data:: KX_STATE3
771 .. data:: KX_STATE4
772 .. data:: KX_STATE5
773 .. data:: KX_STATE6
774 .. data:: KX_STATE7
775 .. data:: KX_STATE8
776 .. data:: KX_STATE9
777 .. data:: KX_STATE10
778 .. data:: KX_STATE11
779 .. data:: KX_STATE12
780 .. data:: KX_STATE13
781 .. data:: KX_STATE14
782 .. data:: KX_STATE15
783 .. data:: KX_STATE16
784 .. data:: KX_STATE17
785 .. data:: KX_STATE18
786 .. data:: KX_STATE19
787 .. data:: KX_STATE20
788 .. data:: KX_STATE21
789 .. data:: KX_STATE22
790 .. data:: KX_STATE23
791 .. data:: KX_STATE24
792 .. data:: KX_STATE25
793 .. data:: KX_STATE26
794 .. data:: KX_STATE27
795 .. data:: KX_STATE28
796 .. data:: KX_STATE29
797 .. data:: KX_STATE30
798
799 .. _state-actuator-operation:
800
801 See :class:`bge.types.KX_StateActuator.operation`
802
803 .. data:: KX_STATE_OP_CLR
804
805    Substract bits to state mask
806    
807    :value: 0
808
809 .. data:: KX_STATE_OP_CPY
810
811    Copy state mask
812    
813    :value: 1
814    
815 .. data:: KX_STATE_OP_NEG
816
817    Invert bits to state mask
818    
819    :value: 2
820    
821 .. data:: KX_STATE_OP_SET
822
823    Add bits to state mask
824    
825    :value: 3
826    
827 .. _Two-D-FilterActuator-mode:
828
829 ---------
830 2D Filter
831 ---------
832
833 .. data:: RAS_2DFILTER_BLUR
834
835    :value: 2
836    
837 .. data:: RAS_2DFILTER_CUSTOMFILTER
838
839    Customer filter, the code code is set via shaderText property.
840    
841    :value: 12
842    
843 .. data:: RAS_2DFILTER_DILATION
844
845    :value: 4
846    
847 .. data:: RAS_2DFILTER_DISABLED
848
849    Disable the filter that is currently active
850
851    :value: -1
852    
853 .. data:: RAS_2DFILTER_ENABLED
854
855    Enable the filter that was previously disabled
856
857    :value: -2
858    
859 .. data:: RAS_2DFILTER_EROSION
860
861    :value: 5
862    
863 .. data:: RAS_2DFILTER_GRAYSCALE
864
865    :value: 9
866    
867 .. data:: RAS_2DFILTER_INVERT
868
869    :value: 11
870    
871 .. data:: RAS_2DFILTER_LAPLACIAN
872
873    :value: 6
874    
875 .. data:: RAS_2DFILTER_MOTIONBLUR
876
877    Create and enable preset filters
878
879    :value: 1
880    
881 .. data:: RAS_2DFILTER_NOFILTER
882
883    Disable and destroy the filter that is currently active
884
885    :value: 0
886    
887 .. data:: RAS_2DFILTER_PREWITT
888
889    :value: 8
890    
891 .. data:: RAS_2DFILTER_SEPIA
892
893    :value: 10
894    
895 .. data:: RAS_2DFILTER_SHARPEN
896
897    :value: 3
898    
899 .. data:: RAS_2DFILTER_SOBEL
900
901    :value: 7
902    
903 ------
904 Shader
905 ------
906
907 .. data:: VIEWMATRIX
908 .. data:: VIEWMATRIX_INVERSE
909 .. data:: VIEWMATRIX_INVERSETRANSPOSE
910 .. data:: VIEWMATRIX_TRANSPOSE
911 .. data:: MODELMATRIX
912 .. data:: MODELMATRIX_INVERSE
913 .. data:: MODELMATRIX_INVERSETRANSPOSE
914 .. data:: MODELMATRIX_TRANSPOSE
915 .. data:: MODELVIEWMATRIX
916 .. data:: MODELVIEWMATRIX_INVERSE
917 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
918 .. data:: MODELVIEWMATRIX_TRANSPOSE
919 .. data:: CAM_POS
920
921    Current camera position
922
923 .. data:: CONSTANT_TIMER
924
925    User a timer for the uniform value.
926
927 .. data:: SHD_TANGENT
928
929 ----------------
930 Blender Material
931 ----------------
932
933 .. data:: BL_DST_ALPHA
934 .. data:: BL_DST_COLOR
935 .. data:: BL_ONE
936 .. data:: BL_ONE_MINUS_DST_ALPHA
937 .. data:: BL_ONE_MINUS_DST_COLOR
938 .. data:: BL_ONE_MINUS_SRC_ALPHA
939 .. data:: BL_ONE_MINUS_SRC_COLOR
940 .. data:: BL_SRC_ALPHA
941 .. data:: BL_SRC_ALPHA_SATURATE
942 .. data:: BL_SRC_COLOR
943 .. data:: BL_ZERO